Xcodeバージョンをアップグレードしましたが、外部静的ライブラリを使用すると、次のメッセージが表示されます。
ld:ファイルはユニバーサル(3スライス)ですが、a(n)が含まれていませんarmv7sスライス:/ file/アーキテクチャの場所armv7sclang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)
ライブラリの開発者がまだライブラリを更新していない場合、これをバイパスしてライブラリにサポートを追加する方法はありますか?
Xcodeバージョンをアップグレードしましたが、外部静的ライブラリを使用すると、次のメッセージが表示されます。
ld:ファイルはユニバーサル(3スライス)ですが、a(n)が含まれていませんarmv7sスライス:/ file/アーキテクチャの場所armv7sclang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)
ライブラリの開発者がまだライブラリを更新していない場合、これをバイパスしてライブラリにサポートを追加する方法はありますか?
たとえば、ARMv7-sなどのアーキテクチャのサポートを削除する場合は、メニューの[プロジェクト]- >[ビルド設定] ->[有効なアーキテクチャ]からアーキテクチャを削除します。
ライブラリが更新されるまで、これを一時的な解決策として使用できます。ライブラリからではなく、メインプロジェクトからアーキテクチャを削除する必要があります。
または、デバッグ構成の「アクティブなアーキテクチャのみを構築する」のフラグを「はい」に設定することもできます。リリース構成の「BuildActiveArchitectureOnly」を「いいえ」のままにします。これにより、リリースする前に、使用しているサードパーティライブラリをアップグレードする必要があるというリマインダーが表示されます。
ターゲットのビルド設定で「アクティブなアーキテクチャのみをビルド」を「はい」に切り替えただけで、問題ありません。
プロジェクトの「有効なアーキテクチャ」からarmv7sを削除して、iOS5.1電話のこの問題から解放してみてください
この場合にも適用される修正をここに投稿しました。基本的に、外部ライブラリで16進の検索と置換を実行して、ARMv7sコードであると見なします。lipo
を使用して3つの静的ライブラリに分割し、ARMv7ライブラリを複製/変更してlipo
から、もう一度使用して4つのアーキテクチャすべての新しいライブラリをアセンブルできるはずです。
FlurryによるiPhone5のサポート(ARMv7s)昨日の投稿で述べたように、Flurryは、水曜日の発表直後に、新しいiPhone5でARMv7sプロセッサをサポートするバージョンのiOSSDKの開発を開始しました。
作業が完了し、SDKがサイトで利用できるようになったことをお知らせします。
メニューの[プロジェクト]->[ビルド設定]->を使用します
次に、「有効なアーキテクチャ」からarmv7を削除します。標準が選択されている場合は、それを削除してからarmv7を追加します。
これが誰かに起こった場合に備えて。サードパーティのコードで使用する独自のライブラリを作成しました。配信用にビルドしているときに、誤ってiPhone 4Sをプラグインしたままにしていたため、Xcodeはプロジェクト設定に従うのではなく、プラグインされたアーキテクチャ専用のライブラリをビルドしました。プラグインされたデバイスをすべて削除し、ライブラリを再構築してリンクすると、大丈夫です。
それが役に立てば幸い。
私の場合、少し古いサードパーティのライブラリ(XCode 5 / iOS7でiOS6用に開発された)にリンクしていました。したがって、サードパーティのライブラリを更新し、クリーンアンドビルドを実行する必要がありました。これで、正常にビルドされます。