6

ios6.1-sdk でコンパイルされたアプリは、ios 6.1 iphone 4、4s、および 5 デバイスで正常に動作しています。アプリを ios7 iphone 5s で実行すると、ユーザー インターフェイスは ios 6 のように見えますが (黒いボタンなど)、バグが見つかったことを除いて、ほとんど問題ありません。これは、ios7 での API 実装の変更によるものだと推測しています。

私たちのアプリが xcode 5 で ios7-sdk に対してコンパイルされると、すべてがバラバラになります。UI オブジェクトがずれている、ラベルが読み取れないなど。したがって、ios6.1 sdk に対してコードをコンパイルし、ios 7 で実行したいと考えています。

Xcode 5 では、この投稿で説明されているように Xcode 4.6.3 dmg からコピーしてios 6.1 sdk をインストールし、ビルド設定でベース SDK を ios 6.1 に更新しましたが、ios 7 シミュレーターでアプリを実行すると、ユーザー インターフェイスは機能しません。 iOS 6.1 にフォールバックします。ただし、iOS 7 を実行している物理的な iPhone に対してアプリをテストすると、iOS 6.1 にフォールバックします。

ios6-sdk でコンパイルされたアプリを実行しているときに ios 7 シミュレーターがユーザー インターフェイスをフォールバックして、シミュレーターでバグを再現できるようにするにはどうすればよいですか?

4

4 に答える 4

4

あなたの問題を正しく理解していれば... アプリで同じ問題に遭遇しており、Xcode 5 で構築され、iOS7 で実行される iOS6.1 インターフェイスを維持する必要がありました。インターフェイスも台無しで、位置がずれていて、ツールバーにボタンがありませんでした。後で 7 用に修正しますが、今は時間がありませんが、iOS7 で実行し、Xcode 5 でビルドする必要があります。

だからここに私がやったことがあります:(スクリーンショットを投稿したいのですが、Macが手元にないので、必要に応じて後で取得します)

  • Xcode 5 とともに Xcode 4.6.3 をインストールしたままにしました。
  • 6.1 SDK からのシンボリック リンクを Xcode 5 インストールに追加しました。(SOの質問が見つかりました。リンクが見つかります)または、あなたがしたようにインストールできます。

(これらの次の 2 つのオプションは必要ないかもしれませんが、テストでそれらを使用することになり、新しい 5S 64 ビット電話でも動作します)

  • [ビルド設定] で、標準の非 64 ビット armv7 オプションを使用するビルド アーキテクチャを選択しました。「64 ビットを含む」選択を選択しないでください。

  • 同じ場所で、アクティブなアーキテクチャのみをビルドしてはい

それで...

  • また、ビルド設定で、Base SDK を iOS 6.1 に設定します。(私はこれがそれを機能させるための鍵だったと信じています)

  • アプリ ターゲットの [全般] タブで、展開ターゲットを 6.1 に設定します (現時点ではまだ 5.1 です)。

  • ストーリーボードで File Inspector を選択し、選択した Interface builder セクションで、Xcode 4.6 で開き、iOS 5.1 以降のビルドを iOS 6.1 以前として表示します。(私の自動レイアウトはチェックされていません。使用していません)

「opens in」の最後のオプションに関する警告。「Xcode 4.6 で開く」を選択すると、iOS7 のストーリーボード編集が失われます。私の場合、とにかく 4.6 ビューのままにしたいので、今は気にしません。それを覚えておいてください。元に戻すことができると思いますが、テストしていません。

6.1 SDK をリンク/インストールすると、アプリで実行するときに、シミュレーターで使用する目的の iOS バージョンを選択できるはずです。上部のツールバーの [アクティブなスキーマ] ドロップダウンに表示されます。私の場合、たとえば、iPhone Retina (4 インチ) を選択し、その下に iOS7 または 6.1 のオプションがあります。私にとって興味深いのは、上記の設定により、シミュレーターでアプリを実行できることです。シミュレーターのアクティブなスキーマとして iOS7 を選択しても、iOS6 のように見えます。私のセットアップでは、iOS7の選択のみを表示する64ビットシミュレーターでも機能しました。

少なくともこの方法で、Xcode 5 でビルドして作業し、iOS7 ユーザー向けにアドホックにアプリを配布できますが、iOS6 のスタイル、配置、およびボタンはそのまま維持できます。iOS7 スタイルへの移行により多くの時間を費やすことができるようになりましたが、iOS6.1 のようにバグを修正し、アプリを更新することができます。

それが理にかなっていることを願っており、あなたの質問に答えてくれることを願っています. そして、私がしたことすべてを覚えていることを願っています!また何か思いついたら追記します。

于 2013-09-25T08:21:21.957 に答える
0

シミュレーターで「コンテンツと設定のリセット」を試し、ビルドおよび実行時に XCode のスキームに適したシミュレーターと SDK を使用していることを確認してください。説明したように iOS 6.1 SDK をインストールすると、ターゲット スキームで使用可能なシミュレーターのリストに一見重複しているように見えるものが表示されます。 7.0 SDK」ですが、常にそうであるとは限りません)。展開ターゲットも6.1以前に設定され、ベースSDKが6.1に設定されていることを確認してください(説明どおり)

于 2013-09-24T17:43:51.960 に答える