iOS PhoneGap的构build失败
我是PhoneGap
for iOS和Xcode的新手。 我遇到了一个问题,我的应用程序在Android手机上工作得很好。 我能够在iOS模拟器中构build和运行应用程序,但是当我将其存档以在设备上进行testing时,我会看到下面的错误。 我搜遍了,找不到有效的东西。
错误:
ld: warning: ignoring file /Users/danlehman/Library/Developer/Xcode/DerivedData/HelloWorld-ebkivbdaivqchkgycifnnpgixspn/Build/Intermediates/ArchiveIntermediates/HelloWorld/BuildProductsPath/Release-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (armv7s): /Users/danlehman/Library/Developer/Xcode/DerivedData/HelloWorld-ebkivbdaivqchkgycifnnpgixspn/Build/Intermediates/ArchiveIntermediates/HelloWorld/BuildProductsPath/Release-iphoneos/libCordova.a Undefined symbols for architecture armv7s: "_OBJC_METACLASS_$_CDVViewController", referenced from: _OBJC_METACLASS_$_MainViewController in MainViewController.o "_OBJC_CLASS_$_CDVViewController", referenced from: _OBJC_CLASS_$_MainViewController in MainViewController.o "_OBJC_CLASS_$_CDVURLProtocol", referenced from: objc-class-ref in AppDelegate.o ld: symbol(s) not found for architecture armv7s clang: error: linker command failed with exit code 1 (use -v to see invocation)
在iPhone 4S上, Cordova 2.7 ,Xcode 5和iOS7出现类似的错误。 我改变了一个设置,它正确地build立。
select你的应用。 转到构build设置,然后有效的体系结构 。 改成:
armv7
我以前的设置是:
arm64 armv7 armv7s
清理和build立。 这似乎与armv7s有关。 使其运行的一个副作用是状态栏是透明的,并浮动在应用程序的顶部。 这是另一个话题,并与iOS7有关。
我为此苦苦挣扎,阅读了无数“解决scheme”,这些解决scheme似乎适用于某些人,但不适合我。 考虑到这一点, 这可能不适合你。 🙂
1)克隆cordova-ios回购
git clone git@github.com:apache / cordova-ios.git
2)看看可用的分支
git分支-a
你可能会看到类似于:
- 主遥控器/原产地/遥控器/原产地/遥控器/原产地/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器遥控器/原产地/遥控器/原产地/遥控器/原产地/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/遥控器/设备遥控器/起源/主遥控器/起源/ multipart_plugin_result遥控器/起源/下一个遥控器/起源/ phonegap-js
3)我build立了我的应用程序与cordova2.9所以检查2.9.x分支 – 调整您的项目
git checkout -b 2.9.x origin / 2.9.x
4)确认你在所需的分支
git分支
你应该看到像这样的东西:
- 2.9.x主
5)进入bin /
cd bin /
6)现在重新创buildcordova应用程序:
./create〜/ some / project / dir / project com.project项目
7)将您的www文件夹从失败的版本复制到新项目。
8)从Xcode获取成功的构build消息。
9)给手指Xcode。
希望这可以帮助!
这是Phonegap中的错误。 您需要在项目中build立设置,search“其他链接器标志”,然后更改:
更改“$(TARGET_BUILD_DIR)/libCordova.a”
至
“$(BUILT_PRODUCTS_DIR)/libCordova.a”