我正在使用xcode 4.2 Build 4C151a。我没有通过组织者提交我的应用程序,因为this。 但app loader也不起作用。它只是给出了一个错误:
应用程序验证码验证失败。签名无效,或者未使用iPhone分发证书签名。
我检查项目和目标的构建设置。发布的代码签名标识是iphone发行版。 在产品中>编辑方案,构建配置已经更改为发布。 Xcode在构建和实现时不会出现错误或警告。 谷歌此错误后阅读documents of Apple,我使用codesign cmd检查我的应用程序, 但没有发现任何错误:
$ codesign -dvvv /Users/apple/Library/Developer/Xcode/DerivedData/AttentionDetector-gmmelanobmbjlbhahwbarnsctfdk/Build/Products/Release-iphoneos/AttentionDetector.app
Executable=/Users/apple/Library/Developer/Xcode/DerivedData/AttentionDetector-gmmelanobmbjlbhahwbarnsctfdk/Build/Products/Release-iphoneos/AttentionDetector.app/AttentionDetector
Identifier=com.MyCom.MyName.AttentionDetector
Format=bundle with Mach-O thin (armv7)
CodeDirectory v=20100 size=8122 flags=0x0(none) hashes=397+5 location=embedded
CDHash=727f1bb04fb535821626ce50b1a35bc2c638223a
Signature size=4315
Authority=iPhone Distribution: My Name
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=2013-5-6 下午02:43:10
Info.plist entries=28
Sealed Resources rules=3 files=18
Internal requirements count=1 size=148
然后我检查了zip文件,发现一些令人困惑的事情:
$ codesign -dvvv /Users/apple/Library/Developer/Xcode/DerivedData/AttentionDetector-gmmelanobmbjlbhahwbarnsctfdk/Build/Products/Release-iphoneos/AttentionDetector.zip
/Users/apple/Library/Developer/Xcode/DerivedData/AttentionDetector-gmmelanobmbjlbhahwbarnsctfdk/Build/Products/Release-iphoneos/AttentionDetector.zip: code object is not signed
我不确定这是否重要。
BTW我的macbook是32位,但我的应用程序是为iOS 6.1构建的(可能需要64位?)。 我只是将Xcode 4.6的SDK复制到我的Xcode 4.2中。在我的iPad(iOS 6.1.2)中进行调试时该应用程序运行良好。
感谢您的回答。
EDIT1: 感谢@Rushabh。我用
检查我没有修改过的权利security cms -D -i MyApp.app/embedded.mobileprovision
,得到这个:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppIDName</key>
<string>Attention Detector</string>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>XJJGWB4EW6</string>
</array>
<key>CreationDate</key>
<date>2013-05-04T12:31:30Z</date>
<key>DeveloperCertificates</key>
<array>
<data>
...
</data>
</array>
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>XJJGWB4EW6.com.MyCom.MyName.AttentionDetector</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>XJJGWB4EW6.*</string>
</array>
</dict>
<key>ExpirationDate</key>
<date>2014-02-25T12:31:30Z</date>
<key>Name</key>
<string>Attention Detector</string>
<key>TeamIdentifier</key>
<array>
<string>XJJGWB4EW6</string>
</array>
<key>TeamName</key>
<string>My Name</string>
<key>TimeToLive</key>
<integer>297</integer>
<key>UUID</key>
<string>F0636A25-B371-4FEF-906B-C2979028F218</string>
<key>Version</key>
<integer>1</integer>
</dict>
</plist>
有两点不同:我得到这一行,但其他人没有
<key>aps-environment</key>
此外,我得到了
Authority=iPhone Distribution: My Name
而不是
Authority=iPhone Distribution: My Name(XXXXXXXX)
在我的钥匙串访问中,我找到了两个分发证书:一个是“iPhone发行版:我的名字”,另一个是“iPhone发行版:我的名字(XXXXXXXXX)”。两者都有效,但我可以删除前者吗?前者是在我第一次申请Apple开发者帐户时创建的。
EDIT2:修复“MyName(XXXXX)”的问题。我删除其中一个证书,下载新的配置文件。现在我得到了我的名字(XXXXXXX),但错误仍然存在!