这些天我正在使用MS Code Push服务,它节省了更新我的cordova应用程序的时间.我想知道除了使用github或MS帐户之外是否可以构建我们自己的代码推送服务器?
我正在尝试安装https://github.com/Microsoft/react-native-code-push,以便我可以在不通过应用商店的情况下进行推送。
\n\n我刚刚跑了code-push release-react MyAppName ios --deploymentName Staging。我也跑了code-push release-react MyAppName ios --deploymentName Production。两人均顺利完成
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 Name \xe2\x94\x82 Deployment Key \xe2\x94\x82 Update Metadata \xe2\x94\x82 Install Metrics \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 Production \xe2\x94\x82 abc123-ER1Zk1llw5Apk3gI8HN37NyRzl4z0Z \xe2\x94\x82 Label: v1 \xe2\x94\x82 No installs recorded \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 App Version: 1.0 \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 Mandatory: No \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 Release Time: 14 minutes ago \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 Released By: edmundmai@gmail.com \xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 Staging \xe2\x94\x82 abc123xGp-l0eMKT0xH10_QxVQCkNyRzl4z0Z \xe2\x94\x82 Label: v1 \xe2\x94\x82 No …Run Code Online (Sandbox Code Playgroud) 我遇到了代码推送框架,它允许开发人员推送移动应用程序的 OTA 更新,该更新是内置的cordova,react-native无需在 play/apple store 上滚动更新以进行小修复。
我相信代码推送有他们的 SDK cordova,react-native并且在他们的 SDK 中,他们试图从存储库中提取代码,然后在没有编译的情况下做一些事情来在构建中进行更改。如何在不重新编译和构建应用程序的情况下获取最新更改并将它们反映在应用程序中。
苹果是否允许它以静默方式获取应用程序的 OTA 更新?
我将开发一个本机应用程序。我想在开始工作之前做出一些选择技术堆栈的良好决定。
我确信的功能:
1)对于用户身份验证,数据存储,离线同步,Firebase做得很好,我很高兴将Firebase用于这些功能。
有问题的功能
2)现在,我想偶尔在应用程序中仅在特定时间段内添加某些选项(节日季节优惠,或为特定用户提供其他功能,等等),例如:像一个额外的菜单按钮选项,然后单击在该菜单中,我将显示报价,并且一周后,我希望该菜单再次消失。
注意:我不希望用户每次提供某些优惠或新功能时都继续更新其应用程序。
现在,要实现此功能,我遇到了Firebase Remote Config和Microsoft CodePush?
我想知道使用这两者可以实现的目标。看来Firebase远程配置只能更新UI,但是Codepush可以更新JS文件并可以更新App本身,但是我不确定并感到困惑。哪一个更适合我实现上述功能?
编辑:请也参阅我的评论。
android firebase react-native code-push firebase-remote-config
第一次加载我的应用程序时,它崩溃并显示以下错误:
facebook::react::Recoverable: Could not open file/data/user/0/****/files/ReactNativeDevBundle.js: No such file or directory
在阅读类似问题后,它指出我的应用程序版本和 codePush SDK 可能存在问题,但是两者的版本控制似乎都没有问题。
有谁知道发生了什么?如果我终止该应用程序并在 android 模拟器中重新打开,则该应用程序可以正常运行。
android reactjs react-native code-push visual-studio-app-center
我正在尝试实施 AppCenter CodePush 来更新 Javascript 代码,而无需经过 App Store 审核流程。
我已按照此处提到的 iOS 和 Android 步骤来设置多部署环境: https://github.com/microsoft/react-native-code-push/blob/master/docs/multi-deployment-testing-ios。 md https://github.com/microsoft/react-native-code-push/blob/master/docs/multi-deployment-testing-android.md
版本
"react-native": "0.59.10"
"react-native-code-push": "^5.6.1"
我在 Android 上尝试过,react-native run-android --variant release在 iOS 上我将 RUN 和 Archive 方案更改为 STAGING。但在这两种情况下,他们似乎都是像这样获取我的包[CodePush] Loading JS bundle from "assets://index.android.bundle",而不是从 CodePush 存储库中获取。这是我看到的唯一输出(CodePush 相关)。
我制作了一个 codePush 版本,如下所示appcenter codepush release-react -a name/appName-1 -d Staging:此命令成功,我在 iOS 和 Android 暂存环境中看到它具有正确的版本。
组件已挂载
componentDidMount() {
codePush.notifyApplicationReady();
...
codePush.sync({
updateDialog: true,
installMode: codePush.InstallMode.IMMEDIATE
});
}
Run Code Online (Sandbox Code Playgroud)
导出应用程序
App = codePush({
checkFrequency: codePush.CheckFrequency.ON_APP_RESUME …Run Code Online (Sandbox Code Playgroud) react-native code-push react-native-code-push react-navigation
我将把 codepush 应用于 React-Native。
该应用程序目前已分发到商店。我还没有应用codepush。
但我有一个问题。
例如,假设商店中部署的应用程序版本为v1.0.0。我们应用了 codepush(登台、生产)来将版本 v1.0.1 分发到商店。
另外,我们需要简单的代码修改,而不是原生代码,因此我们将其分发到 codepush 生产环境而不是商店。
这种情况下,应该如何管理版本呢?我是否将其更改为v1.0.2?
在上面的例子中,问题是商店版本是v1.0.1,codepush版本是v1.0.2。使用codepush的用户将收到对应于v1.0.2的捆绑程序更新,但版本早于v1.0.1的用户将无法收到更新。
那么,分发codepush,也分发到商店好不好?
我在使用codepush进行内部测试时没有这个顾虑,但我正在尝试将其应用到商店中分发的应用程序中,因此我不知道如何处理版本控制。
有人可以帮助我吗?
javascript versioning react-native code-push react-native-code-push
如何使用 monorepo 在 appcenter 上构建/分发 React Native 应用程序?我尝试过 lerna 和 nx,但都没有成功。
react-native code-push lerna visual-studio-app-center nrwl-nx
我不小心用临时密钥推送了二进制文件。除了明显的命名差异之外,这两个阶段(就 cli / library 设置而言)是否有任何真正的区别?
我在尝试使用暂存环境推送更新时会遇到问题吗?
我似乎无法弄清楚这一点。有人可以帮我解决这个问题吗?我正在使用 CodePush 上传我的应用程序,并且我希望 Sentry 处理我的错误,因为应用程序中心诊断不是很好。
我的应用程序的根组件中有这个......
if (process.env.NODE_ENV === 'production') {
Sentry.config('****',{
deactivateStacktraceMerging: false
}).install();
codePush.getUpdateMetadata().then((update) => {
if (update) {
Sentry.setVersion(update.appVersion + '-codepush:' + update.label);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我有一个部署包脚本,它将部署到 codepush 并运行在其文档中找到的哨兵命令
appcenter codepush release-react -a account/project --output-dir ./build && export SENTRY_PROPERTIES=./ios/sentry.properties && sentry-cli react-native appcenter account/project ios ./build/codePush
每当我捕获到一个错误或捕获到一个错误时,我都缺乏有关哪个文件引发错误的实际信息,并且我会There was 1 error encountered while processing this event在顶部看到Source code was not found for app:///main.jsbundle当我展开它时的信息。
我觉得这一定是因为哨兵没有正确连接到 codepush 来获取我的源映射?
code-push ×10
react-native ×8
android ×2
cordova ×2
firebase ×1
ios ×1
javascript ×1
lerna ×1
nrwl-nx ×1
reactjs ×1
sentry ×1
versioning ×1