在IOS上构建时,Cordova忽略了指定的体系结构

时间:2015-02-09 12:22:04

标签: xcode cordova phonertc

我试图在IOS上建立PhoneRTC演示后,让它在Android和网络浏览器上运行(OS X 10.10.2 Yosemite,XCode 6.1.1,Cordova 4.2.0和我的iPad正在运行iOS 8.1)。我的iPad已插上。我按照IOS的安装步骤进行了操作:

  1. 一般情况下,将部署目标更改为7.0或更高版本
  2. 转到“构建设置”并更改:

    • 一个。有效架构=> ARMv7的
    • 湾仅构建活动架构=>否
    • ℃。 Runpath搜索路径=> $(继承)@ executable_path / Frameworks
    • d。 Objective-C Bridging Header => [项目] /Plugins/com.dooble.phonertc/Bridging-Header.h
    • 即嵌入内容包含Swift Code =>是
  3. 我重复了步骤4a。 - 4c。对于CordovaLib项目也是如此。

    当我运行cordova build ios时,构建失败。在控制台中,我看到了:

    Build settings from command line:
    ARCHS = i386
    CONFIGURATION_BUILD_DIR = /Users/Francis/Desktop/PhoneRTC/PhoneRTC/platforms/ios/build/emulator
    SDKROOT = iphonesimulator8.1
    SHARED_PRECOMPS_DIR = /Users/Francis/Desktop/PhoneRTC/PhoneRTC/platforms/ios/build/sharedpch
    VALID_ARCHS = i386
    

    这似乎表明cordova忽略了我刚才指定的有效架构。我尝试重新启动我的电脑和iPad,但这并没有帮助。 cordova build ios --archs="armv7"也不起作用。

    从XCode内部开始工作,但这不是我想要的,因为它跳过了cordova构建过程。

    任何想法如何告诉/强制Cordova构建我指定的架构(armv7)?

3 个答案:

答案 0 :(得分:1)

使用xcconfig配置文件

在自动构建期间,我在构建脚本添加iOS平台后创建文件:

  

echo'ARCHS = armv7 arm64'>> $ {CURR_DIR} /platforms/ios/cordova/build-release.xcconfig

构建日志的摘录:

> cordova build ios --device --release 

...
Build settings from configuration file '/Users/xxx/git/xxx/platforms/ios/cordova/build-release.xcconfig':
        ARCHS = armv7 arm64
        CODE_SIGN_IDENTITY = XXXX
        ENABLE_BITCODE = true
        PROVISIONING_PROFILE = XXXX
        VALID_ARCHS = armv7 arm64

答案 1 :(得分:0)

我的建议是使用cordova prepare,然后从Xcode构建。

cordova prepare复制文件和配置设置,但不修改本机代码或尝试运行标准构建过程。

这是我用于所有iOS / Cordova项目的常见构建路径,似乎运行良好。

答案 2 :(得分:0)

根据这个SO answer,这是解决方案(对我有用)

构建时,您可以指定要执行的构建类型:

cordova compile --device

或i386:

cordova compile --emulator