RN跳转小程序开发

448 阅读1分钟

开始

  • react native : 0.7.1,看完文章后能获得
  1. RN 打包发布
  2. RN 微信SDK集成

一、任务

  • RN跳转小程序流程 - (只考虑Android)

二、任务细分

  1. 开发环境准备
  2. 创建项目
  3. 微信官方APP拉起小程序
  4. RN微信SDK插件集成
  5. 打包发布

总结

一、遇到的问题

1. 通用问题

  1. 解决依赖下载速度太慢

2. 发布问题

  1. 修改包名
  2. 应用发布,签名
  3. android studio 中全局搜索 ctrl+shift+f 无效,快捷键冲突 使用shift+ctrl+f
  4. 微信开放账号申请,APP 申请
  5. APP 应用图标修改

3. 插件集成

  1. 由于rect native 0.7.1,因此插件需要使用最新版本 3.0.0
  2. 3.0.0需要修改一些配置

二、注意点

  • key-store很重要,XXX.keystore 提交代码时是不会上传的,因此需要保存一份。

三、重要打包相关命令

  • cd android
  • ./gradlew assembleRelease 打包
  • ./gradlew clean 清理生成的包

1. 解决依赖下载速度太慢

配置

// 目录 XXX/android/build.gradle
allprojects {
    repositories {
        mavenLocal()
        maven {
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

2. 解决修改包名

cd android

  1. 按照链接对相应文件修改,只需要做第一步。
  2. 先使用 ./gradlew clean 清除打包文件
  3. 使用全局搜索(shift+ctrl+f),全局替换

3. 签名

  • www.jianshu.com/p/78d0339db…
  • 这里还有一步,android debug包和release包两者签名是不一样的。所以如果要debug版本测试,还需要配置 目录:android/app/build.gradle

 signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            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
            }
        }
        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
            }
        }
    }