Xcode正在创建通用的Xcode归档文件,而非iOS应用程序归档文件。

59

我是iPhone开发的初学者,尝试使用我的个人资料和有效证书创建一个ipa包,但是xcode创建了一个通用的xcode存档文件而不是iOS应用程序存档文件,因为我的代码中有两个.xcodeproj

我遵循了一个stack overflow回答中提供的以下步骤:

  1. 主项目目标的Skip install选项为NO
  2. 框架(子项目)目标的Skip install选项为YES
  3. 子项目需要在项目中复制头文件,而不是公共文件夹
  4. Deployment下的Installation Directory是有效的(例如/Applications)

但我仍然没有得到解决方案。


1
你想构建一个ipa吗? - Vinay Jain
4
请提供您获取这些步骤的帖子链接。 - Vinay Jain
1
SO问题kp412所指的URL是:https://dev59.com/pGgv5IYBdhLWcg3wSe0f - Jeroen Bouma
2
子项目需要在项目中复制头文件,而不是公共文件夹。- 这对我很有用!谢谢 - CReaTuS
31个回答

1

我需要做以下事情:

  1. 前往 Product -> Schemes -> Manage: 确保只有一个方案被选中,而且这个方案是你当前在使用的。

  2. 前往 Product -> Schemes -> Edit: 有一些选项像这样:确保只有一个存档被选中。enter image description here


在上面给出的清单中添加了这个答案。在Xcode中解决这样的问题真是一件令人头疼的事情。 - daksh_019

1
在我的情况下,问题是我的应用程序名称以点号符号开头。MacOS将以“.”开头的文件和文件夹视为隐藏文件,因此Xcode无法看到存档中实际存在的应用程序。
我使用Unity开发游戏,这在Unity 2020.1.17之前一直很好用。显然,某些事情已经改变了,更新版本的Unity开始出现这个问题。

1

这对我很有帮助(2018年)

  • gem install cocoapods --pre
  • pod 1.5.0.beta.1 update 检查
  • shared 在方案设置中。

check shared


1

删除/移动Xcode开发者目录

在尝试了StackOverflow提供的几乎所有解决方案之后,包括完全重新安装Xcode和cocoapods,对我有用的是完全删除~/Library/Developer目录,并让Xcode在下次构建/打开项目时重新创建并填充它。

  1. 打开Finder并选择菜单前往 >“前往文件夹”,然后输入“〜/ Library”
  2. 删除或移动(在某个地方进行归档以防万一)“Developer”目录
  3. 完全关闭Xcode并重新打开项目
  4. 在Xcode Product >存档中
  5. 现在已创建了正确的iOS应用程序存档,我可以将其分发并上传到Testflight

1

我使用的是Unity,我的情况是在“编辑->项目设置...->玩家->iOS->其他设置->目标SDK”中设置了模拟器SDK。将其更改为设备SDK后,正确创建了应用程序存档。希望这能帮助其他遇到同样问题的人。


1

我在我的tvOS应用中遇到了同样的问题。

通过在构建设置中禁用"Build Documentation during 'Build'"开关来解决问题。

截图


1
在我的情况下,所有的解决方案都没有起作用,因为我遇到的根本原因不同。我正在使用SPM,并且在我的Swift Package中有一个.xcdatamodel文件。删除它可以解决这个问题。

1

最终我解决了这个问题。我认为这个问题在不同的情况下出现。

我得到了通用的Xcode档案类型。之后,生成带有分发内容的档案构建。

实际上,在我的情况下,子项目头文件路径存在问题,我相信它们的路径在归档时丢失了。

我尝试过删除子项目引用并重新添加。我已经正确设置了头文件搜索路径,并确定了路径之前指向子项目下的不同文件夹位置。添加后,它指向确切的文件夹。

之后,我尝试归档并生成带有分发应用选项的档案构建。最终能够获得iPa文件并推送到iTunes Connect :)

这可能对某些人有所帮助。

谢谢


1
在XCode 11中,对于我的情况,以上方法都不适用。我有一些HTML文件是我的目标(“目标成员资格”)的一部分,一旦我删除它们,我就能生成正确的存档。基本上,只需确保您不将错误的文件放入目标中即可。希望这有所帮助!

1
我尝试了所有建议,但都没有成功。但是当我试图遵循@acecilia所说的时候,我去检查了我的info.plist,问题是我的iOS目标与macOSinfo.plist相比缺少了很多东西。
我通过点击Target,然后在顶部点击Info,并匹配我的两个info.plist,最终让我将档案归档为iOS构建,而不是通用构建。

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