Codenameone iOS动态库。代码名为One的本机接口中的框架

Codenameone iOS动态库。代码名为One的本机接口中的框架,codenameone,Codenameone,我需要使用代号为1的iOS.framework动态库,但没有找到正确的说明 在《开发人员指南》(第:)中,有以下提示,但似乎没有: 在框架中找到“二进制”文件,并将其复制到本机/ios目录中,但将其重命名为libXXX.a(其中XXX是二进制文件的名称) 将所有.h文件从框架复制到本机/ios目录中 将标题中的所有#导入语句从#导入格式更新为#导入“FileName.h” 当*.framework不包含静态库而包含动态库时,这不起作用(如的答案中所建议的) 在iOS 8之前,所有的.framew

我需要使用代号为1的iOS.framework动态库,但没有找到正确的说明

在《开发人员指南》(第:)中,有以下提示,但似乎没有:

在框架中找到“二进制”文件,并将其复制到本机/ios目录中,但将其重命名为libXXX.a(其中XXX是二进制文件的名称)

将所有.h文件从框架复制到本机/ios目录中

将标题中的所有#导入语句从#导入格式更新为#导入“FileName.h”

*.framework
不包含静态库而包含动态库时,这不起作用(如的答案中所建议的)


在iOS 8之前,所有的
.framework
文件都只包含静态库,但从iOS 8开始,Apple允许开发人员创建动态框架(如中所述)。

恐怕我们从未使用过iOS动态库框架,因为CoCoapod变得通用,并且不再需要使用框架。框架是有问题的,因为它们不能与PC开发人员共享,因为它们内部有符号链接等。因此,将它们作为构建过程的一部分发送是有问题的


大多数需要创造性解决方案的案例都会创建一个定制的pod。

更新答案:

从下一次更新(下周五)开始,只需压缩框架,并将其添加到项目的
native/iOS
目录,就可以包含iOS框架。例如,
native/ios/MyFramework.framework

或者,您仍然可以创建一个自定义的podspec作为项目的一部分。这些步骤是:

  • 添加包含以下内容的本机/ios/podspecs/MyFramework.podspec:
  • 将MyFramework.framework复制到native/ios/podspecs中

  • 构建提示:

  • 这种变通方法并不完美,因为该项目可能无法移植到Windows(但它应该可以在Linux和Mac上运行)。新方法(压缩框架并添加到native/ios)是100%可移植的

    原始答案:

    对于框架,您可以将它们放在自定义的podspec中。下面是一个示例代码名One项目,它定义了一个定制的podspec。

    请注意,您只需在项目中创建一个native/ios/podspecs目录,然后就可以将自定义的podspecs放在其中。您可以使用
    ios.pods
    build提示引用您的podspec


    有关将.framework打包到Podspec中的信息,请参见“使用本地cocoapod使用框架”

    以确保我理解您的提示:我必须将
    .framework
    放在cocoapod中吗?如果是这样的话,今天我花了一整天的时间试图做到这一点,但没有成功。如果你已经这样做了,你能给我推荐一个正确步骤的指南吗?谢谢,我从来没有做过,但是史蒂夫在这方面有一些经验,我会让他回答这个问题
    Pod::Spec.new do |s|
      s.name                    = "MyFramework"
      s.version                 = "1.0.0"
      s.summary                 = "MyFramework framework"
      s.description             = "This spec specifies a vendored framework."
      s.platform                = :ios
      s.homepage                = "https://www.codenameone.com"
      s.source                  = {:path => "."}
      s.author                  = "Codename One"
      s.vendored_frameworks     = "MyFramework.framework"
    end
    
    ios.pods=MyFramework