对于iOS和Xcode,我是PhoneGap
的新手。我在Android手机上运行的应用程序出现问题就好了。我能够在iOS模拟器中构建和运行应用程序但是当我将其存档以在设备上进行测试时,我得到以下错误。我一直在搜索,找不到有用的东西。
错误:
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)
答案 0 :(得分:12)
我在iPhone 4S上的 Cordova 2.7 ,Xcode 5和iOS7构建时遇到了类似的错误。我更改了一个设置,并且构建正确。
选择您的应用。 转到构建设置,然后有效体系结构。 改为:
armv7
我以前的设置是:
arm64 armv7 armv7s
清洁和建造。它似乎与 armv7s 有关。让它运行的一个副作用是状态栏是透明的并浮动在应用程序的顶部。这是另一个话题,与iOS7有关。
答案 1 :(得分:1)
我在努力解决这个问题,并阅读了无数的“解决方案”,这些解决方案似乎对某些人有用,但不是我。考虑到这一点,这可能不适合你。 :)
1)克隆cordova-ios repo
git clone git@github.com:apache / cordova-ios.git
2)查看可用的分支
git branch -a
你可能会看到类似的东西:
3)我使用Cordova 2.9构建了我的应用程序,因此请查看2.9.x分支 - 调整您的项目
git checkout -b 2.9.x origin / 2.9.x
4)确认您在所需的分支上
git branch
您应该看到类似的内容:
5)进入bin /
cd bin /
6)现在重新创建cordova app:
./ create~ / some / project / dir / project com.project project
7)将www文件夹从失败的构建复制到新项目。
8)从Xcode获取成功的构建消息。
9)给Xcode一个手指。
希望这有帮助!
答案 2 :(得分:1)
这是Phonegap中的错误。您需要在项目中构建设置,搜索“Other Linker Flags”,然后更改:
更改“$(TARGET_BUILD_DIR)/libCordova.a”
到
“$(BUILT_PRODUCTS_DIR)/libCordova.a”