Xcode正在创建通用的Xcode归档文件,而非iOS应用程序归档文件。

59

我是iPhone开发的初学者,尝试使用我的个人资料和有效证书创建一个ipa包,但是xcode创建了一个通用的xcode存档文件而不是iOS应用程序存档文件,因为我的代码中有两个.xcodeproj

我遵循了一个stack overflow回答中提供的以下步骤:

  1. 主项目目标的Skip install选项为NO
  2. 框架(子项目)目标的Skip install选项为YES
  3. 子项目需要在项目中复制头文件,而不是公共文件夹
  4. Deployment下的Installation Directory是有效的(例如/Applications)

但我仍然没有得到解决方案。


1
你想构建一个ipa吗? - Vinay Jain
4
请提供您获取这些步骤的帖子链接。 - Vinay Jain
1
SO问题kp412所指的URL是:https://dev59.com/pGgv5IYBdhLWcg3wSe0f - Jeroen Bouma
2
子项目需要在项目中复制头文件,而不是公共文件夹。- 这对我很有用!谢谢 - CReaTuS
31个回答

3

这些方法对我都无效,我的情况是因为cocoapods,我不得不卸载所有并安装发布版本。

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

3
原来我的方案中有两个应用程序目标。发现构建时,产品文件夹中出现了两个应用程序。在查看包内容的@Got99Errors的建议下,我从Build方案中移除了第二个目标,问题得到了解决。

3

我同意 @cat 的回答。

我错误地在管理方案下设置了两个构建目标,这是我的问题所在。Sip已经是“NO”了。

检查这一步骤可以帮助您进行更多的调试,如果Skip已经设置为no。


3

我也遇到了这个问题,尝试了这里的每一个解决方案。

(这是一个在xcode-workspace中的项目)

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

接着,我进行了归档,生成了一个iOS应用程序存档。

希望我的经验能够帮助到某些人。


你是指单一目标项目的意思是什么? - Sadanand

2

我正在使用CocoaPods,当你进入管理方案时,容器设置为xcodeproj而不是xcworkspace。将其设置为xcworkspace后,它可以工作。


2

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

我在上面找到的唯一建议是关闭Xcode Workspace,并从Workspace中打开单个Xcode Project,并为该Project构建存档,这样才能使我成功构建正确的存档而无需重启。然而,重启是我发现的唯一选项,可以恢复Xcode的正常行为,以便能够从多项目Workspace内构建正确的存档。

我发现,重启可解决运行OS X 10.11.6和Xcode 8.2.1的系统上的Xcode问题-希望重启也可以解决新系统上的问题,并帮助那些可能正在处理这种奇怪问题的人。


2

在我的情况下,建议的解决方案都不可行,因为项目文件是正确的。我只需要删除派生数据文件夹中的所有内容,就可以恢复正常。您可以从“首选项>位置”中找到它。

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


1
在我的情况下,问题始于清理派生数据)) - Nike Kov
1
从我的经验来看,这意味着它一开始就是有问题的。 - mkko

2
以上答案都对我没用,一旦我按照苹果的技术笔记进行操作,我开始遇到很多链接错误和找不到头文件的错误。
我尝试解决这些错误,但没有任何解决方案适用于我,我尝试调整头文件搜索路径、库搜索路径等等。
最后,如果这些解决方案都不起作用,请按照以下步骤提交您的应用程序到应用商店。
使用XCode 11.x.x
基本上,您在执行“清除构建文件”后,再进行构建,在以下位置找到 .app 文件:~/Library/Developer/Xcode/DerivedData//Build/Products/Release-iphoneos/。
在桌面上创建一个名为 Payload 的新文件夹(此名称区分大小写)。
复制您的 .app 文件并将其粘贴到此 Payload 文件夹中。
右键单击文件夹,选择“压缩 Payload”。
保存时,请不要使用 .zip 扩展名保存,而是使用 .ipa 扩展名保存。
现在,这是您的应用程序的 .ipa 文件,您可以通过 Xcode Transporter 应用程序上传它。
如果您仍在使用旧版本的 Xcode 10.x.x,则按照上述相同步骤操作,但只需更改最后一步,而不是使用传输器应用程序,请使用 Application Loader 应用程序。
有关该问题的更多详细信息,请查看帖子

1
对我来说,Xcode 创建了一个“通用 Xcode 存档”,因为我的 Info.plist 中缺少 UISupportedInterfaceOrientations 字段。添加后,应用程序存档正确创建。

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

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