2010-12-30 12 views
2

私はiOS開発に没頭しています.iOSバージョン3.2から4.2をサポートするシンプルなアプリケーションを構築しています。私は4.2シミュレータ上のXcodeの最新バージョンでそれをかなりうまくテストしましたが、iOS 3.2デバイス上で動作するようシミュレートしたいと思います。このチュートリアルを読んだ後、古い3.2 SDKと一緒に古いバージョンのxcodeをダウンロードしてインストールすることができましたが、古いバージョンのXcodeでプロジェクトをビルドすると、すべてのiOS 4.2旧バージョンのXcodeがサポートしていない機能私はすべての4.2フレームワークを弱くリンクしていますが、まだエラーが発生しています。 4.2版のアプリケーションをこの古いバージョンのXcodeで正常にビルドし、3.2のiPhoneシミュレータで動作させるにはどうすればよいですか?iOS開発:iPhone 3.2シミュレータでiPhone 4.2アプリケーションを実行するにはどうすればよいですか?

あなたの知恵に感謝します。

答えて

1

。そうすれば3.2コンパイラはあなたのアプリケーションを、あたかもそれらの行が存在しないかのように構築します。

これらのステートメントは、3.2でビルトイン4.2ビルドを実行するときに無効になるコードのビットを正確に反映するように、非常に注意する必要があります。そうでなければ、多くの点はありません。

これは、4.2機能が含まれていないため、実際に弱いリンクなどが正しいかどうかをテストしていないため、フォールバック3.2コードの動作をテストしているだけです。

3.2には存在しなかったことを知らなかった機能や方法について、たぶん警告が表示されます。これらに適切なフォールバックコードが追加されていることを確認してください。

(ところで、Appleが3.2のベースSDKとiPhoneのアプリを拒否することが知られている。あなたは4.0の前に戻った場合、少なくとも3.1.3をサポートする必要がある)

+0

うわー、本当に?私は手動でコードの構造をシミュレートする必要がありますか?それは恐ろしいです、私はそれをばかげていません。とにかく、ありがとう! – BeachRunnerFred

1

基本SDKを3.0などに設定するオプションを選択しましたか?そうすることで、古いOS上のiOS 4.2で使用可能な新しいAPIを実行することができます。あなたが唯一の4.2に存在する機能を参照するすべての行を中心に#ifdef __IPHONE_4_2 ... #endifを追加する必要が

乾杯

+0

ありがとう、Aditya。私はどこにでも "3.0または他の"設定が表示されません。 「3.0」は私が持っているクローゼットの設定です。 – BeachRunnerFred

+0

「プロジェクトの設定」 - >「ビルド」 - >「ベースSDK」セクションで確認できます。 – Aditya

0

私が行うには正しい方法を考えます 1.バージョン4.2用に開発している場合、Xcodeバージョン4.2がインストールされている必要があります。 2.デバイスを4.0および3.2 OSにビルドするときは、ベースSDKを4.2に、展開先デバイスをサポートする最小バージョン(3.2など)に設定します。これにより、あなたのコードは下位バージョンと互換性があり、アプリケーションは下位バージョンにロードされます。また、下のバージョンで新しいAPIをサポートするための

あなたは、リンクに従うことがあります。 http://www.marco.org/1648550153

を私はあなたがいない時に(最新のXcodeで両方の3.2および4.xシミュレータを実行することができ、これはあなたに

+1

ありがとう、Snehal、tho私はあなたが私の質問を理解したとは思わない。私は、OSの複数のバージョンをサポートするようにxcodeプロジェクトを設定する方法を理解しています。その部分は非常に簡単です。私が立ち往生しているところでは、実際に私のアプリが古いバージョンのシミュレータを実行するようになっています。私が理解しているように、3.2シミュレータがある古いバージョンのXcodeをダウンロードする必要がありましたが、3.2シミュレータで実行できるようにコードをビルドしようとすると、コンパイルエラーが発生します。 3.2 SDKは4.2のコードを理解していません。それが私の問題です。それが私の現在のところです。 – BeachRunnerFred

+0

コンパイラは次のようなエラーを出しますか?このmenthodはOSバージョン4.0ではサポートされていません。あなたは上記のリンクに従っていますか? – Snehal

0

を役に立てば幸い同じ時間、もちろん!)。 "Base SDK"を4.2、 "iOS Deployment Target"を3.2に設定する必要があります。プロジェクトウィンドウの左上隅にある「概要」ポップアップメニューから3.2シミュレータ(またはそれ以降)を選択できます。また、 "Hardware-> Version"メニュー項目を使用して、iOS Simulatorアプリ自体でシミュレータのバージョンを選択することもできます。

1

iOSシミュレータ内のiPhone 3.2バージョンで実際に実行している2番目の問題:私はこれに苦労しました.Xcode 4.0.2、デプロイメントターゲットをiOS 3.2に設定し、プロジェクトをiPhoneのみですが、バージョン3でiOSシミュレータを実行しようとしたときに発生します。2、シミュレータは、バージョン番号を選択するまでiPhoneシミュレータとして実行していたとしても、iPadシミュレータに変わります。

これは私をしばらくイライラしました。しかし、私はこれを読んで、それが意味を成していた。

http://en.wikipedia.org/wiki/IOS_version_history

iPhone 3.2を実行したことはありません。 iPad専用のリリースだった。したがって、iOSシミュレータの[ハードウェア]> [バージョン]メニューで3.2(7W367A)が表示されていても、その設定は[ハードウェア]> [デバイス]> [iPad]シミュレータは私をiPadシミュレータに切り替えるときにこのルールを強制しています。それは完全に意味をなさない。

3.x世代のiPhoneで動作しているかのように私のアプリケーションを動作させるには、3.1.3シミュレータが必要です。これは私のXcode 4ビルドでは利用できませんので、古いXcodeビルドを自分のマシンに置くのが足りないので、これについては何もできません。

関連する問題