Xcode 4.3.1 - 打包操作失败

14
打包操作失败 - 当我尝试在 Organizer 中制作适用于 Ad Hoc 分发的 .ipa 文件时,现在显示此消息。
我检查了证书,检查了项目目录(在阅读此链接后之后)。
Xcode没有显示任何错误或类似的内容。日志导航器没有显示错误(只有旧警告)。
所以问题是:是否还有其他人遇到类似的问题?如果答案是肯定的,有什么解决问题的建议吗?
附言:在 Xcode 4.2.1 中一切都完美运行。

1
解决了!显然,从当前版本开始,Xcode将不再从包含以下文件的项目中创建归档:._开头的图片。我移除了这种类型的文件,现在一切正常运行! - Wert1go
1
我没有以._开头的图像,但我有这个问题。有人有其他想法吗? - iPadDeveloper2011
你是否有一个文件夹结构,其中父文件夹与子文件夹相同?(例如:folder1/folder1/file1) - John
1
是的,这是为了应用程序。创建了一个名为xyz(应用程序名称)的文件夹,然后在该文件夹中创建了一个名为xyz的Xcode项目,生成了一个同名的文件夹。这是一个相当标准的模式。这样做有什么问题吗? - iPadDeveloper2011
每个新的Xcode版本在创建存档时都会发明一个新的奇特问题。我想知道是否有一个总结所有这些问题的列表? - brainray
今天似乎用XCode 4.4.1修复了这个bug。 - viggio24
16个回答

21

偶尔在使用不同分发证书打包时,自动重新签名可能会引起此问题。当你启动新项目并使用团队预配文件构建dev和release版本时,会出现这种情况,然后你为特定的bundle ID创建一个分发(adhoc或其他)证书,并试图用该新证书对存档进行签名。

解决方法是在构建设置中查找代码签名标识,并将构建发布标识设置为与你尝试签署压缩包的相同分发证书,即adhoc证书或应用商店证书。你可以将调试构建保持为团队证书。

在下面的示例中,问题已得到解决。使用构建设置搜索框查找代码签名标识。 "Release" 可能被设置为 "iOS Team Provisioning Profile",而应该设置为 "iPhone Developer:Your Name",这是你尝试用来签署压缩包的同一证书。

code signing


谢谢!这对我解决问题很有帮助... :) - Alex Zak
这不是Xcode的一个bug吗?发布标识和Ad Hoc标识应该独立处理吗? - brainray
@brainray 默认方案不会对它们进行区分,我认为也不应该。毕竟,您正在向用户发送临时构建以测试发布功能。 - Nick
这听起来可能是正确的,但修复说明还有很多需要澄清的地方。您能否请明确 "build release identity" 的位置。据我所知,我的供应配置文件、证书、钥匙串、授权设置和签名者等构建设置都没问题。这个神秘的设置在哪里?(这是多么可怕的bug/问题啊!)。谢谢。 - Lana Miller
@LanaMiller 我增加了更多描述,但如果您没有在构建设置中发现问题,则可能此页面上的另一个修复方法会对您有所帮助。 - Nick

5

我在我的项目中遇到了相同的问题 (在xcode 4.3.2中),按照所有答案的建议,检查任何以"._*"开头的png文件,还检查了文件夹及其子文件夹的不同名称

根据要求还检查了代码签名标识。但是没有成功解决这个问题。

经过数天的努力,我最终找到了导致项目出现"打包操作失败"错误的原因。

在我的情况下,我有类文件"About_us.h""About_us.m",而我错误地像这样导入头文件#import "About Us.h"(中间有空格)。因此,当我将应用程序加载到设备上时,它会成功加载,但是当我尝试使用存档创建ipa时,它会给我返回错误并显示估计App Store大小仅为143 KB

最后,当我将头文件更改为#import "About_Us.h"并尝试制作ipa时,我得到了真正的大小,以正确的MB显示。

希望这能帮助到其他人。


3

我在使用FAT文件系统的U盘复制项目后遇到了这个问题。突然出现了很多“._”文件。其中一个文件在Settings.bundle中。 我运行以下命令删除了这些文件:

find . -name "._*" -exec rm -rf {} \;

3
我遇到了同样的问题。
即使在Finder中显示隐藏文件(在终端中输入defaults write com.apple.finder AppleShowAllFiles 1),以._开头的PNG文件也不可见。 但是,如果我使用Versions应用程序浏览我的SVN文件夹,我可以看到以._开头的PNG文件。
对于这些文件中的每一个,我使用预览应用程序打开它,复制并重新保存相同的名称,然后删除所有._文件,因为它们不再需要。
现在,我可以创建一个归档并通过IPA文件分发它。
希望这会对你有所帮助!

是的,我忘了说,我使用muCommander进行文件浏览。 - Wert1go

1
对我来说问题是在构建设置中将发布产品名称设置了两次:
ProductName
ProductName

不仅仅是产品名称。有趣的是,换行符会导致打包问题,但其他方面没有影响。


1

如果某个文件名中有空格,这会阻止rm进程。请改用以下命令。

find . -name \._*.* | xargs -I{} rm -v {}

0
我在一个cordova项目中遇到了同样的问题,但是我找不到任何以“._”开头的png文件。有些幸运的是,我发现我的问题是因为www(蓝色)文件夹中有一些带有图标的字体文件夹(www文件夹是包含webapp的文件夹,在构建时将被捆绑)。在将字体移动到更高的级别后,消息“打包操作失败”的问题消失了,并且可以再次导出用于Ad Hoc分发的归档文件。

0
在我的情况下,我有两个问题: 1. Info.plist 中的 bundle ID 与 iTunesConnect 中使用的略有不同 2. 用于存档创建的分发证书与我在验证/提交之前重新签名应用程序时使用的不同。
在所有情况下,XCode 都是不透明的。但是使用 Application Loader(可以从“XCode 菜单 -> 开发人员工具”中运行它),并向其提供 ipa 文件,消息足够清晰,以帮助我调试问题。因此,我将向苹果公司报告此问题:在 XCode 中向用户提供与 Application Loader 完全相同的清晰消息!同时,建议在“包”问题不够清晰时使用 Application Loader。

0

我解决了这个问题,只需将项目文件夹复制到桌面上,这样可以缩短项目文件路径(我想是这样的)。


0
我安装了Xcode 4.3.1来编译一个iOS4.2的应用程序,但是我无法解决“打包操作失败”的问题(我尝试了上面提到的一些解决方案)。后来我安装了XCode4.4.1,我能够编译iOS 4.2而几乎没有任何问题。

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