gpt4 book ai didi

ios - Codesign 返回 1(目标 ifile 格式无效或不合适)错误

转载 作者:IT王子 更新时间:2023-10-29 07:40:40 26 4
gpt4 key购买 nike

我正在使用 Xcode 4.1 build 4B110f 尝试让我的 iOS 应用程序准备好上传。它毫无错误地通过了产品|存档步骤,两次请求许可签署某些内容。但是当我尝试从管理器验证存档时,它失败了:

### Codesigning '/Users/uqrchern/Library/MobileDevice/Provisioning Profiles/70D2381D-3733-4F5D-88B2-4729572C2864.mobileprovision' with 'iPhone Distribution: Ron Chernich'
+ /usr/bin/codesign --force --preserve-metadata --sign iPhone Distribution: Ron Chernich --resource-rules=/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app/ResourceRules.plist --entitlements /var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/entitlements_plistrZ1Vwko6 /var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app
Program /usr/bin/codesign returned 1 : [/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app: replacing existing signature
/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app: object file format invalid or unsuitable
]
error: codesign failed with error 1

我查看了所有类似的问题和解决方案(其中一些毫无意义,或者适用于非常旧版本的工具)。没有任何影响。

我还检查了 3 次验证是否使用“生产”证书,以及生成存档的协同设计步骤。我什至将上面的输出变成了一个 schell 脚本,这样我就可以手动尝试所有证书:每次都得到相同的结果。

也许正在签名的.app文件真的不合适?

顺便说一句,codesign 没有版本标志,但手册页的日期是 2006 年 6 月 1 日。二进制文件的文件日期是 2010 年 11 月 20 日。

更新(第二天):

进一步研究问题发现一个晦涩的引用资料说 codesign 需要以下环境变量集:

CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

使用验证运行失败的输出,我创建了一个 shell 脚本,它在失败的 codesign --force 步骤和 viola 之前导出了这个 var!代码设计有效。

但这并不能真正帮助我准备上传代码。有没有办法将其包含到由管理器验证按钮运行的脚本中??

再过一会儿,解决方案! :

根据理论,某个地方有一个脚本可以生成在 Organizer Validate... 运行期间运行的所有命令,我用 grep 进行了一些挖掘并找到了。该脚本确实存在,它的名字是:

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

这只是 Perl,解决方法是在开始时将所需的环境变量添加到关联数组 %ENV,比如第 72 行:

$ENV{CODESIGN_ALLOCATE} = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate';

这完全解决了这个问题。 我不知道网络上所有其他发帖者认为他们通过删除证书、构建清理、关闭和重新启动的组合修复了它Xcode等,等等都是从哪里来的。我只是悄悄地断言,这个修复有利于科学而不是迷信,并且在 Xcode 4.1 Build 4B110f 及其相关的 PackageApplication 脚本下对我有效,在 Snow Leopard 10.6.8 和 Perl 5.10.0 下运行

最佳答案

只是为了将此问题从未答复列表中删除。正如您所说,您需要将 CODESIGN_ALLOCATE 添加到 $ENV 数组:

$ENV{CODESIGN_ALLOCATE} = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate';

如果大家在这里达成共识,我想这个问题终于可以结束了。

使用较新版本的 Xcode 时,默认位置为:

$ENV{CODESIGN_ALLOCATE} = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate';

关于ios - Codesign 返回 1(目标 ifile 格式无效或不合适)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com