在构建我的应用以分发到应用商店时,我收到以下警告:
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)
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)
提交后,我收到相同的“应用程序失败的代码签名验证”错误。
这是据说出错的文件:
但是,我还没有配置任何'手动'的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>eu.TinkerTank.BatteryLoggerPro</string>
<key>keychain-access-groups</key>
<array>
<string>eu.TinkerTank.BatteryLoggerPro</string>
</array>
</dict>
</plist>
关于这里可能出现什么问题的任何想法?
答案 0 :(得分: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>
答案 1 :(得分:0)
一位朋友(感谢Martijn!)发现此文件通常包含捆绑种子ID(App id前缀)。
手动创建Entitlements.plist
并填写变量允许我提交。
这是我的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
是捆绑标识符。
这确实为我解决了问题,但$(AppIdentifierPrefix)
应该自动解决。我做错了什么?