【发布时间】:2015-05-21 12:27:46
【问题描述】:
使用最新版本的可可豆荚 (0.36),我可以将用 swift 编写的可可豆荚(例如 Alamofire)嵌入到我的 swift 项目中。 现在我在项目中引入了一个自己的自定义框架,也想依赖Alamofire。
我所做的就是选择将 pods 框架作为依赖项添加到我的框架中:
为我自己的嵌入式 Swift 框架(Swift 模块)选择目标,在“链接的框架和库”的“常规”选项卡中,我将“Pods.framework”添加为“必需”。
但是,这还不足以编译,因为我自己的 swift 框架中的类不能“导入 Alamofire”,因为它不被识别为“可用框架”。
将 Pods.debug.xcconfig 和 Pods.release.xcconfig 文件添加到我自己的 swift 框架的目标的配置中,换句话说,更改构建设置以进行所有更改,可可豆荚对构建进行我的 iOS App 目标的设置,解决了这个问题。
它现在可以毫无问题地构建。它在模拟器中运行也没有问题,我自己的嵌入式 swift 框架成功使用了可可豆添加的框架。
但是,如果我在设备上运行相同的程序,它可以毫无问题地编译和安装,但随后在启动时崩溃并出现致命错误:
dyld: Library not loaded: @rpath/Pods.framework/Pods
Referenced from: /private/var/mobile/Containers/Bundle/Application/32D2F1F8-679F-4A5F-8159-28F1C800D0C6/TestingFrameworks.app/Frameworks/mySwiftFramework.framework/mySwiftFramework
Reason: image not found
显然,并非所有可可豆荚 xcconfig 文件中的设置都适合添加到我的自定义 swift 框架的构建设置中。
但是为什么它在模拟器中工作呢?更重要的是,我需要更正的构建设置是什么?
在我看来,我需要更改此构建设置:
PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods
去别的地方……
【问题讨论】:
-
你找到解决办法了吗?
-
那么 CocoaPods 实际上没有办法在不手动弄乱构建设置的情况下支持这一点吗?没有办法为这种情况设置 Podfile?
-
在我放弃它(使用 Swift 1.2)之后,我再也没有回去尝试过。所以我无法回答你的问题。