iOS PhoneGap构建失败

mav*_*r15 6 xcode ios cordova

我是PhoneGapiOS和Xcode的新手.我在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)
Run Code Online (Sandbox Code Playgroud)

sky*_*ook 12

我在iPhone 4S上的Cordova 2.7,Xcode 5和iOS7构建时遇到了类似的错误.我改变了一个设置,它构建正确.

选择你的应用.转到Build Settings然后Valid Architectures.改成:

armv7
Run Code Online (Sandbox Code Playgroud)

我之前的设定是:

arm64 armv7 armv7s
Run Code Online (Sandbox Code Playgroud)

清洁和建造.它似乎与armv7有关.让它运行的一个副作用是状态栏是透明的并浮动在应用程序的顶部.这是另一个话题,与iOS7有关.


小智 1

我为此苦苦挣扎,并阅读了无数的“解决方案”,这些解决方案似乎对某些人有效,但对我无效。考虑到这一点,这可能不适合你。:)

1) 克隆 cordova-ios 存储库

git 克隆 git@github.com:apache/cordova-ios.git

2)查看可用的分支

git分支-a

您可能会看到类似以下内容:

  • 主遥控器/origin/0.9.5.1 遥控器/origin/0.9.6.x 遥控器/origin/1.6.1 遥控器/origin/1091 遥控器/origin/2.6.x 遥控器/origin/2.7.x 遥控器/origin/2.8.x遥控器/origin/2.9.x 遥控器/origin/3.0.0 遥控器/origin/464 遥控器/origin/CB-3530 遥控器/origin/HEAD -> 起源/主遥控器/origin/better_resource_copy_step 遥控器/origin/custom_schemes 遥控器/origin/设备遥控器/origin/主遥控器/origin/multipart_plugin_result 遥控器/origin/下一个遥控器/origin/phonegap-js

3)我用 Cordova 2.9 构建了我的应用程序,因此检查 2.9.x 分支 - 根据您的项目进行调整

git checkout -b 2.9.x origin/2.9.x

4) 确认您位于所需的分支

git分支

您应该看到类似以下内容:

  • 2.9.x 主控

5)进入垃圾箱/

光盘仓/

6) 现在重新创建 cordova 应用程序:

./create ~/some/project/dir/project com.project 项目

7) 将 www 文件夹从失败的版本复制到新项目。

8) 从 Xcode 获取成功构建消息。

9) 向 Xcode 伸出手指。

希望这可以帮助!