[解決済み] Xcode 4.3で「no valid 'aps-environment' entitlement string found for application」を修正するにはどうしたらいいですか?
質問
プッシュ通知を受け取ることができるシンプルなiOSアプリを一生懸命作っています。 これを行う唯一の理由は、他のチームメンバーが使用するための手順を確立することであり、ウェブ上の他の場所でそのような手順の最新かつ実用的なバージョンを見つけることができませんでした。 私たちのショップはiOS開発にはかなり新しく、私個人はiOS開発およびXcodeの経験が全くありません。 Appleや他のところから何十ものチュートリアルや記事、トラブルの投稿を読み漁り、もう少しでたどり着けそうな気がしています...。
私はXcode 4.3を使っていて、最初はiOS 5.1にだけデプロイしようとしています。最近、Xcodeの以前のバージョンと比べていくつかのことが変わったかもしれないと思いますが、やはり私はすべて初めてで、完全に混乱し複雑になっていることがわかります)。
1) iPhoneのプロビジョニングプロファイルで、Pushを有効にしています。
2) テスト用のXcodeプロジェクトで、そのプロビジョニングプロファイルを署名IDとして選択しました(Build Settings > Code Signingにて)。
3) Summary と Info > Custom iOS Target Properties のバンドル識別子が正しく設定されている*(と思うのですが?)
4) デリゲートのdidFinishLaunchingWithOptionsで、registerForRemoteNotificationTypesが呼び出されています。
5) 私のデリゲートには、didRegisterForRemoteNotificationsWithDeviceToken と didFailToRegisterForRemoteNotificationsWithError があり、それぞれデバイストークンとエラーを記録するようセットアップされています。
6) SummaryでEnable Entitlementsにチェックを入れています。
7) そのすぐ下にある Entitlements File は Tinker6 (私のテストプロジェクトの名前) で、これは Enable Entitlements をチェックしたときに自動的に生成されたものです。
8) Tinker6.entitlements ファイルに次のような記述があります (これはウェブ上のいくつかの異なる投稿に基づいて正しいと判断しましたが、Apple 自身から決定的なものは見つけられませんでした)。
更新情報
9) また、エンタイトルメントファイルなしで全部試しましたが、基本的に同じ結果になりました。
10) 私のmobileprovisionファイルの内容は、エンタイトルメントをきちんと含んでいます(番号とドメインをスクランブルしていますが、構造的には同じです)。
<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>12355456A7.*</string>
</array>
/更新終了
これを端末で実行しようとすると、Xcodeの出力に以下のようなエラーが表示されます。
2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x24a3b0
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
get-task-allowをNOに、aps-environmentをproductionに、4通りの組み合わせを試しましたが、同じでした。
どうすればいいのでしょうか? これに関する決定的なドキュメントはどこにあるのでしょうか?
-- さらに詳しい背景は以下の通りです。 --
*バンドルIDに関しては、ProvisioningプロファイルのApp IdsやProfile IDとどのように関連付けるべきか、まだ明確ではありません。 Provisioningポータルの[App Ids]には、このような項目があります(番号とドメインは省略されています)。
そして、バンドルIDが設定されている2つの場所には、次のようなものがあります。
これらが正しいのか、あるいは一方または両方を 12355456A7.com.whatever.tinker に設定する必要があるのか、まったく自信がありません。プロセスの早い段階でこれらを試しましたが、成功しませんでした...。
備考 同じようなタイトルの投稿がたくさんあることは承知していますが、与えられたファイル名などから、どれも古いと思われますし、どの解決策も有用とは思えません。 私は、私が与えたより詳細なレベルは、質の高い応答を保証することを期待しています。 もし、あなたが解決策につながるような質の高い回答をした場合、私は賞金を授与するとともに、あなたの回答をツイッターや私のブログで宣伝することになると思います。 特に、あなたが本当に良い"ここにあるものをクロスポストして投稿した場合。 正確 500 steps you need to get a simple push notification app working including provisioning and whatever else" article on your blog or whatever.
解決方法は?
答えは、やり直し、すべてを同じにし、新しいプロビジョニングプロファイルを作成し、それをインストールすることでした。 これでうまくいきました。 すべての詳細(モバイルプロビジョニングのエンタイトルメント)を確認すると、以下のようになります。 まさに というのは、ここで質問したこととすべて同じです。 しかし、今はうまくいっています。 Appleです。WAT?
もちろん、こうするのが当然だったのでしょう。 もし プロビジョニングプロファイルの削除が可能であること。 しかし、それは不可能なので、テストプロファイルの束で我々のチームを混乱させたくはありませんでした。 それでも、ついに我慢の限界に達して、とにかく試してみたところ、結局うまくいきました。 まあ、いいや。
関連
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] iOSアプリを投稿するためにアーカイブしようとすると、プロビジョニング設定の競合エラーが発生する
-
[解決済み】Xcode 10: この実行ファイルに有効なプロビジョニングプロファイルが見つかりませんでした。
-
[解決済み] プッシュ通知のエンタイトルメントの欠落
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。