【发布时间】:2015-11-07 06:41:44
【问题描述】:
使用 Xcode 7b5 构建包含 Today Extension 的应用时,我无法创建有效的存档。当我进行存档时,构建成功,然后在管理器中显示在“其他项目”下而不是“iOS 应用程序”下。
如果我在创建存档时关闭项目并在 Xcode 6.3.2 中打开同一个项目,它会显示在“iOS 应用程序”下。
我比较了档案,我注意到的一件事是我的 Today Widget 被放置在 Applications 目录之外。 Xcode 6.3.2 与 Xcode 7b5 的结构如下所示:
Xcode 6.3.2
|-存档
|--产品展示
|---应用
|----MyMainApp.app
Xcode 7 测试版 5
|-存档
|--产品展示
|---应用
|----MyMainApp.app
|---MyTodayWidget.appex
我认为问题在于 MyTodayWidget 被打包在 Applications 目录之外和 .app 之外。我不确定为什么 Xcode 7 beta 5 在我没有进行任何更改时会以不同于 Xcode 6.3.2 的方式打包应用程序。
2015 年 8 月 14 日更新: 这似乎是 CocoaPods 和扩展(如 WatchKit 或 Today 扩展)的问题。另一位开发人员已将其报告为Invalid archive produced when using "Archive" in Xcode 7 beta 5 (with watchkit extension) #4021。这似乎是这个问题的根本原因。
环境:
- Xcode 7 测试版 5
- 今日扩展
- 普通应用
- CocoaPods 0.38.2(截至 9/22 的最新发布版本)
- AFNetworking 用于扩展和应用
【问题讨论】:
-
扩展的去向由“安装目录”构建设置决定。但是,我遇到了同样的问题,将扩展设置为“/Applications”确实将它们放在与 Xcode 6 相同的位置,但存档仍然位于“Other Utils”中。
-
我遇到了类似的问题,但我在
/Library/Frameworks有一个框架。 -
真正的解决方法是将 cocoapods 降级到 0.39.0 beta 3 - beta 4 有一个导致您的问题的错误。见stackoverflow.com/a/32654636/1103584
-
报告的问题与 Cocoapods 的已发布 0.38.2 版本有关。迁移到尚未发布的 beta Cocoapods 似乎也是一种解决方案,但如果您想使用 Cocoapods 的已发布版本,则接受的答案是唯一的方法,直到他们发布 0.39.x 并修复它。
标签: ios xcode6 xcode7 ios9 xcode7-beta5