1

最近 iPad を iOS 6.0 にアップグレードしましたが、Xcode のインストールをバージョン 4.4.1 と iOS SDK 5.1 のままにしました。これは、クライアント アプリをパッケージ化しようとしており、SDK/iOS バージョンを切り替えるリスクを冒したくないためです。開発が遅い。

これで、この iPad はビルド ターゲット リストに完全な名前で表示されなくなり、「iOS デバイス」とだけ表示されます。iPad にデプロイしようとすると、次のように通知されます。また、オーガナイザーは、iPad 上の iOS のバージョンが Xcode の SDK のどのバージョンとも一致しないことを教えてくれます

これはすべて正しいのですが、5.1 アプリを 6.0 を実行しているデバイスにデプロイできないのでしょうか? 以前に 5.1 を使用して作成したアプリは、このデバイスで引き続き正常に動作しますが、新しいアプリで同じことを行うべきではないのはなぜですか? 私は奇妙な問題を抱えていますか、それとも Xcode でのこれは正常な動作ですか?

ありがとう!

編集: フォローアップの質問: この問題を解決するために Xcode のバージョンをアップグレードした場合、5.1 SDK 用にビルドして、クライアントの 5.1 デバイスでアプリが動作することを完全に確信できますか? それが私の主な関心事です。

4

2 に答える 2

4

古いアプリは引き続きデプロイできますが、Xcode を使用することはできません。代わりに、ipa アーカイブを作成し、iTunes 経由でインストールするか、Testflight やその他の無線 (OTA) ディストリビューションなどのツールを使用してインストールする必要があります。

または、はい、Xcode のバージョンをアップグレードできます。ただし、使用するサードパーティのライブラリが armv7s 用にコンパイルされていない可能性があるため、さらに問題が発生する可能性があります。そのため、それらをアップグレードする必要があります。その場合、リンカーから次のエラーが表示されます。

ld: file is universal (3 slices) but does not contain a(n) armv7s slice

その特定の問題の詳細については、stackoverflow の他の場所を参照してください。

ファイルはユニバーサル (3 つのスライス) ですが、iOS の静的ライブラリの ARMv7-s スライス エラーが含まれていません。とにかくバイパスしますか?

もちろん、これによってシミュレーターでの作業が妨げられることはありません。

ただし、デバイス上で実行すると、全体として、私にとってうまくいく良い解決策は、Xcode 4.5 dmg をダウンロードすることでした。Xcode は App Store から入手できるようになったため、自己完結型のパッケージになりました。同じマシン上で複数のバージョンを問題なく共存させることができるようになりました。

私はそれを行い、4.4 で古いアプリの作業を続けながら、新しい iOS 6 のものに Xcode 4.5 を使用します。

于 2012-10-03T09:17:01.887 に答える
1

まず、Xcode オーガナイザー (右上隅にある小さなアイコン) に移動して、開発用にデバイスを有効にできるかどうかを確認します (デバイスをクリックすると、その詳細が表示されます)。これにより、Xcode が新しい iOS デバイス (デバッグ シンボルなど) を使用できるようにするために必要なものがすべてダウンロードされる可能性があります。

これが機能しない場合、説明している問題は単に開発環境が古すぎて、iOS6 を実行しているデバイスを管理できないことに関連しています。いずれにせよ、これはあなたの 5.1 アプリが iOS6 を実行しているデバイスに展開されることを妨げるものではありません。唯一のことは、古い Xcode から実行できないことです。

他のすべてが失敗した場合は、開発チームの外部のテスターが行うように、iTunes を介して手動で 5.1 アプリをインストールしてみてください。これはうまくいくはずです。

于 2012-10-03T09:06:14.000 に答える