405

Xcodeバージョンをアップグレードしましたが、外部静的ライブラリを使用すると、次のメッセージが表示されます。

ld:ファイルはユニバーサル(3スライス)ですが、a(n)が含まれていませんarmv7sスライス:/ file/アーキテクチャの場所armv7sclang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)

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

4

8 に答える 8

418

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

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

または、デバッグ構成の「アクティブなアーキテクチャのみを構築する」のフラグを「はい」に設定することもできます。リリース構成の「BuildActiveArchitectureOnly」を「いいえ」のままにします。これにより、リリースする前に、使用しているサードパーティライブラリをアップグレードする必要があるというリマインダーが表示されます。

于 2012-09-13T09:10:00.540 に答える
191

ターゲットのビルド設定で「アクティブなアーキテクチャのみをビルド」を「はい」に切り替えただけで、問題ありません。

于 2012-09-16T19:55:57.947 に答える
27

プロジェクトの「有効なアーキテクチャ」からarmv7sを削除して、iOS5.1電話のこの問題から解放してみてください

于 2012-09-14T07:32:56.310 に答える
13

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

于 2012-09-13T18:16:12.473 に答える
5

FlurryによるiPhone5のサポート(ARMv7s)昨日の投稿で述べたように、Flurryは、水曜日の発表直後に、新しいiPhone5でARMv7sプロセッサをサポートするバージョンのiOSSDKの開発を開始しました。

作業が完了し、SDKがサイトで利用できるようになったことをお知らせします。

于 2012-09-15T18:52:02.463 に答える
4

メニューの[プロジェクト]->[ビルド設定]->を使用します

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

于 2013-09-27T14:48:45.620 に答える
1

これが誰かに起こった場合に備えて。サードパーティのコードで使用する独自のライブラリを作成しました。配信用にビルドしているときに、誤ってiPhone 4Sをプラグインしたままにしていたため、Xcodeはプロジェクト設定に従うのではなく、プラグインされたアーキテクチャ専用のライブラリをビルドしました。プラグインされたデバイスをすべて削除し、ライブラリを再構築してリンクすると、大丈夫です。

それが役に立てば幸い。

于 2013-10-31T17:55:39.150 に答える
0

私の場合、少し古いサードパーティのライブラリ(XCode 5 / iOS7でiOS6用に開発された)にリンクしていました。したがって、サードパーティのライブラリを更新し、クリーンアンドビルドを実行する必要がありました。これで、正常にビルドされます。

于 2013-06-25T18:19:52.193 に答える