17-3 RN之Android打包发布

44 阅读3分钟

课程目标

本节课程的目标是:

  1. 学习如何为 Android 应用生成签名文件。
  2. 配置 Gradle 签名和打包设置。
  3. 学习如何为不同的 CPU 架构生成优化的 APK 文件。
  4. 学习如何使用工具将应用上传到测试市场(如蒲公英)。

1. 生成签名文件

  1. 进入 android/app 目录

    cd android/app
    
  2. 执行生成签名的命令

    keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
    
    • 参数说明

      • -keystore:生成的签名文件名。
      • -alias:签名的别名。
      • -keyalg:加密算法(RSA)。
      • -keysize:密钥大小(2048 位)。
      • -validity:有效期(单位:天)。

2. 配置 Gradle 签名

  1. gradle.properties 文件中添加签名变量

    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
    MYAPP_RELEASE_KEY_ALIAS=my-key-alias
    MYAPP_RELEASE_STORE_PASSWORD=123456
    MYAPP_RELEASE_KEY_PASSWORD=123456
    
  2. android/app/build.gradle 中配置签名

    • signingConfigs 中添加 release 配置:

      signingConfigs {
          release {
              if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                  storeFile file(MYAPP_RELEASE_STORE_FILE)
                  storePassword MYAPP_RELEASE_STORE_PASSWORD
                  keyAlias MYAPP_RELEASE_KEY_ALIAS
                  keyPassword MYAPP_RELEASE_KEY_PASSWORD
              }
          }
      }
      
    • buildTypesrelease 中引用签名配置:

      buildTypes {
          release {
              signingConfig signingConfigs.release
          }
      }
      

3. 针对不同 CPU 架构生成 APK

  1. 启用分离打包

    • 在 android/app/build.gradle 中添加:

      enableSeparateBuildPerCPUArchitecture=true
      
  2. 执行打包命令

    • 在 macOS/Linux 下:

      cd android && ./gradlew assembleRelease
      
    • 在 Windows 下(CMD 环境):

      cd android && gradlew assembleRelease
      
  3. 生成的 APK 文件说明

    • 打包完成后,APK 文件会存放在 android/app/build/outputs/apk/release/ 目录下。

    • 不同架构的 APK 文件:

      • arm64-v8a:64 位 ARM 第 8 代处理器。
      • armeabi-v7a:32 位 ARM 第 7 代及以上处理器(大多数手机支持)。
      • x86:用于模拟器或平板。
      • x86_64:64 位平板。

4. 使用 react-native-upload 自动化打包与上传

  1. 安装依赖

    yarn add react-native-upload --dev
    
  2. 生成配置文件

    npx upload-init
    
  3. 执行打包命令

    • 单独打包 Android:

      npx upload-build --no-ios
      
    • Windows 系统下需使用 Git Bash。

  4. 解决打包报错(如 react-native-video 兼容问题)

    • 安装兼容版本:

      yarn add react-native-video@5.1.0-alpha6
      
    • 重新执行打包命令。


5. 上传到测试市场(蒲公英)

  1. 配置上传信息

    • 在 upload.json 文件中添加蒲公英的 API 配置信息:

      "pgy": {
          "pgy_api_key": "蒲公英key",
          "pgy_install_type": 2,
          "pgy_install_password": "123456",
          "ios_export_plist": "./ios-export/ad-hoc.plist"
      }
      
  2. 执行上传命令

    • 上传 Android APK:

      npx upload-pgy --apk=v7a --no-ios
      
  3. 通过 package.json 添加快捷命令

    • 在 scripts 中添加:

      "publish": "export ENVFILE=.env.production && npx upload-pgy --apk=v7a --no-ios"
      
    • Windows 系统下:

      "publish": "set ENVFILE=.env.production && npx upload-pgy --apk=v7a --no-ios"
      
  4. 效果

    • 上传成功后,蒲公英会生成一个二维码,测试人员可以通过扫描二维码安装应用。

6. 发布到应用市场

  1. 国内应用市场的现状

    • 国内应用市场碎片化严重,各大厂商拥有自己的应用商城:

      • 手机厂商:华为、小米、魅族、OPPO、vivo 等。
      • 第三方市场:豌豆荚(阿里应用分发)、应用宝、91 助手等。
  2. 上传到应用市场的注意事项

    • 创建应用并上传 APK 文件。
    • 填写应用信息。
    • 提供软件著作权证书(部分市场要求)。

7. 总结

7.1 本节内容总结

  1. 学习了如何为 Android 应用生成签名文件。
  2. 配置了 Gradle 签名和打包设置。
  3. 针对不同 CPU 架构生成优化的 APK 文件。
  4. 使用 react-native-upload 实现自动化打包与上传。
  5. 学习了如何将应用上传到测试市场(如蒲公英)。

7.2 思想总结

  • 自动化:通过工具(如 react-native-upload)简化打包与上传流程,提高效率。
  • 优化:针对不同 CPU 架构生成 APK,减少包体积。
  • 分发:利用测试市场(如蒲公英)快速分发应用,提高测试效率。

8. 下一节预告

Android 端的打包工作到此结束,接下来的章节将学习 iOS 端的打包配置知识。