Xcode中的归档项目错误地创建了多应用程序包

Jar*_*man 169 xcode archiving xcode4 ios-4.2 xcode-organizer

在Xcode中存档我的项目是创建一个多应用程序包,而不是捆绑我的主要目标进行发布,这就是我想要的.具体来说,当我在Organizer中验证我的存档时,它会给我以下消息:

"[projectname]不包含单捆绑应用程序或包含多个产品.请选择其他归档,或调整您的方案以创建单捆绑应用程序."

听起来这个方案中有一些需要调整的设置,但我无法弄清楚是什么导致其他目标被包含在内.

我顺便使用Xcode 4.0.

Jar*_*man 250

好的,回答我自己的问题.原来这是XCode 4中依赖项目的问题.如果您遇到这种情况,请查看所有相关项目(例如静态库)的构建设置,并确保设置"部署"下的"跳过安装"选项是的.

更多细节:http: //flakasoft.com/developer-tips/xcode-4-bug-solution-for-archiving-build-with-static-library/

  • 需要在静态库上将"跳过安装"设置为"是",而不是"项目"或"目标".这篇关于临时分发的博客文章同样适用于app store构建,并有一个关于Skip Install的部分:http://www.musicalgeometry.com/?p = 1237 (8认同)
  • 某些库(如CorePlot)也要求您更改其构建阶段的"复制标题"部分.所以,请确保你也看看Ryan的答案. (8认同)
  • 将其更改为"是"......仍然失败.:( (6认同)
  • 我还必须移动目标"Build Phases"中的所有头文件(静态库),在"Copy Headers"中,我将它们从"Public"移动到"Project". (2认同)

Rya*_*imm 151

需要在子项目中修复两件事来解决此问题:

  1. 正如Jared发现的那样,在Build Settings下,将"Skip Install"设置为"Yes"
  2. 在Build Phases下,检查Copy Headers部分.如果有任何标题文件列为私有或公共,请将它们向下拖动到项目部分.

  • 即使你确实克服了这个Xcode问题,也不要再使用Three20了.我完全认真! (19认同)
  • 我真的爱你老兄!:d (7认同)
  • 我修复了所有"跳过安装"设置,但我缺少的是复制标题部分,谢谢! (5认同)
  • 我正在使用three20.此项目的头文件列为私有或公共,但如果我在项目部分中移动它不会编译.有什么建议吗? (2认同)
  • 如果您有许多像我们这样的库项目,并且很难确定哪个库的Skip Install设置为No或哪个头文件导致问题,请尝试以下操作:选择存档并单击Distribute按钮.选择"保存已建立的产品"选项.点击下一步并保存.在Finder中浏览创建的目录.'libraries'子目录将标识将Skip Install设置为Yes所需的库.usr/local/include将识别您需要从Pu​​blic移动到Project的罪魁祸首头文件. (2认同)

abb*_*ood 10

我做了以下工作让它适合我:

  1. 对于three20静态库,我使用cocoapods包含主项目中的文件..它只是摆脱了三个20给我的麻烦(而且它们很多..)顺便说一下我尝试用Nimbus替换three20 ..但是Nimbus缺少我的项目使用three20的一些功能..所以Nimbus没有帮助.
  2. 在所有其他子项目/静态库的构建设置下将skip install设置为yes,并在构建阶段将复制头从公共切换到项目
  3. 最重要的是:在子库下..在构建阶段,我确保复制文件目的地从更改Absolute pathproducts directory.

就是这样!

提示:要了解导致存档创建存档文件而不是ipa的违规文件,请执行以下操作:

  1. 选择存档,然后单击"分发"按钮.
  2. 选择"保存已建立的产品"选项.
  3. 点击下一步并保存.
  4. 在Finder中浏览创建的目录.
  5. 'libraries'子目录将标识将Skip Install设置为Yes所需的库.
  6. 在某些情况下,usr/local/include将识别您需要从Pu​​blic移动到Project的罪魁祸首头文件或您必须从绝对路径更改为products目录的文件.但该目录(即usr/local/include)因子库目录结构而异