xcode正在创建通用xcode存档而不是iOS App Archive

时间:2013-12-04 07:14:41

标签: ios xcode

我是iPhone开发的初学者,我尝试使用我的个人资料和有效证书创建ipa,但xcode正在创建一个通用的xcode存档文件,而不是iOS应用存档,因为在我的代码中有两个{ {1}}在那里。

从其中一个.xcodeproj我按照以下步骤操作:

  1. 主要项目目标
  2. 的跳过安装为NO
  3. 框架(子项目)目标的跳过安装是YES
  4. 子项目需要在项目中公开复制标题
  5. 部署下的安装目录有效(例如/ Applications)
  6. 但我仍然没有得到解决方案。

27 个答案:

答案 0 :(得分:23)

在我的情况下,对于一个嵌入式静态库,问题是“Skip install”设置为“NO”。 也是有用的链接:https://developer.apple.com/library/mac/technotes/tn2215/_index.html

答案 1 :(得分:13)

如果您在Project>目标>构建阶段>目标依赖项中有任何.xcodeproj文件,请从那里删除它,然后构建您的ipa。 这个对我有用。 干杯

答案 2 :(得分:11)

我的情况不是'跳过安装',也不是cocoapods问题。 似乎我最终没有使用的第三方框架之一就是原因。解决方案就是删除它。

为了跟踪此问题,我在Xcode的管理器中右键单击了通用存档文件,并选择了“show in finder” - >右键单击存档文件 - >选择显示包内容 - >产品 - >应用程序和此文件夹中除了{project-name} .app文件外,您还可以看到其他文件。在我的情况下,有一个文件带有我没有使用的框架的前缀,这导致它从项目的工作区中删除。

答案 3 :(得分:9)

我遇到了Cocoapods 0.38.1的问题,在升级了一些项目后,它生成了我的xCode Generic Archive ...在完成所有步骤之后,再次创建ipa的唯一方法是将cocoapods下载到0.37.1及以下此链接上的步骤:http://9elements.com/io/index.php/cocoapods-best-practices/

我希望有所帮助!

答案 4 :(得分:7)

我的情况是我在项目中有2个目标,一旦我将其中一个目标设置为Skip Install =“YES”,问题就解决了

答案 5 :(得分:5)

我遇到的问题是CocoaPods version 0.38.2。升级CocoaPods到更高版本(0.39.0.beta.4)后,一切正常。

$gem install cocoapods --pre

然后:

$pod update

答案 6 :(得分:4)

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

答案 7 :(得分:4)

其中一个案例是您必须在构建阶段/标题中将标题(如果有)从Public移动到Project。

https://developer.apple.com/library/content/technotes/tn2215/_index.html#//apple_ref/doc/uid/DTS40011221-CH1-PROJ

答案 8 :(得分:4)

我知道它的回复迟了,但是我按照以下步骤得到了解决方案:

  1. 转到Project Navigator
  2. 选择目标
  3. 转到Build Phases
  4. 检查目标依赖关系并将其删除
  5. 清洁&构建代码
  6. 尝试存档,这次您将获得iOS应用存档。
  7. Best Luck&来自KP的欢呼:)

答案 9 :(得分:3)

这些都不适合我,在我的情况下是cocoapods,必须卸载所有并安装发布版本

sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-downloader
sudo gem install cocoapods

答案 10 :(得分:3)

我同意@cat的回应。

我错误地在管理方案下有两个构建目标,这对我来说是个问题。 Sip已经没有了。

如果已将“跳过”设置为“否”,则检查此步骤可以帮助您进行更多调试。

答案 11 :(得分:2)

我也有这个问题。我在这里尝试了所有解决方案。

(这是xcode-workspace中的项目)

最后我解决了......我清理Derived数据文件夹中的所有内容,关闭工作区,然后关闭Xcode,打开单个目标项目

然后,我做归档,它制作一个iOS App档案。

我希望我能帮助别人。

答案 12 :(得分:2)

在我的情况下,没有任何建议的解决方案可以正常工作,因为项目文件很好。我只需删除派生数据文件夹中的所有内容,即可恢复正常。您可以从首选项>中找到它。位置。

我认为这是由于新的Xcode 6.我之前使用的是测试版。

答案 13 :(得分:1)

事实证明,我的方案中有两个应用程序目标。我看到在构建时,products文件夹最终有两个应用程序。同一包中有两个版本的应用程序。遵循@ Got99Errors的检查包装内容的建议。我从构建方案中删除了第二个目标,问题已解决。

答案 14 :(得分:1)

最后,我解决了这种问题。我认为这个问题来自不同的情况。

我得到了通用Xcode存档类型。之后,生成带有分发内容的存档版本。

实际上,就我而言,子项目头文件路径的问题,我认为归档时缺少它们​​的路径。

我尝试过,删除子项目引用,然后再次添加。我已经正确设置了标题搜索路径,已确定,路径先前在子项目下指向了不同的文件夹位置。添加后,它指向确切的文件夹。

之后,我尝试存档,并使用distribute App选项生成了存档构建。最终能够获取iPa文件并推送到iTunes Connect:)。

这可能对某人有帮助。

谢谢

答案 15 :(得分:1)

对我来说,Xcode正在创建generic Xcode archive是因为我在UISupportedInterfaceOrientations中缺少Info.plist字段。添加后,应用存档已正确创建

答案 16 :(得分:1)

上面的答案对我都不起作用,一旦我遵循Apple's Tech notes,我开始收到很多链接错误和标头未找到错误。

我尝试解决这些错误,但没有解决方案对我有用,尝试使用标头搜索路径,库搜索路径等。

最后,如果这些解决方案都不起作用,请按照以下步骤将您的应用提交到应用商店

使用XCode 11.x.x

  1. 基本上,在完成“ Clean Build”文件夹然后进行“ Build”之后,您可以在以下位置找到.app文件:〜/ Library / Developer / Xcode / DerivedData // Build / Products / Release-iphoneos /

  2. 在桌面上创建一个名为Payload的新文件夹(此名称区分大小写)

  3. 复制您的.app文件并将其粘贴到此Payload文件夹中。

  4. 右键单击该文件夹,然后选择“压缩有效负载”

  5. 保存时,请勿将其保存为.zip扩展名,而应将其保存为.ipa扩展名。

  6. 这是您应用程序的.ipa文件,您可以通过Xcode Transporter App上载此文件。

如果您仍在使用旧版本的Xcode 10.x.x 然后执行与上述相同的步骤,但只是更改最后一步,请使用Application Loader应用程序代替运输应用程序

有关此问题的更多详细信息,请检查此post

答案 17 :(得分:1)

我必须做的事情:

  1. 转到产品 - >方案 - >管理: 这里确保只选择一个方案,这是您当前的方案

  2. 转到产品 - >方案 - >编辑: 有这样的选项:确保只选择一个存档。enter image description here

答案 18 :(得分:1)

尝试了所有其他建议(检查构建是否为单目标,清除“派生数据”文件夹,关闭并重新打开Xcode等)之后,我发现重新启动系统可以解决此问题。我还发现重新启动过去解决了其他一些Xcode问题,例如,它提示它找不到某些系统框架头文件。

我在上面发现的唯一建议确实允许我无需重新启动即可构建正确的存档,是关闭Xcode工作区并从工作区中打开单个Xcode项目,并为该项目构建存档。但是,重启是我发现恢复Xcode正常行为的唯一选项,以便能够从多项目工作区中构建正确的存档。

我发现重新启动可以解决运行OS X 10.11.6和Xcode 8.2.1的系统上的Xcode问题-希望重新启动也可以解决较新系统上的问题,并帮助其他可能正在处理此奇怪问题的人。 / p>

答案 19 :(得分:1)

这对我有帮助(2018年)

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

check shared

答案 20 :(得分:1)

我的问题在安装了pod后开始,更新cocoapods(从0.38到0.39)并再次运行pod安装后问题消失了。

答案 21 :(得分:0)

就我而言,问题在于计划中。我将两个目标标记为“存档”。当我复制了一个目标时,发生了这种情况。

方案->构建->目标中,在存档位于“ iOS应用”而不是“其他项目”部分之后,我只是删除了我不想要的文件。

答案 22 :(得分:0)

我正在使用可可豆,当您去管理方案时,容器被设置为xcodeproj而不是xcworkspace。设置为xcworkspace时,它可以工作。

答案 23 :(得分:0)

在XCode 11中,对我而言,以上都不是。一旦删除了一些HTML文件,这些文件便成为我的目标的一部分(“目标成员身份”),我能够生成适当的存档。

基本上,只需确保没有在目标中放入错误的文件即可。

希望有帮助!

答案 24 :(得分:0)

就我而言,没有一种解决方案有效,因为对我而言根本原因是不同的。我使用的是SPM,在我的Swift软件包中有一个.xcdatamodel。删除它可以解决问题。

答案 25 :(得分:0)

删除/移动Xcode开发人员目录

在尝试并尝试了几乎所有关于stackoverflow的解决方案(包括完全重新安装Xcode和cocoapods)之后,为我解决的问题是完全删除了~/Library/Developer目录,并让Xcode下次重新创建并填充它我建立/打开了我的项目。

  1. 打开Finder并选择菜单转到>“转到文件夹”,然后输入“〜/库”
  2. 删除或移动(存档以防万一)“ Developer”目录
  3. 完全关闭Xcode并重新打开项目
  4. 在Xcode产品>存档
  5. 这现在创建了正确的iOS应用档案,我能够分发应用并将其上传到Testflight

答案 26 :(得分:-1)

确保在“项目设置”>下设置了“构建”字段。一般