私の場合、プロビジョニング プロファイルの内容は次のとおりです。
security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>
実際にビルドされたアプリ内のものとは異なりました (Xcode の [ログ] タブを見ると、ビルドされている場所を見つけることができます)
codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
<key>application-identifier</key>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
</array>
</dict>
これは、Code Signing Identity の下の "Currently Matches" ヒント テキストが正しいプロビジョニング プロファイルを示していたにもかかわらず、当てはまりました。奇妙な話をさらに奇妙にするために、実行時に正しいプロビジョニング プロファイルがデバイスにインストールされていたので ([設定] -> [一般] -> [プロファイル])、プロビジョニング プロファイルは正しいと思い込んでいましたが、ワイルドカード ID にフォールバックしていました。アプリが実際に起動されたとき。
手がかりは、次の 2 つのコマンドの出力の違いでした。
Y2X6Z7Z2GR .com.dca。spolsky -ios対P5GM95Q9VV .com.dca. スポルスキー
太字部分を合わせると自動的にイタリック部分が合うように変更されました。さらに、セキュリティとコードサインの出力は一致し、aps-entitlement エラーはなくなりました。
ここでの私の推測では、XCode は、ワイルドカードではない ID に対してワイルドカード スタイルの一致を使用していたようです。(「spolsky」は、結局のところ、「spolsky-ios」にかなり近い)、これが「Currently Matches」の出力を説明しています。しかし、ビルド チェーン内の何かがこれに関してより厳密であるため、ビルド中に実際のワイルドカード IDにフォールバックします。