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 否则即使命令执行成功也没有打包文件。