最近我为iPad创建了一个应用程序。我创建了二进制文件(something.zip)并通过Application Loader上传,但上传的结果是“无效的二进制文件”。总是。 当我的应用程序由于问题而被拒绝时,我收到了来自苹果的这封电子邮件'无效的二进制文件' :
"签名无效 - 请确保您已使用分发证书(而非临时证书或开发证书)对应用程序进行了签名。验证Xcode中的代码签名设置在目标级别是否正确(覆盖项目级别的任何值)。此外,请确保您上传的软件包是使用Xcode中的Release目标而不是Simulator目标构建的。如果您确定您的代码签名设置正确,请选择"全部清除"在Xcode中,删除" build" Finder中的目录,并重建您的发布目标。"
我搜索了来自世界各地的网络来解决这个烦人的问题,但我看不出好的答案。这是我的应用程序info.plist的数据:
本地化本地开发区域:英语 捆绑显示名称:$(PRODUCT_NAME) 可执行文件:$(EXECUTABLE_NAME) CFBunldleIconFiles:Icon-Small.png(29x29),Icon.png(57x57),Icon-Small-50.png(50x50) (所有文件都创建为72ppi,RGB,扁平,无透明) InfoDictionary版本:6.0 套装名称:$(PRODUCT_NAME) 捆绑操作系统类型代码:APPL 捆绑创建者操作系统类型代码:???? 捆绑版本:1.0 LSRequiresiPhoneOS:已启用 UIPrerenderedIcon:已启用 UIApplicationExitsOnSuspend:已禁用 UIStatusBarHidden:已禁用**
我用这些工具创建了这个应用程序 - cocos2d Ver0.99.4-rc3 / xcode Ver3.2.5 64位/ iOS SDK 4.2
我试图解决这个问题3天,但我不能。
是否有人可以解决我的申请问题,这是我们公司的紧急问题。
谢谢大家
答案 0 :(得分:1)
似乎有很多原因可以接收这个神秘且无用的电子邮件。即使在核实使用分发证书后,清洁和重建我的项目,并从命令行检查codesign(并按照电子邮件中的说明),没有出现任何错误 - 但我上传后立即收到“无效签名”电子邮件。所有的解决方案似乎都很轶事,显然取决于导致问题的秘密错误。我花了最后一周把我的头发拉出来,试图找出我的应用程序 - 最后成功提交它 - 所以让我分享我的故事,看看它是否与你的情况有关。
在我的情况下,我似乎有一个复杂的原因,我的Entitlement.plist设置了一个不正确的变量以及旧的配置文件(来自以前的Xcode版本?)的保留深埋在project.pbxproj组件中我的Xcode项目文件。
我的Entitlements.plist中的“aps-environment”变量被设置为“分发”而不是“生产”(我发誓我在开发人员文档的某处读到它应该是“发行版”!)但是要修复它单凭这还不足以让我的应用程序通过。 (我必须提交尝试不同变量的100种不同的app配置组合!)从the helpful suggestions from this post on another forum开始,我挖掘了分布配置文件,发现了一些变量的重复条目。重复项有空引号(即没有为变量设置)或奇怪的变量或旧供应配置文件似乎导致问题(某种程度上)。在我的情况下,清理它并删除带有错误变量的重复行。因人而异。但仔细检查项目文件(在finder中的Xcode项目文件中显示“显示内容”)似乎是诊断的好主意。祝你好运!
答案 1 :(得分:0)
这是一个非常烦人的问题,我花了很多时间试图找到解决方案,但最后通过删除Entitlements.plist对我进行了更正(据我所知,只有在部署为ad hoc时才需要它) ),删除Info.plist中的任何重复字段,使用正确的证书配置将目标设置为“Distribution”,并使用“Archive”方法然后“Validate”,最后在XCode中使用“Submmit”