如何在Cordova中使用受支持的64位架构构建iOS应用程序?

时间:2017-05-17 14:38:53

标签: ios xcode cordova

本文指南如何自定义Cordova的构建过程。

本文的示例重点介绍如何在Corodva中构建iOS应用程序和如何将应用程序设置为支持的64位架构。

您可以通过build-release.xcconfig,build-debug.xcconfig文件为xcodebuild命令添加更多扩展配置参数,这些文件是Cordova的构建核心文件。

本文还指导您使用Corodova Hook,以及如何使用" before_build" hook动作更新xcodebuild命令的 -xcconfig 参数。 您可以了解Cordova Hook的想法,并使用Cordova的其他钩子动作来部署您的想法。

我希望这篇文章可以帮助许多使用Cordova框架并希望自定义Cordova构建处理的人。

[调查]

  • XCode中有一些配置允许我们限制支持的应用程序架构。修改Xcode的Build Settings中的所有设置:

    • 架构
    • 仅构建Actives架构
    • 有效架构
  • 支持的架构64位设置的配置值如下:

    • 架构= arm64
    • 仅构建Actives架构= YES
    • 有效架构= arm64
  • Cordova building命令不支持额外配置的设置。这意味着我们无法使用额外的应用程序配置来构建应用程序。

  • Cordova支持HOOKs机制,允许挂钩执行如下:构建,运行,准备,编译,平台添加,平台rm,......这样,我们可以使用钩子机制将我们的扩展流程注入到构建过程Cordova的参考链接http://cordova.apache.org/docs/en/latest/guide/appdev/hooks/index.html

  • Cordova构建机制在 platforms / ios / cordova / build-release.xcconfig build-debug.xcconfig >为 xcodebuild 命令设置额外配置的文件夹。这样,我们可以使用这些文件进行自定义。

    • 参考Cordova构建核心资源: platforms / ios / cordova / lib / build.js
  • 用于 xcodebuild 命令的 -xcconfig 参数的体系结构参数设置:

    • ARCHS代表架构参数。
    • VALID_ARCHS代表Valid Architectures参数。
    • ONLY_ACTIVE_ARCH代表Build Actives Architectures Only参数。

[溶液]

  • 使用HOOK机制:

    • 我们使用" before_build"在构建进程开始之前挂钩动作以注入我们的扩展进程。
    • 我们将执行作业文件创建为* .sh文件,该文件用作before_build挂钩操作的运行脚本。
    • 我们需要将挂钩操作的配置添加到 config.xml 。将此配置添加到 / hooks 文件夹: <hook src="hooks/before_build.sh" type="before_build" />
  • 使用Corodova的构建配置文件:

    • 我们根据配置文件添加新配置(我们应该保留Cordova基因处理内容的原始设置)。
    • 在#include&#34; build.xcconfig &#34;的块中为支持的体系结构添加以下设置64位和#include&#34; build-extras.xcconfig &#34;。

build-release.xcconfig 文件的示例内容:

#include "build.xcconfig"

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution
ONLY_ACTIVE_ARCH = YES
ARCHS = arm64
VALID_ARCHS = arm64

#include "build-extras.xcconfig"

请注意,我们为支持的64位架构添加以下配置:

ONLY_ACTIVE_ARCH = YES
ARCHS = arm64
VALID_ARCHS = arm64

注意:上面的CODE_SIGN_IDENTITY设置取决于您的签名配置文件。在我的例子中是iPhone发布。

  • 在shell脚本* .sh中创建执行作业文件
    • 主要想法是将我们的自定义构建配置文件覆盖到 platforms / ios / cordova / 文件夹中Corodva的原始构建配置文件。
    • 您可以将新的构建配置文件存储在任何位置 - 它应该存储在挂钩中以便于维护。我将构建配置文件存储在 hooks / build / ios / 文件夹中。

shell脚本 before_build.sh 的内容:

#!/usr/bin/env bash

#Overwrite the configurations files of Cordova    
cp "hooks/build/ios/build-debug.xcconfig" "platforms/ios/cordova/";
cp "hooks/build/ios/build-release.xcconfig" "platforms/ios/cordova/";
  • 通过Cordova的构建命令执行构建应用程序: cordova build ios -device

===

谢谢,

DQ。

0 个答案:

没有答案