Weex 入坑指南:Native App 的运行与构建

Weex 入坑指南:Native App 的运行与构建

在 Weex 的程序完成后,使用 npm run build 可以打包出 js bundle 用于 HTML5 页面,但是更多的时候我们可能需要像 Playground 那样将它打包到真机甚至发布。

在本文中,与许多操作与 编译 Playground 重复,我们希望你通过阅读它来准备一些 Native 的开发环境,学习一些 Android 和 iOS 的基本操作,这些重复操作本文将不会做详细介绍,你可以前往该文章查看对应的步骤。

准备

通过 weexpack platform add [platform-name] 可以快速生成 Android 和 iOS 的模板,根据你所需要的平台进行添加即可,通过 weexpack platform list 来查看 weex-pack 目前提供的模板。

Android

可以在根目录下的 android.config.json 找到配置信息,除非有特殊需求,否则我们不需要特别的去修改文件。

配置环境

weexpack 指定了编译所需的版本:需要 Android 5.1 版本的 SDK 以及 23.0.2 版本的 Android SDK Build-Tool。

打开 Android Studio,新建任意一个 Android 项目,在 Minimum SDK 中选择 API 22:Android 5.1。

点击 Next 完成项目创建,之后 Android Studio 会自动下载 SDK。

进入项目后打开 Preferences:

进入 Appearance & Behavior > System Settings > Android SDK,点击 SDK Tools,勾选下方的 Show Package Details,选择 Android SDK Build-Tools 中的 23.0.2 版本,点击 OK。

之后 Build-Tools 就会被自动下载。

由于 Android Studio 不会配置环境变量,所以我们需要进行一些配置才能使用 weexpack 的相关命令:

# 打开环境变量配置文件
vim ~/.bash_profile

# 加入以下两行 
export ANDROID_HOME=/xxx/Library/Android/sdk # 修改目录为 Preferences 中显示的目录(上图高亮部分)
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools

#保存
source ~/.bash_profile

运行

配置完环境变量,在执行指令之前,我们要先启动模拟器或者 USB 连接设备,假设我们在 编译 Playground 中已经创建了模拟器,还没有进行创建操作的话可以阅读此文学习。

点击菜单中的 Tools - Android - AVD Manager,选择一个设备并启动。

之前我们在准备阶段已经执行了 weexpack platform add android,之后只要使用 weexpack run android指令即可在已经运行的设备里启动。

如果出现 render error:null,是由于 weexpack 提供的 android 模板中 weex sdk 的版本还不支持 Vue,请修改 app 中的 build.gradle 中的 weex sdk 版本号到 0.9.5即可:

// 改为 0.9.5
compile 'com.taobao.android:weex_sdk:0.9.4'

打包

执行 weexpack build android 即可完成打包,之后在 platform/android/app/build/outputs/apk 中即可看到输出的 apk 文件。

iOS

可以在根目录下的 ios.config.json 找到配置信息,除非有特殊需求,否则我们不需要特别的去修改文件。

环境配置

如果系统中没有 CocoaPods,需要运行以下命令安装:

sudo gem install cocoapods

如果你在这部分遇到了问题,请查阅 编译 Playground 中 iOS 的安装依赖部分。

运行

执行完 weexpack platform add ios 后,我们只需要 weexpack run ios,系统会执行 pod install 以及编译,提示你选择需要运行的模拟器。

如果是连接真机操作,需要填写一些额外的信息,如果你参与了 Apple Developer Program,可以通过:

AppId 即 Bundle Identifier,是应用程序的唯一标识符,如:me.codesky.WeexDemo。

CodeSign 是能对代码进行签名的证书。

Profile 是描述文件。

如果你只是想在自己的机子上安装而没有证书,可以通过 Xcode 打开 platforms/ios/WeexDemo.xcworkspace,与 编译 Playground 一文中相似的在 WeexDemo - General - Signing 中勾选 Automatically manage signing。

系统会为你自动生成证书。

生成之后的 CodeSign 和 Profile 可以通过以下方法查看:

security find-identity -v -p codesigning
# result
#  1) F10B42FFDE18DF28BA21190121439F2E04BEE4B8 "iPhone Developer: weizheng li (P7QJ74LFSA)"
#    1 valid identities found
cd ~/Library/MobileDevice/Provisioning\ Profiles/
security cms -D -i example.mobileprovision # 找到 最后 UUID 对应的值

打包

打包可以参考 编译 Playground 一文。

打包时如果出现 Unused variable 'loader' ,如下图所示,在 Project 设置中选择 Target 为 WeexDemo,选择 Build Settings,找到 Unused Variables,改为 No,重新点击 Archives 即可。

如果你已经配置了 weexpack 中的相关信息,可以通过 weexpack build ios 打包。必须要参与 Apple Developer Program 否则即使命令执行成功也没有打包文件。

参考资料

发布于 2017-02-17 16:16