Xcode生成档案而不是IPA文件

5
我正在尝试创建一个ipa文件(Product->Archive->Share),但Xcode只生成归档文件。
几天前它还能正常工作,我总是得到可用的ipa文件,但现在我无法生成ipa文件(在存档中单击共享时,我无法签署代码)。在过去的几天里,我已将子项目添加到主项目中(CorePlot-CocoaTouch)。我不能百分之百确定它是否有关系。
6个回答

13
如果您添加了一个静态库,它们现在会被默认安装。这对 iPhone 应用程序来说不是正确的。转到项目文件并选择静态库的目标。在“Build Settings”下,进入“Deployment”部分并将“Skip Install”设置更改为“YES”。自 Xcode 4 以来,默认情况下它是“NO”,这将破坏您的 IPA(因为您可以合法地安装的唯一二进制文件是应用程序二进制本身)。
您可能需要从“基本”视图切换到“全部”视图才能查看此设置。

谢谢您的回答。我已经这样做了(将我找到的所有“跳过安装”设置为是),但结果仍然相同。它仍然提供给我一个归档文件,没有机会将其共享为ipa文件。 - Engeor
1
@Engeor 然后还有其他东西正在安装。查看创建的原始存档(甚至是新创建的存档)。里面应该只有你的应用程序包。找出还有什么其他东西被安装,那么你就可以得到下一个查找点的线索。 - Jason Coco
旧版本成功打包归档,但新版本无法打包,唯一不同的是缺少 CorePlot 的头文件。除此之外只有一个应用程序文件。我很困惑 :-( - Engeor
3
那就是问题所在!不要安装头文件。将它们更改为项目文件或私有文件,问题就解决了。 - Jason Coco
谢谢。与此同时,我已将CorePlot作为静态库包含在项目中,而不是项目内部,这解决了问题。再次感谢您的帮助! - Engeor

8

因为对我有用的答案被埋在了评论中,所以我想把它带到顶部。在我的情况下,将静态库的头文件更改为“Project”解决了这个问题。

要做到这一点,选择您的库目标,然后转到“构建阶段>复制标题”,将头文件从“Public”移动到“Project”。


2

如果您尝试了其他所有答案都没有成功,请勾选此复选框,希望它能帮到您(对我来说,在xcode 6.0.1中行得通)。

输入图像描述


0
如果您包含一个生成静态库的项目,请尝试勾选“仅在安装时复制”的选项。这将阻止Xcode将静态库包含在我的应用程序存档中。我使用的是Xcode 6.3.2。

0
其他答案可能都是正确的,但对于我的情况没有帮助。我在这上面花了好几个小时,最后重启了电脑。然后我又拿到了一个星期前的应用程序存档。

0
在XCode 5中,如果您有多个目标并且在“管理方案”中勾选了错误的选项,则会出现相同的错误。然后,Xcode将2个二进制文件放入1个通用存档中。这不会影响已检入到git等版本控制系统中的文件!

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