5

testflight を介してアドホック アプリケーションをインストールしようとしているので、Apple ポータルからアドホック プロビジョニングを作成し、.ipa をビルドしてから testflight に送信します。

問題は、testflight からアプリケーションをインストールできることです (エラーは表示されません) が、アプリケーションを起動すると、アラートやメッセージなしで終了します。

いくつかのテストの後、デバイスを xcode に接続し、[開発用に構成] をクリックしました (または、このようなオプションが表示されないため、正しく覚えていません)。その後、アプリケーションは起動時に終了せず、正常に動作しています。

問題は、任意のデバイスで xcode を使用した開発を有効にする必要がある場合、testflight を介してアプリケーションを配布できないことです!

なぜ私はこの振る舞いをするのですか?私は何か間違ったことをしていますか?

ありがとうございました

4

2 に答える 2

1

エラーなしで TestFlight からアプリケーションをインストールできた場合、デバイスはプロビジョニング プロファイルに正しくリストされています。あなたの問題は別のものです。

デバイスのクラッシュ ログを調べて、何が問題なのかを確認してください。それらを抽出して、Xcode でシンボル化できます。

MusiGenesis の回答の訂正:アドホック ビルドがプッシュ通知で動作しないことは、確かに正常ではありません! システムを正しくセットアップして使用するだけです。

アドホック ビルドがプッシュ通知を受信しない場合の一般的なエラーの原因:

  • アプリのプッシュを有効にした後、新しいプロビジョニング プロファイルを生成していません。これにより、受信したプッシュ トークンが nil になります。
  • 開発証明書を使用して APNS サーバーに接続しています。アドホック ビルドは配布ビルドと見なされるため、運用キーを使用する必要があります。
  • 開発トークン (開発ビルドから) と運用トークン (アドホック ビルドから) を組み合わせて APNS サービスに送信しています。これにより、プッシュ通知のバッチ全体がサーバーによって静かに破棄されます。これを回避するには、開発、アドホック、および本番のトークン データベースを完全に分離してください。どのトークンがバッチをポイズニングしているかを特定する方法はないため、それらをすべてクリアして、正しいタイプのトークンのみが挿入されていることを確認する必要があります。

プッシュに登録する必要があるアプリに対して、常に 3 つのバックエンド インスタンスを実行しています。1 つは開発ビルド用、1 つはアドホック ビルド用、もう 1 つは App Store ビルド用です。たとえば、別々の API エンドポイントを でオンラインに保ちdev.mybackend.com、それらを分離するために別々のデータベース インスタンスstaging.mybackend.comproduction.mybackend.comバックアップすることができます。

Xcode プロジェクトでは、これらのタイプのビルド用に個別のビルド構成を用意し、プリプロセッサ マクロを使用して正しいバックエンドを交換します。開発ビルドが本番アカウントに間違った分析を報告していないこと、正しいプロビジョニング プロファイルが自動的に使用されていることなどを確認したい場合は、個別のビルド構成も便利です。

于 2012-06-05T16:40:26.010 に答える
1

これは 2012 年の古い質問ですが、最近まったく同じ問題が発生しました。そして、何が問題を引き起こしたのかを理解しました。フレームワーク OCMock を使用していましたが、バージョン 3.0 に更新したときに、この問題が発生し始めました。元に戻しましたが、正常に動作します。OCMock 3.0 の何がこの問題を引き起こしているのか、まだわかりません。分かったらまたここに書きます。

http://ocmock.org/ocmock3/

于 2014-07-02T22:54:16.447 に答える