2

有名なエラーが表示されます:
トークンの取得に失敗しました、エラー: エラー ドメイン=NSCocoaErrorDomain コード=3000 "アプリケーションの有効な 'aps-environment' 資格文字列が見つかりません" UserInfo=0x413be0 {NSLocalizedDescription=有効な 'aps-environment' 資格がありませんアプリケーションで見つかった文字列}

次のファイルを編集することで修正できます。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

そして、次のように aps-environment キーを手動で追加します。

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

次に、Xcode は次の場所にある aps-environment キーを含む正しい Xcent ファイルを生成しています。

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

また、iPhone でアプリを実行すると、プッシュ用のデバイス トークンを生成できます。
これは、問題を解決するために私が見つけた唯一の方法です。
(このエラーが発生した場合に備えて、この情報を独自のトラブルシューティングに使用できます)


現在、同じ Xcode バージョン 4.6 を使用して、別のラップトップ (git と同期) で同じプロジェクトを実行しています。
この問題は、そのラップトップでは発生しません。
プロジェクト設定/プロビジョニング プロファイルなどは、両方のマシンですべて 100% 同じです。
(これについては私を信じてください)

Xcode 4.6 でこのような問題に遭遇した人はいますか?
おそらく、Apple のサポートでもチケットを開く必要があります。

別のよりエレガントなソリューションが利用可能かどうか疑問に思っています。

アップデート:

上記の修正は開発段階でのみ十分ですが、リリース段階では不十分です。

4

1 に答える 1

1

デフォルトの Entitlements.plist をオーバーライドするためのより洗練された解決策は、編集したデフォルトの Entitlements.plist のコピーを作成し、それをプロジェクトに配置することです。

次に、問題が発生しているターゲット ビルドの Code Signing Entitlements を設定します (この場合は、Debug に設定しました)。

http://i.stack.imgur.com/mph9t.png

次に、この plist ファイルをデバッグ ビルドに使用する必要があり (つまり、単純に [実行] を押すと)、デバイスが APNs 開発サーバーに登録されます。

于 2013-08-15T02:28:52.817 に答える