Android 如何确定是否必须为具有RN>;的应用程序创建本机apk/JS捆绑包=0.60
我在生产中使用代码推送已经两年多了 我是如何实施的?Android 如何确定是否必须为具有RN>;的应用程序创建本机apk/JS捆绑包=0.60,android,react-native,code-push,react-native-code-push,Android,React Native,Code Push,React Native Code Push,我在生产中使用代码推送已经两年多了 我是如何实施的? 每当我的react原生应用程序的android文件夹被修改时,我都假设有一个原生更改,我的CI/CD工具创建了一个原生apk文件 在所有其他情况下,我生成了一个JS包并通过CodePush推送 在最新的RN版本>=0.60中,我们有本机模块的自动链接。因此,我无法确定是否有任何新添加的库需要生成本机APK,或者只是一个包更新 请提供如何做到这一点的建议 环境 react本机代码推送版本:6.0.0 react本机版本:0.61.4适用于所
- 每当我的react原生应用程序的android文件夹被修改时,我都假设有一个原生更改,我的CI/CD工具创建了一个原生apk文件
- 在所有其他情况下,我生成了一个JS包并通过CodePush推送
react本机版本:0.61.4适用于所有有类似需求的人。这就是我所做的
- 我的应用程序同时支持android和ios,因此,每当我们添加本机模块时,我们必须执行
此步骤将更新cd-ios&&pod安装
文件Podfile.lock
- 当代码被推送到repo并触发CI/CD管道时,我检查我的git历史记录,查看
或android/
文件夹是否用文件更新ios/
- 如果是,我将触发我的本地构建,否则我将执行代码推送
上面的shell代码片段有助于检查更改的文件。您是否介意展开“我检查我的git历史记录,看看android/或ios/文件夹是否使用文件进行了更新。”?:)太好了,很有帮助!:)
FILES_CHANGED=`git diff --name-only $1 $2 | grep "android/\|ios/"`
PARAMETERS='"trigger": false,'
if [[ $FILES_CHANGED == '' ]]; then
PARAMETERS+='"js": true'
echo "JS Code changes detected..."
else
PARAMETERS+='"native": true'
echo "Native Code changes detected..."
fi