web-dev-qa-db-ja.com

ファイルはユニバーサル(3スライス)ですが、含まれていません a(n) iOS上の静的ライブラリに対するARMv7-sスライスエラー、とにかく回避するには?

Xcode versionをアップグレードし、外部スタティックライブラリを使用すると、このメッセージが表示されます。

ld:fileはユニバーサル(3スライス)ですが、a(n) armv7sスライスを含みません:armv7s clang:error:リンカコマンドは終了コード1で失敗しました(表示するには-vを使用してください)呼び出し)

ライブラリの開発者がまだライブラリを更新していない場合、これを回避してライブラリにサポートを追加する方法はありますか?

403
Dafna Elazazer

たとえば、 ARMv7-s などのアーキテクチャのサポートを削除する場合は、メニュー プロジェクト - > ビルド設定 - >からアーキテクチャを削除「有効なアーキテクチャ」.

ライブラリが更新されるまで、これを一時的な解決策として使用できます。ライブラリからではなく、メインプロジェクトからアーキテクチャを削除する必要があります。

あるいは、デバッグ構成の「Build Active Architecture Only」のフラグをYesに設定することもできます。リリース構成の「Build Active Architecture Only」はNoのままにしておきます。リリースする前に、使用しているサードパーティ製のライブラリをアップグレードする必要があることを忘れないでください。

418
Nicholas

ターゲットのビルド設定で「アクティブアーキテクチャのみをビルド」を「はい」に切り替えただけです。

191
Blasco73

IOS 5.1電話でこの問題から解放するためにプロジェクトの「有効なアーキテクチャ」からarmv7sを削除してみてください

27
Arthur Jen

私は修正を投稿しました ここ この場合にも適用されます - 基本的には、それがARMv7sコードであると思わせるためにあなたの外部ライブラリで16進の検索と置換をします。 lipoを使用して3つの静的ライブラリに分割し、ARMv7のライブラリを複製/修正してから、lipoをもう一度使用して4つすべてのアーキテクチャ用の新しいライブラリをアセンブルすることができます。

13
Ertebolle

IPhone 5(ARMv7s)のFlurryサポート昨日の記事で述べたように、Flurryは水曜日の発表の直後に新しいiPhone 5でARMv7sプロセッサをサポートするためにiOS SDKのバージョンに取り組み始めました。

作業が完了し、SDKがサイトに公開されたことをお知らせいたします。

5
RAZ

メニュープロジェクト - >ビルド設定 - >を使用

それから「有効なアーキテクチャ」からarmv7を削除します。標準が選択されている場合はそれを削除してからarmv7を追加してください。

4
Panky

万が一これが誰かに起こった場合。私は第三者のコードで使用するために私自身のライブラリを作りました。配信するために構築していたときに、誤ってiPhone 4Sをプラグインしたままにしていたため、プロジェクトの設定に従うのではなく、プラグインアーキテクチャ専用にライブラリを構築しました。接続されているデバイスを削除してライブラリを再構築し、リンクしてください。これで問題ありません。

それが役に立てば幸い。

1
Raphael Ayres

私の場合、私は少し古いサードパーティ製のライブラリ(XCode 5/iOS 7上のiOS 6用に開発されたもの)にリンクしていました。そのため、私はサードパーティのライブラリを更新し、Clean and Buildを実行しなければなりませんでした、そしてそれは今正常に構築されます。

0
Jay Imerman