2012-10-03 15 views
7

Xcodeを4.5にアップデートしたばかりで、iOS6携帯電話で手に入ることができました。シミュレータのテスト(4.3/5.1/6.0)を行っていましたが、実際のiOS 6電話機をビルドすることに決めたとき、このエラーが出ました。Xcode iOS6コンパイルエラー:アーキテクチャなし

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv6 armv7 i386). 

私はいくつかの検索を行なったし、armv7sが含まれるように、有効なアーキテクチャを変更するには、ビルドの設定に行くことによって、それを固定し、それが行うことに仮定したものでした。それはiOSの6をサポートしていないので、静的ライブラリのフレームワークはすべての問題を引き起こしていると私はあまりにも楽観的ではないよ私には感じているいくつかは、見た後、私はこのエラーに

ld: file is universal (3 slices) but does not contain a(n) armv7s slice: some static library framework for architecture armv7s 

を得たことを追加することにより、もつとも

それは簡単に固定することができます。しかし、私はネット上で私の正確な状況を細かくすることができなかったので、私よりもよく知っていて、助けてくれる人がいることを願っています。おかげ

注:静的ライブラリを構築するためには、それはかなりオプション

答えて

2

のXcode 4.5はもうARMv6以降をサポートしていませんので、あなたは、このアーキテクチャを削除する必要があります。すでに判明したよう

、使用するライブラリが今不可欠であるのARMv7をサポートしていないようです。

正しいターゲットでライブラリをコンパイルする方法はありません。ソースコードをお持ちの場合、これは簡単なことです。それがサードパーティーの場合は、更新することに依存します。しかし、彼らはライブラリを更新することなく、人生の終わりに達していることを知っているでしょう。

+0

それはちょうどその静的ライブラリのように更新する必要があり、私はクリスの提案を試みたが、それは動作しませんでした。 – user1289479

5

ではありません削除、コードの至る所にあることを、すべての静的ライブラリのアプリケーションのアーキテクチャのすべてのコードを生成しなければならないに対するアプリケーションのリンク。それは、Xcodeの4.5のように見える

はarmv7sコードをビルドするには、プロジェクトを更新したが、それは、アプリケーションのアクティブなアーキテクチャにarmv7sを追加することを怠っ。あなたはそれを固定したら、問題は、静的ライブラリはarmv7sコード生成されていないということですが、アプリケーションがarmv7sのために構築しようとしているよう

は、それが見えます。

これが問題なら、これを解決するには2つの方法があります。どちらかあなたがに、アプリケーションのターゲット設定を変更する必要がありますそのため、あなたのアプリケーションのみ、のARMv7コード(armv7sコードの必要性を取り除く)を生成します:

enter image description here

...または、あなたのアプリケーションが欲しいですとリンクされているすべての静的ライブラリはこのようにビルド設定を持っている:

enter image description here

のARMv7コードが上向き3GSから何か上で実行されます。 armv7sコードはiPhone 5でのみ動作し、やや速くなります。

あなたがテストするためにiPhone 5へのアクセス権を持っている、とあなたは、静的ライブラリのソースコードを持っているのであれば、次に2番目のオプションはおそらく最高です。さもなければ、あなたのライブラリが少なくともarmv7コードを生成していると仮定すると、あなたのアプリケーションがarmv7を構築しようとしていない限り、あなたはうまくいくはずです。

ライブラリがxcode 4.5でサポートされていないarmv6コードのみをビルドしている場合、少なくともarmv7コードを生成するようにビルド設定を変更する必要があります。

+0

まあ、それは再び私にノーアーキテクチャエラーをあげるので、私は本当にarmv7sアーキテクチャを削除することはできませんが、どのように私は静的ライブラリに追加しますか? – user1289479

+0

申し訳ありませんが、より明確になっているはずです。編集します。 –

0

armv7sを取り外しおよびARMv7を追加(および/またはARMv6の)

+0

有効なアーキテクチャ:(前)armv6 armv7 i386 (後)armv6 armv7 i386 armv7s アーキテクチャなしのコンパイルエラーを取り除くために追加しなければならなかった – user1289479

+0

Base SDKをiOS 5に変更してそのように実行できますか?私の頭の上から覚えていない。 – Vinnie

10

「アクティブなアーキテクチャのみを構築する」の変更を試みることができます。はい - >いいえ。私のためにうまくいく。

1

私にも同様の問題があります。ターゲットプロジェクトのビルド設定で[アクティブなアーキテクチャのみをビルドする]を[いいえ]に変更して解決しました。

enter image description here

関連する問題