将 pod 添加到 Today 扩展会强制生成通用存档
Adding pod to Today extensions forces production of generic archive
我偶然发现了一个很奇怪的问题。
在我的一个应用程序中,我使用 cocoa pods 来安装 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...
这似乎是 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 安装
- 将 "Public" headers 拖到 "Project" 以便每个 Pod 目标中的 Header 构建阶段。
另请参阅:Archives broken in Xcode 7β6 by containing public pod headers
我偶然发现了一个很奇怪的问题。
在我的一个应用程序中,我使用 cocoa pods 来安装 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...
这似乎是 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 安装
- 将 "Public" headers 拖到 "Project" 以便每个 Pod 目标中的 Header 构建阶段。
另请参阅:Archives broken in Xcode 7β6 by containing public pod headers