Xcode 7将不会从在Xcode 6中构build有效归档的相同项目构build有效归档

当使用Xcode 7b5来构build包含Today Extension的应用程序时,我无法创build有效的存档。 当我创build一个存档,构build成功,然后在组织者,它显示在“其他项目”下,而不是“iOS应用程序”下。

如果closures该项目并在Xcode 6.3.2中打开相同的项目时,将显示在“iOS应用程序”下。

我比较了档案和我注意到的一点,就是我的Today Widget放在Applications目录之外。 Xcode 6.3.2和Xcode 7b5的结构如下所示:

Xcode 6.3.2
| -archive
| – 产品
| —应用
| —- MyMainApp.app

Xcode 7 Beta 5
| -archive
| – 产品
| —应用
| —- MyMainApp.app
| — MyTodayWidget.appex

我认为问题在于,MyTodayWidget封装在应用程序目录之外和.app之外。 我不确定为什么Xcode 7 beta 5将打包应用程序与Xcode 6.3.2不同时,我没有做任何更改。

更新2015年8月14日:这似乎是一个与CocoaPods和扩展如WatchKit或今天扩展的问题。 在另一个开发者使用Xcode 7 beta 5(带有watchkit扩展名)#4021中的“存档”时产生了无效的存档 。 这似乎是这个问题的根源。

环境:
– Xcode 7 Beta 5
– 今天延期
– 普通应用程序
CocoaPods 0.38.2 (最新发布的版本截至9/22)
– AFNetworking用于扩展和应用程序

这是CocoaPods v0.39.0.beta.4的一个问题。

如CocoaPods GitHub所述, CocoaPods的beta 3允许您按预期构build归档。 testing版4有一个防止这个工作的错误。

先卸载您以前的CocoaPods版本

sudo gem uninstall cocoapods

然后做:

sudo gem install cocoapods -v 0.39.0.beta.3 --verbose

然后

pod update

你可以像预期的那样重新build立档案。

我刚刚确认,这是一个CocoaPods问题,特别是4021 。 我试图作为其他用户在这个问题上,并从我今天的扩展目标中删除“复制pod资源”。 一旦被删除,我就可以在Xcode 7 Beta 5中成功打包一个存档。

希望这仍然在下一个testing版和通用…

更新9/22:如果您使用CocoaPods 0.38.2的最新发布版本截至2015年9月22日 ,这是答案。 我能够使用这种方法使用Xcode 7 GM将我的应用程序提交到应用程序商店。

最后在最新的稳定版本0.39.0中修复:

所以而不是卸载

 sudo gem uninstall cocoapods 

并通过重新安装

 sudo gem install cocoapods 

也是一个简单的

 sudo gem update cocoapods 

应该修复它!

更新Xcode到版本7.0(7A220)时,我遇到同样的问题。 他们说这个问题已经被追踪( 问题#4274 )

最后,我通过以下步骤解决了这个问题:1)在所有Pod目标 – >生成设置 – >打包中清除所有“私有头文件夹path”和“公共头文件夹path”2)删除我们的“复制荚资源”目标 – >build立阶段。

这可能是由于使用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文件夹,并更改我的Podfile中的AFNetworing post安装钩子 )

进一步的原因讨论在xcode中不能生成iOS应用程序存档 。

如果从扩展中删除复制单元资源,则可以正常工作。 虽然我不知道这可能会导致什么,我的应用程序工作,存档,并去审查。

如果使用Xcode 7cocoapods v.0.38.2 。 尝试从今天的扩展程序目标中移除copy pod resources