こんにちは、新しい iOS 開発者になったばかりで、これまでのところすべて順調に進んでいますが、Xcode で .xcodeproj ファイルの警告が表示され、「プロジェクト設定の検証 - 推奨設定への更新」と表示されます。それをクリックすると、「Target '(my app name)' - Upgrade DataProtectionClass Entitlement.Upgrades the default file protection level for your application to the recommended value: NSFileProtectionComplete.」というウィンドウが表示されます。そこで、[変更を実行] をクリックしてそれを実行できるようにすると、警告は消えますが、デバイスでデバッグしようとすると、「アプリケーションのコード署名資格ファイルで指定された資格が、プロビジョニングで指定された資格と一致しません」というエラーが表示されます。プロファイル (0xE8008016)。
デフォルトのファイル保護を NSFileProtectionComplete にアップグレードした entitlemnets ファイルを削除すると、Xcode での警告がなくなり、デバイスでコンパイルして実行できるようになりますが、Xcode で不要な警告が表示されるという問題が発生します。びくびくする。
これは、まったく新しいプロジェクトでも発生します。OS X 10.8 Mountain Lion DP3 (12A178q) で Xcode バージョン 4.4 (4F134) を実行しています。
ターミナルで先に進み、.mobileprovision ファイルの資格を確認しました。(ワイルドカードのものではなく、特定のアプリIDを持つもの)
security cms -D -i /pathto.mobileprovision
Entitlements キーのこの値を取得しました。
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>GLAMURY37G.com.ionescuac.GPS-Status-</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>GLAMURY37G.*</string>
</array>
</dict>
デバッグ構成のために xcode でアプリをビルドしたとき、先に進み、資格を調べました
codesign -d --entitlements - /pathtoapplication.app
そしてこれを取り戻した
<dict>
<key>application-identifier</key>
<string>GLAMURY37G.com.ionescuac.GPS-Status-</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>GLAMURY37G.com.ionescuac.GPS-Status-</string>
</array>
</dict>
そして、期待どおりに xcode がデバイス上でアプリを実行できるように一致します。しかし、xcode は FileProtectionComplete にアップグレードするように指示しているので、それを行い、アプリをビルドしてアプリの権限を再度確認した後、これが得られます。
<dict>
<key>DataProtectionClass</key>
<string>NSFileProtectionComplete</string>
<key>application-identifier</key>
<string>GLAMURY37G.com.ionescuac.GPS-Status-</string>
<key>get-task-allow</key>
<true/>
</dict>
これにより、一致しなくなるため、最初の投稿でエラーが発生します。FileProtectionComplete 資格で署名すると、xcode は警告を表示しませんが、実行できなくなります。資格なしでビルドすると実行されますが、xcode は FileProtection 資格を「推奨設定」にアップグレードする必要があるというこの警告を出し続けます。
ちょっとキャッチ22の状況で立ち往生。開発者プログラムに参加する前に、私はシミュレーターをいじくり回しましたが、ビルドに追加する必要があるという xcode の資格の問題は一度もありませんでした。