问题标签 [react-native-code-push]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何确定是否必须为 RN >=0.60 的应用程序创建本机 apk / JS 包
我已经在生产中使用代码推送超过 2 年了。
我是如何实施的?
- 每当我的 react native 应用程序的 android 文件夹被修改时,我假设有一个本地更改,并且我的 CI/CD 工具创建了一个本地 apk 文件。
- 在所有其他情况下,我生成了一个 JS 包并通过 CodePush 推送。
在最新的 RN 版本 >=0.60 中,我们有原生模块的自动链接。因此,我无法确定新添加的任何库是否需要生成本机 APK 或仅需要更新包。
请提供建议如何做到这一点?
环境
react-native-code-push 版本:6.0.0
反应原生版本:0.61.4
azure-devops - 密码推送部署密钥是否被视为敏感?
我想知道用于命中端点的部署密钥https://codepush.azurewebsites.net/updateCheck?deploymentKey=XXX
是否被认为是敏感的,或者与应用程序一起发布是否安全。可以用它执行任何恶意操作吗?
react-native - 解析与项目根目录外的本机捆绑文件相关的资产
问题(android):如果捆绑文件位于项目根目录之外,则相对于 js 捆绑文件的图像资产放置在哪里?
我们有一个小型服务,我们在每个构建中上传 JS 包。因此,例如我们有 app com.example
,如果我们想更新我们的应用程序(当应用程序商店中的应用程序审查待定时),那么我们:
- 将 JS 包下载到 android 路径
/data/data/com.example/files/bundle/android.bundle
- 通过https://github.com/mauritsd/react-native-dynamic-bundle将此捆绑包设置为活动
想象一下,在 react App 组件中,我们有一个带有 path 的图像star.png
。
当我们激活一个新的捆绑包时,不会显示星形图像。
我在发布版本中通过https://reactnative.dev/docs/image#resolveassetsource检查了图像路径,并且图像 uri 仅解析为star
.
所以我尝试了以下文件结构:
№1
№2
但如果捆绑文件位于项目根目录之外,则不会显示静止图像。
问题:
- 我究竟做错了什么?https://github.com/Microsoft/react-native-code-push设法解决了这个问题。
- ios解决方案与android解决方案相同吗?
提前致谢
apk - 向 Play 商店提交一个新的 APK,其中包含 Codepush 不知道的更改
我正在使用 Codepush 更新我的 React Native Android 应用程序,这样我就可以进行更改而无需提交新的 APK。
问题是,如果我更改了一些代码并将其作为新 APK 提交而不将其发送到 Codepush,则应用程序会在安装后从 Codepush 下载以前的版本。基本上旧的 Codepush 代码替换了新的 APK 代码。
这是预期的行为吗?避免这种情况的唯一方法是在提交新 APK 的同时提交给 Codepush 吗?
这是 Codepush 匹配版本号的情况,所以如果我发布版本名称为 1.2 的 APK,Codepush 将检查其最新的“目标版本”,如果它不那么麻烦更新应用程序?
谢谢。
react-native - 带有 CI/CD 和本机依赖项更改的 Code-Push
我正在准备一个应用程序以发布到应用程序商店,并且我关心 CI/CD 管道和 Code-Push。
这种情况如何发挥作用:
如果开发人员进行了 NPM 依赖项更新,并且更新了包含 JS 依赖的本机代码更改的包,Code-Push 是否仍会在用户设备下载本机代码更新之前更新用户设备上的 JS 包?
我的问题很清楚,我不是在尝试 OTA 更新本机代码 - 我指的是像 react-native-device-info 这样的包具有本机 Java/Swift 代码并且还具有需要一些 JS 代码的情况来自本机代码的 api 或事件常量。如果您将 react-native-device-info 的软件包版本升级到新版本,并且本机代码和 JS 代码都发生了更改,那么 code-push 是否有办法知道在本机代码/应用程序之前不更新包更新是因为 JS 包的代码依赖于本机代码?
或者,我是否正在考虑错误地使用 Code-Push 工具?
react-native - 更新 react-native 的不同方法
我会将 react-native 应用程序推送到 App Store 和 Play 商店。由于该产品仍处于开发阶段(目前处于测试阶段),我想将应用更新推送给用户。我知道 codepush 将帮助我推送 js 更改,但是当应用程序在不同的商店发布时,用户可以通过哪些方式对二进制文件(.app 文件)执行应用程序内更新。
android - 如何仅在带有 React Native 的 Android 上使用 CodePush
我目前正在构建一个 React Native 应用程序,该应用程序目前仅在 Android 上可用。我决定使用 Code Push 来更新应用程序,而不会延迟 Google Play 分析。我在我的项目上安装了 react native 库,并使用 CLI 成功连接了我的 App Center 帐户,将密钥添加到 build.gradle 和我的 App 入口点文件上的 HOC。问题是当我运行应用程序时,我不断收到错误消息。我怀疑我得到了这个,因为我只为 Android 而不是 iOS 设置了 Code Push。如果是这种情况,解决问题的最明智的方法是什么?从项目中弹出iOS文件夹还是什么?我会很感激任何提示。谢谢。
错误日志
[CodePush] 同步已在进行中。LOG
[CodePush] 检查更新。LOG
[CodePush] 发生未知错误。LOG
[CodePush] 400:更新检查必须包含有效的部署密钥 - 请检查您的应用程序是否已正确配置。要查看可用的部署密钥,请运行“code-push deployment ls -k”。
我在 build.gradle 上的 buildTypes 部分
这是我的入口点文件
react-native - 安装 CodePush 更新后 Segment trackEvent 无法正常工作
我们的 React Native 项目同时集成了 Segment 和 CodePush。
段工作正常,正常。
但是在安装 CodePush 更新后,Segment 会立即停止工作。没有任何东西被清除,并且没有任何事件显示在 Live Debugger 列表中 - 除了在本机层中跟踪的事件(例如:“应用程序打开”和“应用程序后台” - 只有这些显示)。
因此,我假设 RN - Javascript 层中的任何 Segment 调用仅在应用程序重新启动捆绑包后(通过 CodePush)停止工作。
用户应关闭并终止应用程序并重新打开应用程序以使其再次正常工作。
发生在 iOS 和 Android 上(从商店安装时)。
奇怪的是,当我从我的机器直接向我的 Android 手机运行调试或发布版本时,我无法在 Android 上重现该问题(它只是工作 ♂️)。iOS 模拟器也是如此。
对此有任何想法或解决方法吗?
这是设置的样子:
react-native - 当我在 react native 0.61+ 中添加本机库时,我应该生成本机构建吗?
我一直在将 RN 0.61.+ 用于我的 android 和 ios 应用程序,并使用 Codepush 进行远程 JS 更新。
在. auto-linking
_ 当我们添加一个原生库时,除了我们需要为 iOS0.60+
做一个之外,在 android 和 ios 文件夹中没有添加原生代码。pod install
这是否意味着我可以简单地使用 JS Bundle 对用户进行更新codepush
?还是我仍然必须创建本地构建并在商店中发布?
android - Appcenter Codepush 集成。无法将任务“bundleDebugJsAndAssets”添加为具有该名称的任务已存在
重现步骤
yarn add react-native-codepush
- 将以下内容添加到
android/app/build.gradle
- 将以下内容添加到
MainApplication.java
- 将以下内容添加到
strings.xml
预期行为
构建应该成功
实际行为
实际发生了什么?
环境
- react-native-code-push 版本:^6.2.1
- 反应原生版本:0.62.2
- iOS/Android/Windows 版本:未知
- 这会在调试版本或发布版本上重现吗?仅在调试时检查
- 这是在模拟器上重现,还是仅在物理设备上重现?构建错误
外部 SDK
我确实有一个外部 SDK 在build.gradle
. 我不知道这是否是此错误的原因。
我试过了。
我将两个声明移到app/build.gradle
. 但错误仍然相同
有的文章状态要去掉那行apply from: "../../node_modules/react-native/react.gradle"
。但是新的错误是
我删除了这两行(实际上没有任何意义)错误是