当使用Xcode 7b5构建包含Today Extension的应用程序时,我无法创建有效的存档。当我进行存档时,构建成功,然后在管理器中它显示在“其他项目”下而不是“iOS应用程序”下。
如果我关闭项目并在Xcode 6.3.2中打开相同的项目,当我进行存档时,它会显示在“iOS Apps”下。
我比较了档案,我注意到的一件事是我的今日小工具被放置在Applications目录之外。对于Xcode 6.3.2和Xcode 7b5,结构看起来像这样:
Xcode 6.3.2
| -archive
| - 产品
| ---应用
| ---- MyMainApp.app
Xcode 7 Beta 5
| -archive
| - 产品
| ---应用
| ---- MyMainApp.app
| --- MyTodayWidget.appex
我认为问题是MyTodayWidget打包在Applications目录之外和.app之外。我不确定为什么Xcode 7 beta 5会以不同于Xcode 6.3.2的方式打包应用程序,而我没有做任何更改。
2015年8月14日更新: 这似乎是CocoaPods和Extensions的一个问题,如WatchKit或Today扩展。据报道,另一位开发人员报道了Invalid archive produced when using "Archive" in Xcode 7 beta 5 (with watchkit extension) #4021。这似乎是这个问题的根本原因。
环境:
- Xcode 7 Beta 5
- 今天延期
- 普通应用
- CocoaPods 0.38.2 (截至9月22日的最新发布版本)
- 用于扩展的AFNetworking&应用
答案 0 :(得分:16)
CocoaPods v0.39.0.beta.4存在问题。
如CocoaPods GitHub中所述,CocoaPods的beta 3允许您按预期构建档案。 Beta 4有一个错误阻止它工作。
首先卸载以前的CocoaPods版本
sudo gem uninstall cocoapods
然后执行:
sudo gem install cocoapods -v 0.39.0.beta.3 --verbose
然后
pod update
并且您可以按预期再次构建档案。
答案 1 :(得分:12)
我今天刚刚确认这对我来说是一个CocoaPods问题,特别是4021。我在问题上尝试了其他用户,并从我今天的扩展目标中删除了“复制pod资源”。删除后,我就能够在Xcode 7 Beta 5中成功打包存档。
希望这仍然适用于下一个测试版和GM ......
更新9月22日:如果你在2015年9月22日之前使用 0.38.2 的CocoaPods最新发布版本,这就是答案。我可以使用这种方法使用Xcode 7 GM将我的应用程序提交到应用程序商店。
答案 2 :(得分:3)
最后它修复了最新的稳定版本0.39.0:
所以不要卸载
sudo gem uninstall cocoapods
并通过
重新安装sudo gem install cocoapods
也是一个简单的
sudo gem update cocoapods
应该解决它!
答案 3 :(得分:1)
将Xcode更新为7.0版(7A220)时遇到了同样的问题。 他们说已经跟踪了这个问题(Issue#4274)
最后,我通过以下步骤解决了这个问题: 1)清除所有Pods目标中的所有“私有标题文件夹路径”和“公共标题文件夹路径” - >构建设置 - >包装 2)删除我们的目标 - >构建阶段中的“复制窗口资源”。
答案 4 :(得分:0)
这可能是由于使用CocoaPods 0.38。[0-2]和Xcode 7引起的。
它适用于较旧版本的CocoaPods:
$ gem install cocoapods -v "=0.37.2"
$ gem uninstall cocoapods # then select 0.38.[0-2]
$ pod update
(此外,我还必须清理我的构建文件夹并在pod update
之前擦除Pods文件夹并对AFNetworing post install hook in my Podfile进行更改
答案 5 :(得分:0)
如果从扩展程序中删除Copy Pod Resources,则可以正常工作。虽然我不知道这可能导致什么,我的应用程序工作,存档并进行审核。
答案 6 :(得分:0)
如果将 Xcode 7 与 cocoapods v.0.38.2 一起使用。尝试从今天的扩展目标中移除copy pod resources
。