2011-10-18 10 views
5

iOS 5 SDK/XCode 4.2の開発に関する優れた情報を見つけられず、古いデバイス、つまりiPhone 3Gをサポートすることができません。古い/新しいiOSデバイスの断片化のナビゲート

私はiOS開発を開始しましたが、iOS 5 SDKを使用するxCode 4.2をダウンロードしました。私が心配しているのは、互換性をテストするためにiPhone 3Gでバニラの新しいプロジェクトを実行しようとすると困っているということです(つまり、armv6 problem)Appleが新しいハードウェア古いハードウェアをまだ実行しているアプリケーションのユーザーをサポートすることには責任があります。特にアプリケーションをできるだけ多くの手に入れたい場合

例えば、ARCは神のように聞こえますが、4.3より下のバージョンのiOSでは動作しません。 iOS5以前のデバイスにアプリをインストールしようとするまで、ストーリーボードの経験もありました。

すべてのiOSデバイスをサポートしようとしているときのベストプラクティスについての情報源はありますか?これは、ユーザーが新しいiPhoneを手に入れようとしていることを覚悟しなければならないケースですか?それとも、長い尾を追いかけるまで古いSDKで開発するケースですか?この質問はすでに長い尾を追いかけているのですか?

ブラウザ標準の細分化を彷彿とさせます。他の人々の考えを聞くことを楽しみにしています。

+0

これは実際の問題です。最高の、そして最高の意味では、Appleが推奨するものは、古いOSのためのサポートをいつも進めてドロップすることです。あなたは自分のアプリでそれを見ることができます。 iMovieとiWorkはすべてiOS 5のみです。何百万もの古いデバイスをサポートするためのお金があるからこそ、私はこれに同意しない。しかし、これは彼らがそれを楽にしない理由です...彼らは気にしません。この問題を回避する方法はありますが、テストのためにデバイスを手元に置いてアップグレードする必要はありません。小規模の開発者にとっては本当に重荷です。 –

+0

絶対に。古いデバイスのトレンド低下を示唆する情報源について知っていますか? – Chris

答えて

2

ターゲットのサマリー設定で展開ターゲットを下げて、より少ないOSバージョンをサポートできます。警告は、あなたがインストールした最新のSDKにコードがまだコンパイルされていることです。これは、あなたがサポートしたい最も低いOSバージョンの後にリリースされた機能やメソッドを呼び出すことができないことを意味します。あなたはOSの新しいバージョンを実行しているデバイス用の新しいメソッドを使用する予定のない場合は、この方法は、それをサポートするデバイスでのみ実行されますことを確認する

if ([<class> respondsToSelector:@selector(methodName)] { 

} 

でそれらを囲む必要があります。

+1

Appleには、同様のテクニックのドキュメントがあります。http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html –

関連する問題