1

これは興味のない質問ですので、できるだけ有益な回答をしてください。

最近Xcodeを4.5に更新し、iOSSDK5.1にアクセスできなくなりました。いくつかのSO投稿で説明されている方法を使用して(以前のXcodeインストーラーのイメージを使用)、iOSSDK5.1を再度追加しました。

私のアプリでサポートしたい環境は、iPhone 3GS、iPhone 4、iPhone 4S、iPhone5です。明らかにiOSSDK5.1と6.0を使用しています。これらの要件に対して推奨されるビルド設定は何ですか?

今、私は5.1、6.0、armv7とarmv7sのアーキテクチャを設定しDeployment Targetました。Base SDKこれは正しいです?

さて、iOS SDK 5.1はarmv7s(iPhone 5アーキテクチャ)用にコンパイルされていないと思います。iOS6.0用にコンパイルされたコードが5未満のiPhoneでも機能することを確認するにはどうすればよいですか?ld: file is universal (4 slices) but does not contain a(n) armv7s slice現在、チェックしていないときにiOS5.1SDKを指すリンカーエラーが発生していますBuild For Active Architectures Only。App Storeにリリースするときに、アプリがiOSSDK5.1で引き続き実行されることを確認するにはどうすればよいですか。これは、iOS5.1と組み合わせたarmv7s用にコンパイルされているようです-これは機能しません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

を5.1に設定するのは正しいですがDeployment Target、ARMv7およびARMv7sのアーキテクチャをそのままにしておくことができます。

5.1 SDKを指すのではなく、iOS6SDKを使用するだけです。iOS6SDKのみのメソッドまたはクラスを直接呼び出さないように注意してください。

ここで重要なのはデプロイターゲットです。これにより、このアプリを実行するために必要なiOSの最小バージョンが定義されます。したがって、5.1に設定すると、アプリは5.1以降で実行されます。

于 2012-10-18T09:05:03.477 に答える
0

SDK 5.1 をダウンロードする必要はまったくありませんでした。SDK 6.0 には、SDK 5.1 に含まれるすべてのライブラリとヘッダーに加えて、iOS6 の追加のライブラリとヘッダーが含まれています。

SDK のバージョン、アプリと互換性のある iOS のバージョン、およびアプリを構築するアーキテクチャの違いを理解しておいてください。

SDK 6.0でコンパイルしても、アプリが iOS6 でのみ動作するわけではありません。IOS_DEPLOYMENT_TARGETこれは、設定したバージョンから SDK に対応するバージョン (つまり 6.0) まで、iOS でアプリを実行できることを意味します。

したがって、アプリに iOS 5.1 以降との互換性を持たせたい場合でも、Base SDK 6.0 を使用してコンパイルし、SDK 5.1 はまったく必要ありDeployment TargetませんBase SDK。あなたの質問)、そのための SDK 5.1 が必要な場所はどこにもありません。これは、とにかく iOS6、iPhone5、および armv7s のコンパイルには役に立ちません (必要なヘッダー、ライブラリ、およびアーキテクチャが含まれていないため、SDK 6.0 がリリースされ、必要です)。

Xcode の最新バージョンで 5.1 (個別にダウンロードした) のような古い SDK を使用すると、おそらく問題が発生し、さらに重要なことに、SDK のバージョンよりも新しいバージョンの iOS 用にアプリをコンパイルできなくなります (この場合は 5.1)。 . したがって、iOS 5.1 以降でアプリに互換性を持たせたい場合でも、SDK 6.0 を使用してください。


使用する SDK のバージョン (ベース SDK)、展開ターゲット、およびアプリでサポートされている iOS のバージョンとアーキテクチャの違いの詳細については、Apple ドキュメントSDK 互換性ガイドを参照してください。

于 2012-10-18T09:08:36.553 に答える