9

amrv6 と armv7 の両方をサポートする公開アプリケーションがあります。現在、armv7 にのみ準拠するアップグレードがあります (armv7 に依存する外部ライブラリを追加しました)。アプリをストアに送信しようとすると、エラーの詳細が表示されます

以前のエラーを理解しました。両方のアーキテクチャをサポートするようにアプリを変更する必要があります。私の問題は、コードが armv7 のみに準拠するライブラリに依存していることです。プロジェクトのプロパティを変更して armv6 と armv7 の両方をサポートすると、コンパイル エラーが発生します (詳細は後述)。両方のアーキテクチャをサポートするコードをコンパイルできる必要があります。armv7 は、依存するライブラリを使用してコンパイルします。armv6 は、ライブラリに依存しない別のコードを持っています。

どうすればこれを達成できますか?

エラーの詳細:

• the compile crash is in one Lib file (.a) and the error says : ld: warning: directory not found for option '-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc/arm-apple-darwin10/4.0.1' ld: in /Users/.../(lib file).a, file is universal but does not contain a(n) armv6 slice for architecture armv6 Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

前もって感謝します

4

6 に答える 6

4

さて、最後の答えが正しいものではないことに気づきました... Appleはそれは不可能だと言いましたが、これは実際には真実ではありません...ジムのおかげで、もう少し検索して、それを行う1つの方法を見つけました..

  1. 「ビルドフェーズ」から lib を削除
  2. "Other Linker Flags" (Build Settings)に両方のアーキテクチャを追加します。そのためには、クリックし+て armv6 と armv7 を追加する必要があります。
  3. libをarmv7..に追加します-l
  4. #if defined _ARM_ARCH_7コードで忘れないでください

これはジムが答えたようなものですが、より詳細です。

于 2012-03-15T10:18:46.973 に答える
2

私はAppleからこの答えを受け取りました:

armv6またはarmv7のいずれか用にアプリを条件付きでビルドすることはできません。アプリケーションはこれらのアーキテクチャの両方をサポートしているため、静的ライブラリはarmv6とarmv7の両方に対してビルドする必要があります... iOSデプロイメントターゲットを4.3以降に設定することで、armv6のサポートを終了できます。

基本的に、ライブラリの開発者に両方のアーキテクチャ用にビルドするように依頼する必要があります(= /)。または、最小ターゲットを4.3に設定し、armv7のみを設定します。

于 2012-03-09T11:26:55.940 に答える
1

ビルド設定で、設定にカーソルを合わせると、+をクリックして特定のアーキテクチャに設定をスコープできるようになります。ライブラリの通常のリストからライブラリを削除し、-Larmv7に対してのみ手動で引数を渡して追加する必要があります。#ifdefライブラリを呼び出すコードの周りにsを配置できるように、おそらくプリプロセッサ定義も追加する必要があります。

編集:それについて考えると、ビルドフェーズセクションでライブラリをオプションとしてマークすることで、より簡単な方法でそれを行うことができるかもしれません。

于 2012-03-07T15:32:16.363 に答える
0

すみません、クリップボードから間違ったものを貼り付けました。

私は言うつもりだった:

Target Aguilar Settingsの有効なアーキテクチャから不良アーキテクチャを削除するだけで、準備は完了です:)

于 2012-09-13T02:29:15.410 に答える
0

私は同じ問題を抱えていたので、「Build Activate Architecture Only」を「はい」に切り替えました(ターゲット - >ビルド設定で)

これはうまくいきます...今のところ。

私のアプリは iPhone 5 では動作しないと思いますが、使用している静的ライブラリのサプライヤーが armv7/armv7s 用にビルドするまで待つ必要があります

于 2012-09-17T12:42:06.997 に答える
0

Google アナリティクス iOS SDK でこの問題が発生しました。ライブラリを最新バージョンに置き換えるだけで、この問題は解決しました。

于 2012-12-26T17:09:40.613 に答える