2011-01-08 14 views
0

Xcode 3.2.5でBase SDKをiOS 4.2に設定したiPadアプリでMapKitを使用しています。 iPad Simulator 4.2でアプリを実行すると、アプリは正常に動作します。私がiPad Simulator 3.2で実行すると、起動時に次のエラーでクラッシュします。エラー:AXバンドルをロードできません:MapKitFramework.axbundle。助けて?

ERROR: unable to load AX Bundle: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/AccessibilityBundles/MapKitFramework.axbundle

私は間違っていますか?

答えて

0

3.2デバイスでアプリを実行したところ、CLLocationCoordinate2DMakeを使用していたことがわかりました。これはiOS 4.0以降でのみ使用できます。私はCLLocationCoordinate2Makeへの呼び出しを次のように置き換えました:

CLLocationCoordinate2D coord; 
    coord.latitude = lat; 
    coord.longitude = lng; 

問題が解決しました!これはiPad Simulator 3.2で動作します。

1

ベースSDKが4.2に設定されている場合、すべてのベットは以前のバージョンではオフになっています。このようにプロジェクトを設定している場合は、必要最小限のターゲットも4.2に設定することになります。この場合、4.2以前のデバイスにプログラムをインストールできないため、3.2シミュレータに対してテストすることはできません時間と労力に本当に価値があります。下のバージョンのベースSDKにロールバックすると、3.2シミュレータとの互換性はありますが、後のフレームワークバージョンのより高度な機能が失われる可能性があります。

+0

あなたの答えをありがとう。ターゲットを3.2に設定しても、3.2シミュレータではまだ動作しません。そうですか? SDK 4.2の3.2 Simulatorはサポートされていませんか? –

+0

私の推測では、まだ下位互換性があるはずですが、私は正直なところ、試してみることはありませんでした。ただし、3.2 sim、またはターゲティング3.2で4.2で利用可能なAPI機能を使用している場合は、あなたのアプリはa)コンパイルされません。b)警告付きでコンパイルされます(これはおそらく)、またはc)クラッシュします。本当に素晴らしい理由がない限り、通常、フレームワークの最新バージョンをターゲットにするのが最も安全です。 –

+0

もう一度ありがとうございます。私は4.2で利用可能な機能しか実際に使用していません。私が持っている唯一の問題は、MapKitフレームワークであり、これは3.2で利用可能でした。私がそれを削除すると、私は3.2シミュレータでアプリをうまく実行することができます。問題は、3.2、4.2、MapKitをサポートする必要があり、3.2シミュレータがどうにか処理できないということです。 –

関連する問題