2013-06-27 14 views
24

これは繰り返し発生する現象です。phonegap v 2.9でのXCode 4.6リリースのアーカイブ構築に失敗しました

解決方法は、armv6、 を削除してからアーカイブが機能するという、いくつかの以前の質問がありました。もちろん、armv6はなくなっています。

現在、両方とも現在のビルドXcode 4.6.3 phonegap 2.9。 はい、アプリはiphone、ipads、およびシミュレータで正常に動作します。

は、私が作成したアーカイブステップの終わりに、このメッセージが表示されます。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -F/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -filelist /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq.LinkFileList -dead_strip -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a -ObjC -fobjc-link-runtime -miphoneos-version-min=5.0 -framework CoreLocation -framework ImageIO -framework OpenAL -framework AssetsLibrary /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a -framework Foundation -weak_framework UIKit -framework CoreGraphics -framework AddressBook -framework AddressBookUI -framework AudioToolbox -weak_framework AVFoundation -framework CFNetwork -framework MediaPlayer -framework QuartzCore -framework SystemConfiguration -framework MobileCoreServices -weak_framework CoreMedia -framework CoreLocation -o /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq 

ld: file not found: /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

と渡り、そこにファイルシステムを見回し:

cd /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build 
./Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a 
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a 
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a 
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/UninstalledProducts/libCordova.a 

とその構築されて、ちょうど入れませんリンカーはそれを見つけたいと思っていました。

したがって、ビルド設定の中には、リンカーに表示するように指示するものもありますが、 は、リンカーが見つけたい場所にビルドするようにビルドに指示します。

それ以外のものはありません。

私の質問は、 を正しくビルドするためにアプリアーカイブを取得する方法です。そのため、店舗に行くことができます。

おかげで、 ジョン


は、Appleで働く細かい人はどこを見れするには、その時点で、これは解決した私に言いました。

ビルド設定内ディープ、設定するフィールドがあり、それが値を示さないから始まり、しかし、あなたはそれをクリックした場合、それはデバッグとリリースでポップアップするその他のリンカフラグ

と呼ばれます。

リリースである非常に長い文字列では、-force_load libCordova.a
が見つかり、その文字列の一部が削除されます。

から:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load ${TARGET_BUILD_DIR}/libCordova.a -ObjC 

へ:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -ObjC 

そのPhoneGapのデフォルトはこの場所では、私は また、それらに連絡し、それを修復をデフォルトにできるかどうかを確認しなければならないことを、いくつかの方法で、おそらくバグ。

それで私を指摘彼のノート:

を私はあなたのリンクのコマンドはこの両方が含まれていることに気づく:

-force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a 

と、この:-force_loadに渡される

/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a 

パスは、リンカーが不平を言っている偽のパスです。私は "-force_load"リンカフラグを削除する必要があると思います。 "Other Linker Flags"の設定でこのようなフラグが設定されていますか?

+0

私は同じ問題を抱えていましたが、少なくとも私のプロジェクトではそれを解決しました。ここで私の答えをチェックしてください:http://stackoverflow.com/a/17455264/2183674 –

+0

私はXCode 5.1.1とPhoneGap 3.1で同じことをしました。私のコメントの下にある修正は私たちのために働いたものです。 – ganders

答えて

79

修正が見つかりました。あなたのターゲットのビルド設定で

  1. Other Linker Flags
  2. 変更$(TARGET_BUILD_DIR)/libCordova.a
  3. にです
+4

すばやく簡単。ありがとう。 – pasine

+0

ありがとう、問題を解決! (libCordova.aの問題の古い記述を実行し続ける...) – Koniak

+4

ありがとうございます!なぜコードワはいつもこれらの問題を抱えています..毎xcodeのリリースとeveyのphonegapはただの頭痛を放つ!!ありがとうございました!! – Francesco

4

$(BUILT_PRODUCTS_DIR)/libCordova.aを見つけるにはしないで、私は "$(BUILT_PRODUCTS_DIR)/libCordova.a" に変更するための作品"その他のリンカフラグ"。まだ問題は残っています。 (Xcode 4.6.3 phonegap 2.9.0)

私は以下の設定を試してみてください。あなたのターゲットのビルド設定で

  1. 、 "他のリンカフラグ"
  2. 削除 "$(TARGET_BUILD_DIR)/libCordova.a"
  3. 変更 "-force_load" "-all_load"
のを見つけます

これは私のためのトリックでした。上記のトリックで

========更新============

、私はアプリを達成していない問題でApp Storeに提出することができます。 しかし、iTune Connectで「無効なバイナリ」と表示されていました。

+0

+1が私のために働いた! –

+0

ありがとう、これは私のために働いた:) –

+0

恐ろしい!!!!!!!!! – ganders