React-native安装发布流程Android篇

Posted myang,就这样

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-native安装发布流程Android篇相关的知识,希望对你有一定的参考价值。

一、环境搭建

       1、安装依赖:

        必须安装的依赖有:Node、JDK 和 android Studio。

        2、Node、JDK安装

        Node >= 12; JDK=1.8

        3、Yarn

         Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。

         安装命令:npm install -g yarn

        4、Android Studio

         下载地址:Download Android Studio & App Tools - Android Developers

         安装 Android SDK:

       4.1、在 SDK Manager 中选择"SDK Platforms"选项卡,然后在右下角勾选"Show Package Details"。展开Android 10 (Q)选项,确保勾选了下面这些组件:

              Android SDK Platform 29

              Intel x86 Atom_64 System Image

      4.2、然后点击"SDK Tools"选项卡,同样勾中右下角的"Show Package Details"。展开"Android SDK Build-Tools"选项,确保选中了 React Native 所必须的29.0.2版本。你可以同时安装多个其他版本。

       4.3、然后还是在"SDK Tools"选项卡,点击"NDK (Side by side)",同样勾中右下角的"Show Package Details",选择20.1.5948944版本进行安装。

         4.4、最后点击"Apply"来下载和安装这些组件。

               配置 ANDROID_HOME 环境变量:

              4.4.1、打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建,创建一个名为ANDROID_HOME的环境变量(系统或用户变量均可),指向你的 Android SDK 所在的目录(具体的路径可能和下图不一致,请自行确认):

              SDK 默认是安装在下面的目录:

                     C:\\Users\\你的用户名\\AppData\\Local\\Android\\Sdk;

             在 Android Studio 的"Preferences"菜单中查看 SDK 的真实路径,具体是Appearance & Behavior → System Settings → Android SDK。

               你需要关闭现有的命令符提示窗口然后重新打开,这样新的环境变量才能生效。

               4.4.2、把一些工具目录添加到环境变量 Path

               打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量,选中Path变量,然后点击编辑。点击新建然后把这些工具目录路径添加进去:platform-tools、emulator、tools、tools/bin

               %ANDROID_HOME%\\platform-tools

               %ANDROID_HOME%\\emulator

               %ANDROID_HOME%\\tools

               %ANDROID_HOME%\\tools\\bin

二、创建项目

       必须要看的注意事项一:请不要在目录、文件名中使用中文、空格等特殊符号。请不要单独使用常见的关键字作为项目名(如 class, native, new, package 等等)。请不要使用与核心模块同名的项目名(如 react, react-native 等)。

        必须要看的注意事项二:请不要在某些权限敏感的目录例如 System32 目录中 init 项目!会有各种权限限制导致不能运行!

        必须要看的注意事项三:请不要使用一些移植的终端环境,例如git bash或mingw等等,这些在windows下可能导致找不到环境变量。请使用系统自带的命令行(CMD或powershell)运行。

        1、创建命令:

         npx react-native init 项目名称 /  npx react-native init 项目名称 --version 版本号

        2、真机运行调试:

         2.1、 开启 USB 调试

         2.2、 通过 USB 数据线连接设备

        检查你的设备是否能正确连接到 ADB(Android Debug Bridge),使用adb devices命令:$ adb devices

        2.3、运行应用

        #进入根目录

        cd AwesomeProject

        #运行命令

        yarn android

        # 或者

        yarn react-native run-android

三、打包发布

        1、打包Apk

         1.1、 命令生成打包秘钥(以管理员方式运行命令符):

    keytool -genkey -alias androidkerren.keystore -keyalg RSA -validity 20000 -keystore D:\\FGH\\fgh_apk\\androidkerren.keystore

(D:\\FGH\\fgh_apk\\androidkerren.keystore为自定义的文件路径;)

        1.2、用Android studio工具打包时,只加载android目录即可,不能整个项目加载;

        1.3、命令行生成的打包路径和Android studio工具生成的apk目录地址不一样;Android studio工具打包打包相关链接:https://www.jianshu.com/p/1380d4c8b596;

        官方地址:https://reactnative.cn/docs/signed-apk-android(android 打包发布模块)

        生成debug.keystore:

        生成发布版本的keystore:

        申请开发版SHA1:

        Keytool -list -v -keystore 地址

        发布版 SHA1:

        Keytool -list -v -keystore 地址

四、集成百度地图

        1、流程链接:

          react-native 使用百度地图_qq_39910762的博客-CSDN博客_reactnative百度地图

        2、安装 react-native-baidu-map 

         yarn add react-native-baidu-map

        3、集成配置

         在android/app/src/main/AndroidManifest.xml 中添加:

    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 这个权限用于进行网络定位-->

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!-- 这个权限用于访问GPS定位-->

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application

  ...

  <meta-data

  android:name="com.baidu.lbsapi.API_KEY"

  android:value="I03Xwhn5L3uVBrYSRfG8KzSrSZQkaM8h"/> // 申请到的baidu地图app key

  ...

  </application>

五、安装 react-native-webview

        命令:yarn add yarn add react-native-webview

        与vue的交互相关链接:

        https://blog.csdn.net/weixin_44666116/article/details/108273085

六、在 UIManager 中找不到“RNCWebView”

       运行命令改为yarn react-native run-android for android;

七、查看react-native日志输出

        react-native log-android

八、报错总结

        1、报错提示:Unable to load script.Make sure you're either running a metro server( run 'react-native start' ) or that your bundle 'index.android.bundle' is packaged correctly for release.

        解决:https://www.cnblogs.com/shizk/p/11189978.html

        2、报错   

Invalid regular expression: /(.*\\\\__fixtures__\\\\.*|node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*|website\\\\node_modules\\\\.*|heapCapture\\\\bundle\\.js|.*\\\\__tests__\\\\.*)$/: Unterminated character class. Run CLI with --verbose flag for more details.

        解决:https://blog.csdn.net/weixin_44369568/article/details/102917156

        3、报错 

The resource `D:\\rnceshi\\webProjectDemo\\index.android.js` was not found.. Run CLI with --verbose flag for more details.(react-native中没有index.android.js)

        解决:

     改成react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

        4、react-native 在Android 9.0 上请求http失败

         解决:https://www.jianshu.com/p/9f2853e05697

React-Native Code-Push流程梳理

参考技术A 1.为了使用 Code Push发布热更新,我们需要向微软服务注册我们的应用。这部分工作
微软提供了强大的命令行工具: CodePush CLI

2.安装 npm install -g code-push-cli

1.输入 code-push register 会打开浏览器到指定网页,然后选择账号授权,授权后会得到 token

1. code-push app add 你的App名称 android react-native

1.项目中需要使用 react-native-code-push 包,但要注意版本的兼容性问题,不同的 RN 版本需要使用不同的版本,详见官方说明: react-native-code-push

3.在 RN 项目中安装 react-native-code-push , npm install --save react-native-code-push

5. react-native link react-native-code-push 会询问 What is your CodePush deployment key for Android (hit <ENTER> to ignore)

6.查询 Staging 和 Production 的 Key 值, code-push deployment ls App名称 -k

React-Native-Code-Push 项目配置及更新策略

1.一般来说,我们发布应用首先会在测试环境进行稳定性测试,通过后再发布到生产环境中

code-push release-react MyApp-iOS ios --t 1.0.0 --dev false --d Production --des "1.优化操作流程" --m true

以上是关于React-native安装发布流程Android篇的主要内容,如果未能解决你的问题,请参考以下文章

React-Native

如何设计 React-Native Android 应用的导航器结构?

react-native的安装步骤,和可能遇见的BUG,react更新太快,官网安装很多坑。

React-Native Code-Push流程梳理

react-native android错误无法安装应用程序native_modules.gradle'行:170 [重复]

react-native run-android 失败:无法在设备上安装应用程序,请阅读上面的错误