问题标签 [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.
flutter - FlutterIO 的 CodePush
我已经知道 Cordova 和 ReactNative 的 CodePush。
来源:https ://docs.microsoft.com/en-us/appcenter/distribution/codepush/
FlutterIO 在生产环境中是否有任何 CodePush 解决方案?
还是它已经支持 ReactNative?
谢谢你。
git - 当我执行 Git Push 时代码消失了
我在一个由 5 名开发人员组成的小团队中工作,当我使用我的一项更改进行 git push 时,过去 10 天的代码对于其他开发人员来说正在消失。我的没有任何事情发生。作为一个团队,我们无法找到此问题的根本原因。
回顾提交历史,没有显示过去 10 天内所做的任何推送。有没有人知道这可能是什么根本原因以及如何解决它?
这些是我遵循的步骤:
git commit(保存本地更改)git pull(这不是拉远程中的确切更改。我的本地与远程不同步。所以我做了“ git reset --hard origin/master ”,这也没有用,后来我做了“ git clean -f ”。在此之后,我又做了一个 git pull 并从远程获取了最新的代码,然后我做了一个 git push。
现在我的同事做了一个“git pull”
cordova - Appcenter CodePush CLI - 列出部署
我是 CodePush 的用户(使用 cordova)。我正在快速检查 AppCenter,因为CodePush 正在那里迁移。我注意到 AppCenter CLI 似乎不像 CodePush CLI 那样健壮/就绪。
此时我的主要问题是该命令是否应该显示部署历史记录(包括旧的 CodePush 部署)?
appcenter codepush deployment list -a owner/appName
我看到它只显示应用程序的部署密钥,但文档使它看起来似乎也应该显示部署历史记录。我正在尝试使用 CLI 帮助(如文档所述),但这会引发错误:
appcenter codepush help
.
我登录了 AppCenter UI,它确实显示了我旧的 CodePush 发布历史。我希望 CLI 也能做到这一点。我猜我错过了一些简单的东西?
cordova - Microsoft Codepush 随机回滚
Phonegap 构建
我一直在使用 Phonegap Build 来构建 Android (apk) 和 iOS (ipa) 文件。Codepush 的文档 ( https://docs.microsoft.com/en-us/appcenter/distribution/codepush/cordova ) 声明该插件与 Phonegap Build 兼容。但是,我已经为 iOS 和 Android 构建了应用程序(<preference name="android-build-tool" value="gradle" />
按照 Android 的推荐添加到 config.xml),但是,这两个应用程序都不会从 Codepush 获取新版本 - 该应用程序只会按照原始安装显示。
随机回滚
我在使用 Android 测试 Codepush 时遇到了重大挫折。我在设备上安装编译的应用程序,它运行正常。我通过对 html 文件进行细微更改来修改应用程序,并使用 appcenter codepush release-cordova... 推出新的更新。
然后我运行该应用程序,关闭它并再次运行它。前两个或前三个更新将被正确拾取。但是,在此之后(并且不一致,发生这种情况时设备之间会有所不同),下一次更新失败并且应用程序恢复到已安装的版本,并且在 appcenter 中,更新显示在“回滚”下。
从那时起,任何新版本都将被忽略,应用程序将保留在已安装的版本上。唯一的两个修复似乎是 1. 重新安装应用程序 - 这修复了它并开始获取新版本,直到它再次失败或 2. 清除部署的整个历史记录。同样,这会修复它,直到它再次失败。
更新没有崩溃——我只是更改了 index.html 中的一些文本,所以它不会崩溃(另外,更新将安装在一台设备上,但在另一台设备上失败,所以不可能这样)。
该应用程序触发 Codepush 同步如下:
我已经尝试过使用和不使用“ignoreFailedUpdates”选项,但最终无论哪种方式都失败了。我认为问题是由于应用程序无法完成引起的codePush.notifyApplicationReady
,可能是由于网络问题。
然而,这似乎是一个阻碍,因为它有效地使 Codepush 在现实世界中无法使用。不能保证更新会到达用户;更糟糕的是,如果更新失败,应用程序会回滚到上次安装的版本,随后会忽略所有新更新,因此它们会卡在旧版本上,或者不得不经历重新安装应用程序的痛苦。(每次我们进行更新时清除部署历史可能会奏效,但不能保证)。
例如,我创建了一个应用程序,它只显示一些 html,包括版本号。构建和安装
'v1.00'
编辑了 html,将版本更改为 v1.01。
发布更新(已经设置应用程序使用appcenter apps set-current -a ...
)
打开应用程序,关闭它,再次打开
正确显示“v1.01”
编辑了 html,将版本更改为 v1.02。
发布更新
打开应用程序,正确显示
'v1.02'
关闭它,然后重新打开它
显示“v1.00”,appcenter 显示回滚。
我尝试在 appcenter codepush release-cordova 上使用“-m”选项
此外,我已经在 Android 6 和 7 上尝试过同样的问题。
我的问题是: 1. 还有什么我可以尝试让更新正确安装,或者,如果它们失败,不要将应用程序冻结在上次安装的状态并忽略任何未来的更新。2. 如果我切换使用 React-Native,这是一个 Cordova 问题还是可能发生同样的事情?3. 有没有办法让 Codepush 和 Phonegap Build 一起工作?#
我们希望能够向我们的用户群推出应用程序,但不必在每次小的更改时都重新安装它们。Codepush 似乎是一个完美的解决方案,但目前看来,它似乎根本不可行。
任何帮助将非常感激。
react-native - Codepush 是在 React native 中创建完整的包(原始 js 文件 + 修改的 js 文件)还是仅创建增量(修改的 js 文件)?
如果 Codepush 真的创建了只包含修改过的 js 文件的包,那么在这个 delta 中究竟是如何检查的?
react-native - App Store 和 Play Store 如何处理恶意代码推送?
像 React Native 或 Cordova 这样的原生编程平台使开发人员能够用 JavaScript 编写他们的应用程序并将其发布到 iOS 和 Android 上。
虽然 code-push 是另一项允许开发人员通过云服务器(不是官方应用中心,如 Play Store 或 App Store)更新其应用程序的服务,但请考虑开发人员在 App Store 或 Play Store 上发布他的安全应用程序并在获得批准后,通过代码推送更新他的应用程序,并向他们的应用程序添加恶意逻辑,例如将用户联系人或图库图像发送到他们的服务器。
在这种情况下,操作系统安全有哪些保证?Google 或 Apple 如何处理这些应用程序?
cordova - Ionic Cordova 代码推送更新总是“待定”
描述
我将代码放在适当的位置以进行无线更新,看起来代码确实推送了,但每次我运行时:
code-push deployment ls XXXXX
我得到:
有效:0%(XXX 中的 1 个)总计:0(XXX 待定)
“待定”永远不会切换到成功(但我确实看到了应用程序更新?)
再生产
我正在使用 Ionic 应用程序 (+Redux) 已放入我的 app.component.ts:
platform.ready().then(() => { this.ngRedux.dispatch(update()); });
update() 在另一个文件中:
附加信息 cordova-plugin-code-push 版本:1.11.0
已安装插件列表:
科尔多瓦版本:7.1.0
iOS/Android/Windows 版本:全部
这会在调试版本或发布版本上重现吗?是的
这是在模拟器上重现,还是仅在物理设备上重现?是的
react-native - CodePush - 为您定位的每个操作系统创建一个应用程序
我正在向 CodePush 注册一个 React Native 项目。第 3 步说使用该服务注册您的应用程序。为了让服务了解您的应用程序,只需使用可识别的名称注册它。为您定位的每个操作系统创建一个应用程序。
这是否意味着我需要 react-native init 两个单独的项目,一个带有后缀 -Android,一个带有 -iOS?
如果这是一个愚蠢的问题,我深表歉意,但尚不清楚 CodePush 要求我在这里做什么。
react-native - React Native CodePush 用于“生产”部署的不同密钥
我的应用程序与“暂存”部署密钥“ sss ”相关联。它定义在/android/app/src/main/res/values/strings.xml
, 下reactNativeCodePush_androidDeploymentKey
。
现在,当我实际发布 APK 时,我想使用“生产”部署密钥“ ppp ”。
最好的方法是什么?我如何自动化它,所以它知道它应该使用“ppp”键?我使用该./gradlew assembleRelease
命令来构建 APK。