7

Xcode 4.5 以降、armv6 用にビルドできないため、iPhone 3G などのデバイスをサポートできなくなりました。

たとえば、Xcode 4.3 を使用して適切に署名された armv6 バイナリを生成し、lipo を使用してそのバイナリと Xcode-4.5 で生成された armv7 バイナリをファット バイナリに結合することは可能でしょうか?

これについてどうすればいいですか?誰かが良いチュートリアルを知っていますか?

結果として得られるファット バイナリを App Store に提出することは許可されますか?

4

2 に答える 2

5

lipo を使用してバイナリを変更すると、コード署名が一致しなくなります。そのため、後でバンドルを再設計する必要があります。

Xcode 4.4 以前でビルドされたアプリは、iOS 6 デバイスでも問題なく動作します。また、Apple が iOS 5.1 SDK で作成されたアプリを引き続き受け入れているという報告もあります。

Objective C では、Objective C ランタイムを介して名前で呼び出すことにより、リンクされた古いフレームワークにはない新しい API の一部を使用できます。(もちろん、アプリは最初に現在のデバイスで利用できるかどうかを確認する必要があります!)

アプリ バンドルに高さ 568@2x の既定の画像を含めるだけで、以前の Xcode および iOS-6 以前の SDK から新しい iPhone 5 ディスプレイをサポートし、アプリのすべてのウィンドウとビューのサイズとサイズ変更プロパティを適切に設定することもできます。更新: Apple は、この方法で作成されたアプリを iTunes App Store に提出することを受け付けなくなりました。

追加: 別の潜在的な解決策は、開発を 2 つの同様のアプリに分割することです。1 つは iOS 4.3 以降用です。1 つは iOS 4.2.x 以下用で、iOS 6 と iPhone 5 はサポートされていません。アプリ ストアの 2 つの異なるアプリ。ただし、Apple がこれを許可するかどうかは不明です。

于 2012-09-25T02:49:31.507 に答える
0

他の誰かがそれを行う方法を見つけたようです。このSOの質問を参照してください。

ただし、まだ自分でテストしていません。

于 2012-10-28T21:51:38.927 に答える