Xcode 7 GM生成了通用归档,而不是iOS应用程序归档。

18

我最近开始使用Xcode 7 GM。

当我归档我的项目时,我得到了一个通用的Xcode存档,而不是iOS存档。

我已经尝试了以下几种方法:

我比较了之前成功的存档和某些组件的不同文件夹结构:

  • Swift库位于子文件夹中
  • 应用程序扩展位于.app包外部
  • info.plist缺少键

enter image description here

其他人遇到过这个问题吗?如果是,你是如何解决的?

编辑

我们正在使用Cocoapods 0.38.2


是的,我应该提到这一点,我们正在使用0.38.2版本。 - bsarrazin
我在创建iOS存档时遇到了类似的问题,但版本0.38.2应该没问题。但你仍然可以查看这个问题,主要是因为“产品目录包括usr/local/include”,这是不应该出现的。 - Libor Zapletal
1
我刚刚尝试使用Cocoapods 0.39 beta 4,它似乎已经解决了我的问题。 - bsarrazin
很高兴我能帮忙 :) - Libor Zapletal
@LiborZapletal 我会稍等一下,和我的团队一起测试一下,但我会联系你,这样你就可以写一个答案,我可以接受它,这样你就可以获得那些非常重要的虚拟积分。 - bsarrazin
显示剩余7条评论
5个回答

15
我有相同的问题:旧Xcode项目,Xcode 7(不是GM,而是App Store版本)和Cocoapods。 我已经尝试了很多方法,试过了Cocoapds 0.39 b3和b4,但都没有成功,在Build Settings中更改参数,但最终发现-对我来说-问题如mrezk在https://github.com/CocoaPods/CocoaPods/issues/4021中所示:

Info.plist中缺少ApplicationProperties

因为我不习惯玩Info.plist和这些键,我在Apple Dev论坛上找到了一个非常有用的答案:https://forums.developer.apple.com/thread/17063 简而言之,对于像我这样的info.plist新手;):
  1. 归档你的项目
  2. 组织器会显示一个通用的Xcode归档
  3. 右键单击,显示在Finder中
  4. 右键单击,显示包内容
  5. 在XML编辑器中打开Info.plist文件
  6. mochs所示,在
    部分添加这些行:
<key>ApplicationProperties</key>  
<dict>  
  <key>ApplicationPath</key>  
  <string>Applications/<<APP_NAME>>.app</string>  
  <key>CFBundleIdentifier</key>  
  <string><<BUNDLE_IDENTIFIER>></string>  
  <key>CFBundleShortVersionString</key>  
  <string><<YOUR_MARKETING_NUMBER>></string>  
  <key>CFBundleVersion</key>  
  <string><<YOUR_BUILD_NUMBER>></string>  
  <key>SigningIdentity</key>  
  <string>iPhone Distribution: <<CERTIFICATE_NAME>> (<<CERTIFICATE_ID>>)</string>  
</dict>

将标签替换为您自己的值。

保存,关闭Xcode,双击存档文件:它应该作为iOS类型存档在组织器中打开。

感谢mrezkmochs提供的解决方案。

我曾经遇到过完全相同的问题,这个方法也解决了我的问题。 - Scott D
1
如何修复我的项目,以便未来的构建不再出现相同的问题? - CQM
谢谢!这解决了我的问题。现在正在等待提交批准 :) - woobione
降级 CocoaPods,然后再次运行 pod install 并重建所有内容。我发现这比每次修复 plist 文件要容易得多。最新的 CocoaPods beta 版本似乎存在问题。 :) - Meriw
对我来说完美地工作了,而且是其他需要更新cocoapods的答案的绝佳替代方案。 - user3344977
显示剩余3条评论

4

楼主在这里。 我团队的所有成员都尝试使用Cocoapods的测试版,并且它已经为我们解决了问题。因此,我将接受自己的答案。

虽然它可能解决了问题,但我认为Christian Navelot的答案不能扩展并且肯定不能在团队中管理。

此外,我们所有人都尝试过使用cp beta而不删除Copy Pod Resources构建阶段。这意味着我也不会接受Todd Anderson的答案。

我们也没有使用静态库,我们正在使用框架(即Podfile中的use frameworks!)。

感谢所有人对这个问题的贡献。看起来我们都被Xcode 7放在了同一条船上!干杯!


3
在我的情况下,清除所有静态库中的“安装目录”构建设置解决了问题。在此之前,它被设置为“/usr/local/lib”。
使用“保存构建产品”作为导出方法时,“Products”文件夹会得到这些子目录。这就是指引我朝这个方向走的原因。
我使用的是cocoapods 0.38.2版本。

在 Pods 构建设置中,将“跳过安装”设置为“否”,对我很有帮助。 - Marcus Franzen

0
这里提到的其他答案都是临时解决方法,但每个方法都需要手动操作,要么在每次归档后,要么在每次pod install后进行。
新的、更好的解决方案是将cocoapods更新到最新版本,并从每个应用程序扩展中删除您的“复制Pod资源”构建阶段。
有关更多信息,请参见https://github.com/CocoaPods/CocoaPods/issues/4021

感谢您的贡献。我将在本周重新测试,如果一切如预期的那样顺利,我将彻底关闭这个问题!干杯! - bsarrazin
其实对我来说,最新版本(0.39.x)是个问题。正如您发布的链接指出,这是最新测试版的问题。我彻底卸载了它们并使用0.38.2重新构建了一切,这很有效。但还是感谢您发布的链接 :) - Meriw
我从不使用Cocoapods的beta版本,并且在.38和.39版本中都遇到了这个问题,所以可能还有其他问题。 - Todd Anderson

0

我在XCode7.1.1和一个带有WatchKit Extension的应用项目中遇到了类似的问题。

我通过以下步骤解决了这个问题:

  • 打开我的应用目标的构建设置,并将“跳过安装”设置为NO

  • 打开我的WatchKit Extension目标的构建设置,并将“跳过安装”设置为YES

  • 打开我的WatchKit App目标的构建设置,并将“跳过安装”设置为YES

然后我就可以制作iOS存档了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接