将 pod 添加到 Today 扩展会强制生成通用存档
Posted
技术标签:
【中文标题】将 pod 添加到 Today 扩展会强制生成通用存档【英文标题】:Adding pod to Today extensions forces production of generic archive 【发布时间】:2015-09-25 16:26:22 【问题描述】:我偶然发现了一个非常奇怪的问题。
在我的一个应用程序中,我使用可可豆荚安装 Alamofire。直到今天,我已经将 Alamofire 添加到我的主要目标中。然而,我随后决定在我拥有的 2 个 Today 扩展中使用 Alamofire。我修改了我的 Podfile 看起来像这样
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'target1' do
pod 'Alamofire', '~> 2.0'
end
target 'target2' do
pod 'Alamofire', '~> 2.0'
end
target 'target3' do
pod 'Alamofire', '~> 2.0'
end
在我调试产品时一切正常。我还可以确认 Alamofire 在扩展中正确执行。问题是,每当我归档我的应用程序时,我都会得到通用归档文件,而没有任何项目的特定成员资格。
经过检查,我可以看到 target2.appex(0 字节)和 target3.appex(0 字节)被复制到我存档的 Products 目录中。 Products/Applications/target1.app/Plugins 中也存在正确的版本。我不知道如何解决这个问题。
我已经尝试在我的 Pod 文件中使用 link_with。我也尝试过使用一些构建设置 - 它仍然无法正常工作。
有没有人遇到过这个问题并知道如何解决?
我可以确认当我将 Pod 文件更改为
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'target1' do
pod 'Alamofire', '~> 2.0'
end
target 'target2' do
end
target 'target3' do
end
创建的存档是正确的。但是,通过这样的设置,我无法在我的扩展中使用 Alamofire...
【问题讨论】:
【参考方案1】:这似乎是 Cocoapods 和 Xcode 7 的问题。这个线程是最有帮助的:
Invalid archive produced when using "Archive" in Xcode 7 GM (with watchkit extension) #4021
最流行的解决方法是从您的 Today Extension 目标中删除 Copy Pod Resources 阶段(在构建阶段中)。我试过了,可以确认它可以正常工作,并使我在 Today Extension 上使用的 pod 正常工作。
其他流行的建议解决方法是:
使用 CocoaPods 0.39.0.beta.3 并再次运行 pod install 将“Public”标头拖到“Project”,以便每个 Pod 目标中的标头构建阶段。另见:Archives broken in Xcode 7β6 by containing public pod headers
【讨论】:
以上是关于将 pod 添加到 Today 扩展会强制生成通用存档的主要内容,如果未能解决你的问题,请参考以下文章
BitTorrent Multitracker 扩展会导致分裂群吗?
当您在情节提要中“因特性而异”时,为啥此自动布局扩展会失败?