我刚刚升级到Xcode 4,并试图为早期项目创建临时构建。每当我使用“ Archive”选项时,要么要么在Organizer窗口中根本没有存档,要么没有存档,但是没有选择将其打包为.ipa的选项,因为“对于该存档类型,没有打包程序存在”。
是否有人为从Xcode 3.2迁移来的项目提供了在Xcode 4下工作的临时构建?
我刚刚升级到Xcode 4,并试图为早期项目创建临时构建。每当我使用“ Archive”选项时,要么要么在Organizer窗口中根本没有存档,要么没有存档,但是没有选择将其打包为.ipa的选项,因为“对于该存档类型,没有打包程序存在”。
是否有人为从Xcode 3.2迁移来的项目提供了在Xcode 4下工作的临时构建?
Answers:
您可能在主项目中有一些链接的项目(例如库)。转到那些项目的“构建”设置,并将“跳过安装”(部署类别)设置设置为“是”,但是将主项目的“跳过安装”保留为“否”。构建,存档,您应该能够选择ipa软件包。
谢谢,但是我需要3个步骤来彻底解决项目框架中的问题:
将每个依赖项目的“目标构建设置/“跳过安装””属性设置为“是”
清除每个项目的目标构建设置的“安装目录”属性
对于每个项目,将每个标题从“构建阶段/构建设置/复制标题”部分移至“公共” /“私有”
我发现这些答案的组合解决了问题。我花了很多时间来验证是否在所有链接的项目上都将“跳过安装”设置为“是”,事实证明,这对我来说只是一部分问题。如果您在使用存档时遇到此问题,请按照以下步骤操作:
如果在第3步中直接在产品下或子文件夹中找到静态库(<some-library> .a),请转到Xcode并选择生成该静态库的项目(您应该能够知道哪个项目它基于静态库的名称)。转到“构建设置”并选择目标,然后将“跳过安装”设置为“是”。
如果在步骤3中直接在产品下或子文件夹中找到头文件(<some-header> .h),请转到Xcode并选择包含那些头的项目。您应该能够基于头文件名中使用的前缀找到项目。在该项目中,转到“构建阶段”,然后在“复制标题”部分中,将所有标题从“公共”和“私人”部分移到“项目”部分。
这是我们发现对这个问题有用的另外两个提示...没有答案,但是它们可以节省其他人大约8 /的时间
如果您使用的不是由xcode4构建的静态库,则“部署->跳过安装”解决方法将不适用于它们。解决方法是不要将它们添加到项目中,并确保它们的路径在“构建设置”的“标题”和/或“库搜索路径”中,并且将-lblah条目添加到链接器标志中。
另外,如果您将静态lib设置为Target Dependency(例如,我们将libjson.a设置为此,我很确定这是正确的/逻辑的事情),那么您将无法构建.ipa无论。我们花了整整一天的时间来解决这个愚蠢的问题,最后只是删除了这个问题就解决了。就我个人而言,我认为这确实应该留下一个破碎的项目……但是它的确如此。
为了找出阻止Xcode进行适当归档的项目/库/组件,请执行以下操作:
在管理器中找到档案,右键单击并在finder中显示。这将显示一个.xcarchive文件。右键单击并显示包装内容。现在查看“产品”文件夹。最有可能的是其中不只是一个应用程序文件夹,其中包含一个iPhone应用程序。
在我的情况下,有一个包含libOAuthConsumer_iPhone.a的usr / local / lib文件夹结构,当我在Xcode中搜索它时,的确确实找到了另一个我没有将Skip Install设置为YES的项目。可能对每个人来说都不是那么容易,但是查看软件包内部至少应该为您提供一个指示,指出哪个组件使归档过程变得混乱。