美文网首页
WIN下React Native打包apk

WIN下React Native打包apk

作者: wtfysa | 来源:发表于2016-12-15 10:47 被阅读335次

    安卓项目发布到真机上测试需要打包成apk。就介绍下打包流程:

    1. 产生签名的key

    该过程会用到keytool,开发过安卓的都应该接触过该东西。详细请见密钥和证书管理工具
    在工程的主目录中执行:

    keytool -genkey -v -keystore my-release-key.keystore -aliasmy-key-alias-keyalg RSA -keysize2048-validity10000
    

    [注:在产生的时候需要提供密钥和存储密码,后续会用到]

    把生成的 my-release-key.keystore 拷贝到工程目录 /android/app/目录下
    
    图片.png

    2.新建assets文件夹

    找到工程目录下/android/app/src/main,并在该目录下新建assets文件夹
    
    图片.png

    3. 在工程目录下执行以下命令

    目的是将 index.android.bundle下载并保存到assets资源文件夹中

    curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
    

    提示curl命令不是内部...? 答案在: http://www.cnblogs.com/xing901022/p/4652624.html
    执行完后在步骤2新建的目录下android/app/src/main/assets/多了一个index.android.bundle文件

    图片.png

    4. 修改android/gradle.properties文件,增加如下

    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
    MYAPP_RELEASE_KEY_ALIAS=my-key-alias
    MYAPP_RELEASE_STORE_PASSWORD=xx
    MYAPP_RELEASE_KEY_PASSWORD=xx
    

    [注意替换xx为你自己设置的密钥和存储密码]

    5.修改android/app/build.gradle文件中的签名配置:

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

    6.然后进入android目录执行如下:

    gradlew assembleRelease
    

    结束后会在android/app/build/outputs/apk/app-release.apk。
    每次执行前,注意将该apk删除。

    遇到的问题

    第一次执行打包操作时出现下面问题,什么拒绝访问

    图片.png

    我也不清楚这个问题的来由,我进入\android\app\build\intermediates\assets\目录下没有看到release目录,所以我新建一个release目录,并把相关资源拷贝进去,再次打包成功

    相关文章

      网友评论

          本文标题:WIN下React Native打包apk

          本文链接:https://www.haomeiwen.com/subject/xtnwmttx.html