随时会离岛的刘自在 發表於 2020-3-26 15:11:00

app开发(Android开发)--react-native

<p>react-native开发与发布流程:</p>
<p><strong>1&nbsp;环境:</strong></p>
<p>genymotion + visual box虚拟墙 +安卓sdk + Android studio开发工具+react native(0.57.8)+react-native-cli(2.0.1//npm install react-native-cli)</p>
<p>&nbsp;</p>
<p>环境工具:</p>
<p>----genymotion(需要先注册账号)</p>
<p>----visualBox虚拟墙</p>
<p>----Android的SDK</p>
<p>----Android studio开发工具</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>2&nbsp;APP项目运行:<br></strong></p>
<p>----1.cd进入项目安装依赖 //npm install</p>
<p> ----2.react-native run-android</p>
<p>&nbsp;</p>
<p><strong>3&nbsp;APP项目打包(初始化开发打包):</strong></p>
<p>----1.cd进入Android---》在cd进入app项目文件夹 </p>
<p>----2.执行生成密钥命令:keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 </p>
<p>----3.修改配置文件: </p>
<ul>
<li>my-release-key.keystore(有则直接负责到 android/app 目录下,无则执行打包第一条)</li>
<li> 配置android/gradle.properties文件:添加以下四个参数(注:<span style="color: rgba(255, 0, 0, 1)">**替换为相应密码</span>)</li>
</ul>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: rgba(0, 0, 255, 1)">MYAPP_RELEASE_STORE_FILE=my-release-key.keystore</span></p>
<p><span style="color: rgba(0, 0, 255, 1)">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MYAPP_RELEASE_KEY_ALIAS=my-key-alias </span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: rgba(0, 0, 255, 1)">MYAPP_RELEASE_STORE_PASSWORD=</span><span style="color: rgba(255, 0, 0, 1)">***** </span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: rgba(0, 0, 255, 1)">MYAPP_RELEASE_KEY_PASSWORD=</span><span style="color: rgba(255, 0, 0, 1)">*****</span></p>
<ul>
<li>配置 android/app/build.gradle 文件内的参数:</li>
</ul>
<p>     ... </p>
<p>    android { </p>
<p>      ... </p>
<p>      defaultConfig { ... } </p>
<p>      signingConfigs { </p>
<p>        <span style="color: rgba(0, 0, 255, 1)">release { </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">          if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {</span></p>
<p><span style="color: rgba(0, 0, 255, 1)">             storeFile file(MYAPP_RELEASE_STORE_FILE) </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">            storePassword MYAPP_RELEASE_STORE_PASSWORD </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">            keyAlias MYAPP_RELEASE_KEY_ALIAS </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">            keyPassword MYAPP_RELEASE_KEY_PASSWORD </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">          } </span></p>
<p><span style="color: rgba(0, 0, 255, 1)">        } </span></p>
<p>      } </p>
<p>      buildTypes { </p>
<p>        release { </p>
<p>          ... </p>
<p>          <span style="color: rgba(0, 0, 255, 1)">signingConfig signingConfigs.release </span></p>
<p>        } </p>
<p>      } </p>
<p>    } </p>
<p>    ...</p>
<p>----4. cd进入 android 文件执行打包命令:</p>
<p>gradlew assembleRelease (Windows的传统 CMD 命令需要去掉 ./ ) </p>
<p>// ./gradlew assembleRelease在 macOS、Linux 或是 windows 的 PowerShell 环境中表示执行当前目录下的名为 gradlew 的脚本文件,且其运行参数为 assembleRelease,注意这个./不可省略;</p>
<p>&nbsp;</p>
<p><strong>&nbsp;4&nbsp;注:</strong></p>
<p>  Gradle 的assembleRelease参数会把所有用到的 JavaScript 代码都打包到一起,然后内置到 APK 包中。如果你想调整下这个行为(比如 js 代码以及静态资源打包的默认文件名或是目录结构等),可以看看android/app/build.gradle文件,然后琢磨下应该怎么修改以满足你的需求。 注意:请确保 gradle.properties 中没有包含_org.gradle.configureondemand=true_,否则会跳过 js 打包的步骤,导致最终生成的 apk 是一个无法运行的空壳。</p>
<p>&nbsp;</p>
<p><strong>5&nbsp;打包生成后的线上文件:</strong></p>
<p><strong>  </strong>生成的 APK 文件位于 android/app/build/outputs/apk/release/app-release.apk ,这个就是用来发布的文件。</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/dreambin/p/12574624.html
頁: [1]
查看完整版本: app开发(Android开发)--react-native