1

こんにちは、新しい 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 の資格の問題は一度もありませんでした。

4

0 に答える 0