1

アプリ ストアに配布するアプリをビルドすると、次の警告が表示されます。

warning: Application failed codesign verification.  The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)  
Executable=/Users/tijszwinkels/Dropbox/Documents/projects/iphone/BatteryLogger Pro/build/App-store distribution-iphoneos/BatteryLogger Pro.app/BatteryLogger Pro
codesign_wrapper-0.7.10: using Apple CA for profile evaluation    
Illegal entitlement key/value pair: keychain-access-groups, <CFArray 0x104270 [0xa0376ee0]>{type = mutable-small, count = 1, values = (
    0 : <CFString 0x104170 [0xa0376ee0]>{contents = "eu.TinkerTank.BatteryLoggerPro"}
)}
Illegal entitlement key/value pair: application-identifier, eu.TinkerTank.BatteryLoggerPro
 - (null)

送信時に、同じ「アプリケーションがコード署名の検証に失敗しました」というエラーが表示されます。

これは、エラーがあると言われているファイルです。

<?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>application-identifier</key>
    <string>eu.TinkerTank.BatteryLoggerPro</string>
    <key>keychain-access-groups</key>
    <array>
        <string>eu.TinkerTank.BatteryLoggerPro</string>
    </array>
</dict>
</plist>

ただし、「手動」の Entitlements.plist ファイルは構成していません。したがって、このファイルは /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Entitlements.plist から自動的に生成されます。

<?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>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

ここで何が間違っている可能性があるかについてのアイデアはありますか?

4

2 に答える 2

1

私の場合、keychain-access-groupsが間違っていました。見逃しやすいので、Filemerge はそれを私に手渡さなければなりませんでした。

正しくない:

<key>keychain-access-groups</key>
<array>
    <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
</array>

正しい:

<key>keychain-access-groups</key>
<array>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
</array>

完全な正しいファイル:

<?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>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
            <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
    <key>com.apple.developer.ubiquity-kvstore-identifier</key>
    <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>
于 2012-11-22T17:59:29.213 に答える
0

友人 (ありがとう Martijn!) は、通常、このファイルにはバンドル シード ID (アプリ ID プレフィックス) が含まれていることに気付きました。

を手動で作成Entitlements.plistして vars に入力することで、提出することができました。

これは私のEntitlements.plistです:

<?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>application-identifier</key>
    <string>78Z2PTX5KR.eu.TinkerTank.BatteryLoggerPro</string>
    <key>keychain-access-groups</key>
    <array>
        <string>78Z2PTX5KR.eu.TinkerTank.BatteryLoggerPro</string>
    </array>
</dict>
</plist>

ここで、「78Z2PTX5KR」はバンドル シード ID でありeu.TinkerTank.BatteryLoggerPro、バンドル ID です。

これで問題は解決しますが、$(AppIdentifierPrefix)自動的に解決するはずです。私が間違っていることはありますか?

于 2010-11-15T23:26:44.750 に答える