5

iOSおよびAndroid用のPhoneGapアプリケーションを作成しています。Androidは完全に正常に動作するようになりましたが、iOSで開発から本番に切り替えるのに問題があります。デバイストークンは、本番環境のadHocビルドでデバイスに登録されていません。私は私が考えることができるすべてのものを使い果たしました。これが私がこれまでにしたことです:

  1. コンピューター上のすべての証明書とプロビジョニングプロファイルを削除して、最初からやり直してみました。
  2. アプリケーション固有のアプリID(ワイルドカードアプリIDではない)で本番APNSを有効にし、キーチェーンにインポートしました。
  3. 本番SSL証明書と正しいアプリIDを使用して、adHoc配布用の新しい本番プロビジョニングプロファイルを作成しました。プロビジョニングプロファイルでaps-environmentが設定されていることを確認しました。
  4. 新しいプロビジョニングプロファイルをインポートし、プロジェクトとターゲットのビルド設定で正しいプロファイルを使用するようにアプリケーションを設定しました。
  5. UAにインポートするためにp12ファイルをエクスポートしました。
  6. 本番用に設定されたUAに新しいアプリケーションを削除して作成しました。p12ファイルをアップロードし、プッシュデバッグモードをオンにしました。
  7. AirshipConfig.plistに正しいプロダクションキーがあり、APP_STORE_OR_AD_HOC_BUILDがYESに設定されていることを確認しました。
  8. アプリをアーカイブし、アドホック配布用にエクスポートして、iTunes経由で電話にロードしました。

すべてが完全にやり直された状態でデバイス上で初めてアプリを実行したとき。これは私がコンソールに表示するものです:

Mon Sep 17 12:48:00 unknown XXXXXXXXX[5039] Warning: Multi-tasking - Device: NO, App: YES

Mon Sep 17 12:48:05 unknown XXXXXXXXX[5039] Warning: Reachability Flag Status: -R -----l- networkStatusForFlags
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAPush updateRegistration] [Line 583] Checking registration state
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser listenForDeviceTokenReg] [Line 969] ListenForDeviceTokenReg
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser retrieveRequestSucceeded:] [Line 911] User retrieved: 200:{
"user_id" : "XX-XXXXXXXXXXXXXXXXX",
"user_url" : "https://device-api.urbanairship.com/api/user/XX-XXXXXXXXXXXXXXXXX/",
"tags" : [ ],
"device_tokens" : [ ],
"device_pins" : [ ],
"apids" : [ ],
"has_active_subscription" : false,
"subscriptions" : [ ],
"ua_device_ids" : [ "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" ],
"badge" : 0,
"server_time" : "2012-09-17 17:48:02"
}
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser updateDefaultDeviceToken] [Line 1016] Updating device token
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser updateDefaultDeviceToken] [Line 1021] Skipping device token update: no token, already up to date, or user is being updated.

Mon Sep 17 12:48:21 unknown XXXXXXXXX[5039] Warning: [M] = +[UAKeychainUtils getDeviceID] [Line 269] Retrieved device id info from keychain.
Mon Sep 17 12:48:21 unknown XXXXXXXXX[5039] Warning: [M] = +[UAKeychainUtils getDeviceID] [Line 273] Device ID result is not nil.
Mon Sep 17 12:48:21 unknown XXXXXXXXX[5039] Warning: [M] = +[UAKeychainUtils getDeviceID] [Line 282] Loaded Device ID: XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Mon Sep 17 12:48:21 unknown XXXXXXXXX[5039] Warning: [M] = +[UAKeychainUtils getDeviceID] [Line 283] Loaded Model Name: iPhone1,2
Mon Sep 17 12:48:21 unknown XXXXXXXXX[5039] Warning: [M] = -[UAAnalytics requestDidSucceed:response:responseData:] [Line 467] Analytics data sent successfully. Status: 200

ID番号とアプリ名を空白にしました。

「デバイストークンの更新をスキップします:トークンがないか、すでに最新であるか、ユーザーが更新されています。」の上のこのメッセージ。私には奇妙に思えます。これは、新しいキーとすべてを備えた、新しく作成されたUAアプリケーションです。また、開発プロファイル、キー、その他すべてをロードしましたが、問題なく動作します。実稼働環境でデバイストークンを登録しないだけです。

どんな助けでも大歓迎です。すべての設定を確認しましたが、すべてのプロファイル、キー、資格がすべて正しく設定されていることがわかります。私が使用している電話はアクティブなキャリアサービスを持たない単なるテスト電話であるため、WiFiで実行しています。

4

1 に答える 1

2

私は今、この問題を2回解決したと思いますが、コアの問題が何であるかは100%わかりませんが、テスト方法に問題があると思います。

UAプッシュサンプルアプリを機能させるようにしてください。

  • UAPushSampleアプリをダウンロードします。
  • AirshipConfig.plistファイルをアプリ/シークレットコンボで更新します
  • 適切なバンドルID、プロビジョニングプロファイルなどでビルドを更新します。
  • デバイスからアプリを削除します(同じバンドル識別子でPushSampleアプリがまだ存在する場合、PushSampleアプリをビルドしようとすると衝突します。
  • プッシュサンプルアプリをコンパイルして実行します。
  • ログでトークンを探し、UAダッシュボードも確認します(#トークンの場合、または単にブロードキャストアラートを送信します)。

あなたはまだ同じ問題を抱えていますか?私の場合、どちらの場合も、それはなくなり、トークンを正常に登録できました。何らかの理由で、誤って構成された証明書/プロビジョニングプロファイルにより、トークンが適切に作成されなかったと思います。私がそれらを修正したとき-UAライブラリはそれが登録されたと思ったので、その部分をスキップしていたので、手遅れでした。ログのこの行は、私が疑った理由です。

アプリの初期化時に無効になっているアプリフォアグラウンドでの登録の確認

2対2で、クリーンなPushSampleアプリに正しい証明書/バンドル/プロビジョニングプロファイルを配置すると、正しく機能しました

于 2012-09-25T05:14:14.230 に答える