2012-01-05 103 views
5

我想创建一个ipa文件(产品 - >存档 - >共享),但Xcode只生成存档文件。Xcode创建存档而不是IPA

它几天前运作良好。我总是得到ipa的工作,但现在我无法生成ipa(当我点击归档时我无法签署代码)。我在过去几天内将子项目添加到主项目中(CorePlot-CocoaTouch)。我无法确定它可以关联。

回答

13

如果您已经添加了一个静态库,它们现在默认安装。这对于iPhone应用程序来说并不合适。转到项目文件并选择静态库的目标。在Build Settings下,转到Deployment部分并将Skip Install设置更改为YES。由于Xcode 4,它现在默认为NO,这会破坏你的IPA(因为你可以合法安装的唯一二进制文件就是应用程序二进制本身)。

您可能必须从Basic视图切换到All视图才能看到此设置。

+0

谢谢你的回答。我已经做到了这一点(将所有“跳过安装”设置为是),但结果相同。它仍然为我提供档案,没有机会分享它作为IPA。 – Engeor 2012-01-05 08:34:33

+1

@Engeor然后还有其他东西仍在安装。看看创建的原始档案(甚至是它创建的新档案)。那里唯一的应该是你的应用程序包。找出还有哪些东西在那里,你会有一个线索在哪里看下。 – 2012-01-05 08:37:16

+0

工作的旧归档文件与不归档的新归档文件之间的唯一区别是具有CorePlot头文件的文件夹。除此之外,只有一个应用程序文件。我迷路了:-( – Engeor 2012-01-05 08:58:58

8

既然为我工作的答案被埋在评论中,我想我会把它带到最前面。在我的情况下,将静态库的头文件更改为Project可以解决问题。

为此,请选择您的库目标,然后转到生成阶段>复制标题并将头文件从公开移动到项目。

+0

您的解决方案帮了我很多!谢谢。 – 2013-03-21 18:20:18

0

在XCode 5中,如果在“管理方案”中有多个目标和错误的选中标记,则会发生相同的错误。然后Xcode将2个二进制文件放入1个通用归档文件中。这并不影响将文件检入到例如Git的!

0

其他答案都可能是正确的,但没有帮助我的情况。我花了几个小时,最后重新启动。然后我再一次获得了我一周前获得的应用程序存档。

2

一个谁也尝试了其他所有的答案,也没有运气,请选中该复选框,希望对大家有所帮助(的伎俩对我的Xcode 6.0.1)

enter image description here

0

如果包括一个生成静态库的项目,请尝试检查选项“仅在安装时复制”。这阻止了Xcode在应用程序归档中包含静态库。我使用Xcode 6.3.2。