12

私はこれが一筋縄ではいかないことを理解していて、私は助けるために多くの情報を与えることができませんが、私は何かに手を差し伸べています。私のアプリは3年間継続的に開発されており、このようなものを見たことがありません。私は最近、リリースのためにAppleに小さなポイントリリースを提出しましたが、今では2回、すべてのデバイスでの起動時のクラッシュで拒否されましたか?

クラッシュレポートは静的ライブラリの一部のコードを示していますが、キーラインがシンボリック化されていません。アトスを試してみましたが運がありませんでした。

重要な点は、考えられるすべてのモードでアプリをテストした7つのデバイスがあることです。特に、Wifi-OFF、AirplaneMode-ON、位置情報サービス-OFFのいずれにも接続されていません。私は彼らが見ていると主張するものをシミュレートすることはできません。それは毎回起動時にアプリがクラッシュするということですか?!

AAPL Dev Forumsで、同じように聞こえるレポートを1つ見つけましたが、彼は何が起きているのかについて説明を得ることができませんでした。彼が必死になってログインしているアプリを提出し、ログを送信するように依頼した後。彼らはそのバージョンを手に入れ、...数時間でそれを承認しました。

誰でもアイデアがあります。このリリースをリリースする必要があります。


注:解決済み


これは弱いリンクの問題ではないことが判明しました。ブラッドが提案したように、アーカイブバージョンのアドホックディストリビューションを使用してアプリを実行したときにのみクラッシュが発生しました...それは役に立ちました。

しかし、解決策は私がここにリストしたいくつかのコンパイラフラグであることが判明しました: https ://stackoverflow.com/a/10302012/754494

4

1 に答える 1

12

この質問に受け入れられるように、上からのコメントを再投稿して拡張します。

最近、GPUImageフレームワークを構築するときに、これに似たケースに遭遇しました。アーカイブ時と、Xcodeを介してデバイスにアプリケーションをビルドして直接インストールする場合とでは、ビルドプロセスが少し異なるようです。

これは、アプリケーションを構築してアーカイブし、アドホックまたはエンタープライズ配布用に配布することを選択することで明らかになります。.ipaを取得してiTunesに配置し、その方法でテストデバイスの1つに手動でロードします。この方法で準備されたアプリケーションの動作は、Xcodeを介してビルドおよびインストールされたものとは異なる場合があり、レビュー用に送信されたビルドの動作に近いはずです。

私の場合、問題は適切な弱いリンクの欠如が原因でした。iOS 4.3より新しいSDKでは、新しいSDKには存在するが、古いSDKにはないクラスと関数を条件付きで使用する場合に、フレームワーク全体を弱くリンクする必要がなくなりました。4.0以降をターゲットにしている場合、リンカはクラスレベルおよび関数レベルのウィークリンクを実行する必要があります。

ただし、これは、iOS 5.0の新しいテクスチャキャッシュ関数の存在をランタイムチェックする静的ライブラリを使用している人にとっては失敗していましたが、これらのアーカイブされたビルドでのみ失敗しました。Xcodeを介してインストールすることで行われたため、4.xデバイスに対するすべてのテストでこれを確認したことはありません。結局、iTunesを介してアーカイブおよびインストールしたときに、このフレームワークを使用するアプリケーションを正しく実行するには、ユーザーにCoreVideoフレームワーク全体を明示的に弱くリンクさせる必要がありました。

これは、リリースとデバッグのビルド構成によるものではないことに注意してください。Xcodeを介してデバイスにデプロイするときに、ビルドスキームでこれらを切り替えようとしましたが、違いはありませんでした。他の何かは、アーカイブされたアプリケーションが構築され、リンクされる方法が異なります。

于 2012-04-22T04:06:20.053 に答える