React Native 系列【四】打包

本贴最后更新于 2742 天前,其中的信息可能已经事过境迁

SymApp Demo

ToC

Android

步骤

1 生成签名秘钥

keytool -genkey -v -keystore symapp-release-key.keystore -alias symapp -keyalg RSA -keysize 2048 -validity 10000

按照提示一路走下去

2 设置 gradle 变量

  • symapp-release-key.keystore 文件放到工程中的 SymApp/android/app 文件夹下
  • 创建 ~/.gradle/gradle.properties 文件,添加如下的代码
MYAPP_RELEASE_STORE_FILE=symapp-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=symapp
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

3 修改 gradle 配置
打开 SymApp/android/app/build.gradle 添加如下配置

android { 
    signingConfigs {
      release {
          storeFile file(MYAPP_RELEASE_STORE_FILE)
          storePassword MYAPP_RELEASE_STORE_PASSWORD
          keyAlias MYAPP_RELEASE_KEY_ALIAS 
          keyPassword MYAPP_RELEASE_KEY_PASSWORD  
      }
    }
}
android { 
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

4 打包

cd SymApp/android
./gradlew assembleRelease

5 安装
请先删除以前的 APP

./gradlew installRelease

异常

Could not list contents of 'SymApp/node_modules/react-native/third-party/glog-0.3.4/test-driver'. Couldn't follow symbolic link.

直接 unlink,也就是可以把这个文件删掉。

"symapp-release-key.keystore": Cannot recover key

第一次输入的密码(store password)和最后一次输入的密码(key password)修改为不一样的就 OK 了

iPhone

打包

真机调试

  1. 修改 SymApp/node_modules/react-native/Libraries/WebSocket/RCTWebSocketExecutor.m 文件中 NSString *host = [[_bridge bundleURL] host] ?: @"localhost"; 此行内的 localhost 为你本机 IP
  2. USB 连上 iPhone,选择信任
  3. 在 Xcode 中选中项目 -> General -> Signing -> 添加账户。然后输入你的 apple 的账户和密码。如果没有开发者账号的可以移步 # iOS 10 关于 Xcode 8 无证书真机测试的问题
  4. 在左上角的 set the active scheme 后选择 XXX 的 iPhone,点击左侧的 build and run the current scheme

关闭远程调试

  1. Xcode -> Product -> Scheme -> Edit Scheme -> Run -> Info -> Build Configuration,选择 Release
  2. 在左上角的 set the active scheme 后选择 XXX 的 iPhone,点击左侧的 build and run the current scheme

异常

Xcode will continue when “iPhone 名称” is finished.

拔线重插或锁屏再解锁

Signing for "XXX" requires a development team.

选中项目,点击项目中 Targets 为 XXX 的选项 -> General -> Signing -> Team,选择你的 Team

  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 370 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 4 关注
  • Pack
    1 引用 • 13 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • summerzi

    我现在还在 react 入门级别,跟着你的教程学学,确实是很喜欢 react 系列呀

    1 回复
  • 其他回帖
  • someone

    测试

  • alanfans

    我没有 iPhone 手机

    1 回复
  • scorpion

    我可以问问妹子,她现在对 react 老感兴趣了。我就不来打酱油了。

    1 回复
  • 查看全部回帖