昨日(14年3月10日)iOS 7.1がリリースされたとき、Xcode 5.1にアップグレードしたところ、PhoneGap/CordovaプロジェクトがiPhone 5sにコンパイルされなくなることがわかりました。また、Cordovaを最新リリースのv 3.4.0-0.1.3にアップグレードしました。
SOで、アクティブアーキテクチャの変更とアクティブアーキテクチャのみの構築に関連するさまざまなソリューションを読んだことがありますが、いずれも機能しません。エラーが発生しました:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
そこで、私は次のことを試しました。私のプロジェクトでCordovaLibサブプロジェクトを選択し、プロジェクトとターゲットの両方で、Build Settingsの下のArchitecturesおよびarm64
は、デバッグアーキテクチャまたはリリースアーキテクチャのいずれにも含まれていませんでした。この時点でBuild Active Architecture Onlyは「Yes」に設定されます。その結果、次のエラーが発生しました。
file was built for archive which is not the architecture being linked (armv7):
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7
Build Active Architecture Onlyを「No」に設定すると、エラーは再び次のようになります。
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
他に何を試すべきか分かりません。プロジェクトのアーキテクチャ設定には、iOS 7.1に設定されたキー「Base SDK」のみが含まれます。プロジェクトのターゲットにはアーキテクチャ設定がありません。とにかく、問題は埋め込みCordovaLibサブプロジェクトにあると確信しています。このことをデバイスに正常にコンパイルするにはどうすればよいですか?
更新:ApacheのJiraで同じ問題: https://issues.Apache.org/jira/browse/CB-622
@Shazronは修正をApache JIRAに投稿しました-彼は修正がCordova 3.5の一部としてリリースされることに注意します:
この問題に関するShazronの完全な記事へのリンクを次に示します。 http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/
現在リリースされており、何をすべきかの短いバージョンは次のとおりです。
Cordova CLI 3.4.1-0.1.0がリリースされました。これには、このブログ投稿で言及されているすべての修正が組み込まれたCordova iOS 3.4.1が含まれています。 Cordova CLIを更新し、既存のプロジェクトがある場合は、「cordova platform update ios」を実行します。
動作する別のアプローチ:
Xcode 5.1から5.0.2へのダウングレードは機能しましたが、修正が加えられたCordova 3.5の公式リリースを待つことができませんでした。
以前のバージョンのコピーはこちらから入手できます。 https://developer.Apple.com/downloads/index.action
彼らは新しいバージョンをリリースしたばかりです .4.1 この問題に対処します。
したがって、TAG 3.4.1を指すように単一のファイルを更新します。
/usr/local/lib/node_modules/cordova/platforms.js
24行目:
version: '3.4.0'
に:
version: '3.4.1'
次に、プロジェクトのiOSフォルダーを削除して実行します。
cordova platform add ios
これにより、3.4.1ベースの新しいテンプレートとすべてのパッチがダウンロードされます。
このビデオの指示に従ってください: https://www.youtube.com/watch?v=EIkJAKcz8DE
プロジェクトに有効なアーキテクチャにarm64を追加し、Cordovaのプロジェクトのすべての条件付きアーキテクチャを削除するだけです。
最初にCordovaLibプロジェクトをXCode内とは別にビルドしてからプロジェクトをビルドすることで、XCode 5.1でアプリをビルドすることができました。
すべてのステートメントとビルド設定、つまり現在のプロジェクトとCordovaプロジェクトにarm64アーキテクチャを追加するだけです。
プロジェクトで:
コルドバで:
そして最も重要な
-Cordovaビルド設定での有効なアーキテクチャ
この構成は多くの警告を生成しますが、警告が示すすべての行で"%d"を"%ld"に変更するだけです。
Xcodeアイコンをつかんでビンにドラッグしてください!
ここに移動します https://developer.Apple.com/downloads/index.action?name=Xcode そして5.0.2をダウンロードしてインストールします。
インストール後、xcodeを実行し、ターミナルからエミュレーターを試します。
迷惑ですが、私のために働いた!