Xcode 7 不会从在 Xcode 6 中构建有效存档的同一项目构建有效存档
Xcode 7 will NOT build a valid Archive from the same project that builds a valid archive in Xcode 6
当使用 Xcode 7b5 构建包含 Today Extension 的应用程序时,我无法创建有效存档。当我制作存档时,构建成功,然后在 Organizer 中它显示在 "Other Items" 下而不是 "iOS Apps" 下。
如果我关闭项目并在 Xcode 6.3.2 中打开同一个项目,当我制作存档时它会显示在 "iOS Apps" 下。
我比较了档案,我注意到的一件事是我的 Today Widget 被放置在 Applications 目录之外。 Xcode 6.3.2 与 Xcode 7b5 的结构如下所示:
Xcode6.3.2
|-存档
|--产品
|---应用
|----MyMainApp.app
Xcode 7 测试版 5
|-存档
|--产品
|---应用
|----MyMainApp.app
|---MyTodayWidget.appex
我认为问题在于 MyTodayWidget 打包在应用程序目录和 .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
这可能是由于使用 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 进行更改)
其他原因在 Cannot generate iOS App archive in xcode 中讨论。
我今天刚刚确认这对我来说是 CocoaPods 问题,特别是 4021。我和其他用户一样尝试解决这个问题,并从我今天的扩展目标中删除了 "copy pod resources"。删除后,我就能够在 Xcode 7 Beta 5 中成功打包存档。
希望这在下一个测试版和 GM 中仍然有效...
9 月 22 日更新:如果您使用的是 CocoaPods 的 0.38.2,这是截至 2015 年 9 月 22 日的最新发布版本的答案。我能够使用此方法使用 Xcode 7 GM 将我的应用程序提交到应用程序商店。
如果您从扩展程序中删除 Copy Pod Resources,则工作正常。虽然我不知道这会导致什么,但我的应用程序可以正常运行、存档并进行审核。
这是 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
您将能够按预期再次构建存档。
我在 Xcode 更新到版本 7.0 (7A220) 时遇到了同样的问题。
他们说这个问题已经被跟踪(Issue#4274)
最后,我通过以下步骤解决了这个问题:
1)清除所有 "Private Headers Folder Path" 和 "Public Headers Folder Path" 在所有 Pods Targets->Build Setting->Packaging
2) 在我们的 Targets->Build Phases 中删除 "Copy Pods Resources"。
终于在最新的稳定版0.39.0中修复了:
所以不是卸载
sudo gem uninstall cocoapods
并通过
重新安装
sudo gem install cocoapods
也很简单
sudo gem update cocoapods
应该修复它!
如果使用 Xcode 7 和 cocoapods v.0.38.2。尝试从今天的扩展目标中删除 copy pod resources
。
当使用 Xcode 7b5 构建包含 Today Extension 的应用程序时,我无法创建有效存档。当我制作存档时,构建成功,然后在 Organizer 中它显示在 "Other Items" 下而不是 "iOS Apps" 下。
如果我关闭项目并在 Xcode 6.3.2 中打开同一个项目,当我制作存档时它会显示在 "iOS Apps" 下。
我比较了档案,我注意到的一件事是我的 Today Widget 被放置在 Applications 目录之外。 Xcode 6.3.2 与 Xcode 7b5 的结构如下所示:
Xcode6.3.2
|-存档
|--产品
|---应用
|----MyMainApp.app
Xcode 7 测试版 5
|-存档
|--产品
|---应用
|----MyMainApp.app
|---MyTodayWidget.appex
我认为问题在于 MyTodayWidget 打包在应用程序目录和 .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
这可能是由于使用 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 进行更改)
其他原因在 Cannot generate iOS App archive in xcode 中讨论。
我今天刚刚确认这对我来说是 CocoaPods 问题,特别是 4021。我和其他用户一样尝试解决这个问题,并从我今天的扩展目标中删除了 "copy pod resources"。删除后,我就能够在 Xcode 7 Beta 5 中成功打包存档。
希望这在下一个测试版和 GM 中仍然有效...
9 月 22 日更新:如果您使用的是 CocoaPods 的 0.38.2,这是截至 2015 年 9 月 22 日的最新发布版本的答案。我能够使用此方法使用 Xcode 7 GM 将我的应用程序提交到应用程序商店。
如果您从扩展程序中删除 Copy Pod Resources,则工作正常。虽然我不知道这会导致什么,但我的应用程序可以正常运行、存档并进行审核。
这是 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
您将能够按预期再次构建存档。
我在 Xcode 更新到版本 7.0 (7A220) 时遇到了同样的问题。 他们说这个问题已经被跟踪(Issue#4274)
最后,我通过以下步骤解决了这个问题: 1)清除所有 "Private Headers Folder Path" 和 "Public Headers Folder Path" 在所有 Pods Targets->Build Setting->Packaging 2) 在我们的 Targets->Build Phases 中删除 "Copy Pods Resources"。
终于在最新的稳定版0.39.0中修复了:
所以不是卸载
sudo gem uninstall cocoapods
并通过
重新安装sudo gem install cocoapods
也很简单
sudo gem update cocoapods
应该修复它!
如果使用 Xcode 7 和 cocoapods v.0.38.2。尝试从今天的扩展目标中删除 copy pod resources
。