1

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

  1. 一般情况下,将 Deployment Target 改为 7.0 或以上
  2. 转到构建设置并更改:

    • 一个。有效架构 => armv7
    • 湾。仅构建活动架构 => 否
    • C。运行路径搜索路径 => $(inherited) @executable_path/Frameworks
    • d。Objective-C 桥接头 => [项目名称]/Plugins/com.dooble.phonertc/Bridging-Header.h
    • e. 嵌入内容包含 Swift 代码 => 是

我重复了步骤 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

这似乎表明科尔多瓦忽略了我刚刚指定的有效架构。我也尝试重新启动我的 PC 和 iPad,但这并没有帮助。cordova build ios --archs="armv7"也不行。

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

知道如何告诉/强制 Cordova 针对我指定的架构(armv7)进行构建吗?

4

3 回答 3

2

使用 xcconfig 配置文件

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

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

构建日志的摘录:

> 科尔多瓦构建 ios --device --release

...
从配置文件'/Users/xxx/git/xxx/platforms/ios/cordova/build-release.xcconfig'构建设置:
        ARCHS = armv7 arm64
        CODE_SIGN_IDENTITY = XXXX
        ENABLE_BITCODE = 真
        PROVISIONING_PROFILE = XXXX
        VALID_ARCHS = armv7 arm64
于 2015-12-22T17:43:59.467 回答
0

我的建议是使用cordova prepare然后从Xcode.

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

这是我在所有 iOS/Cordova 项目中都使用过的通用构建路径,并且似乎运行良好。

于 2015-02-10T14:58:21.133 回答
0

根据this SO answer,这是解决方案(为我工作)

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

cordova compile --device

或者对于 i386:

cordova compile --emulator
于 2015-07-12T07:58:44.777 回答