应用程序加载程序中的应用程

时间:2013-05-07 13:19:30

标签: iphone itunesconnect code-signing verification

我正在使用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),但错误仍然存​​在!

0 个答案:

没有答案