CodePush:如何部署到同一部署配置的多个构建版本?

2023-12-26

我了解理想情况下的部署模型,即所有用户始终将其应用程序更新到最新的应用程序商店版本。但实际上他们没有。如何使用 CodePush 处理反应原生 iOS 应用程序的不同构建版本?考虑以下两种情况:

1) 我一直在使用 CodePush 将新的 js 捆绑包部署到我的应用程序的 1.0.0 版本。现在我发布了 1.1.0 并希望通过 CodePush 提供新代码。据我所知,现在有一种方法可以同时部署到 1.0.0 和 1.1.0,既不需要不同的包,也不需要相同的包。因此,一旦我将捆绑包推出到 1.1.0,就无法更新未通过应用程序商店更新的 1.0.0 应用程序。

2)据我所知,解决此问题的一种方法是仅发布具有增加的内部版本号(CFBundleVersion)但版本字符串(CFBundleShortVersionString)不变的新版本。但这会产生这样的效果,即使是新下载的最新应用商店版本(例如 1.1.0(8))也始终会首先在 codepush 上加载最新的捆绑包。

有没有一种方法可以干净地完成此操作并且无需进行不必要的更新?


我们计划很快优化这个场景,因为正如您提到的,我们意识到这种需求是多么普遍。

同时,我们建议支持此操作的方式(以及我们的许多用户当前正在执行的操作)是在与现有 1.0.0 部署相同的 CodePush 应用程序中为您的 1.1.0 版本创建一个新的 CodePush 部署,并且在将 1.1.0 提交到商店之前,更新您的 Info.plist 文件以指向新的部署密钥。

这样,您就可以向 1.0.0 用户和 1.1.0 用户发布更新。如果您想向两者发布相同的更新,则必须运行发布命令两次,但如果您有仅针对其中一个的更新,则只需将其发布到相应的部署即可。

这个解决方案对人们来说效果很好,并且具有非常明确地说明如何并行管理多个二进制版本的“好处”,但它显然也是一种 hack-ish,并且比应有的更冗长/笨重是。

我们将在下个月简化这种体验,我很乐意收到您关于我们如何最好地适应您的场景的反馈。如果您有任何其他问题/等,请随时直接给我发电子邮件([电子邮件受保护] /cdn-cgi/l/email-protection).

Thanks!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CodePush:如何部署到同一部署配置的多个构建版本? 的相关文章

  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • iphone:使用 iOS 5 和 Xcode 4.2 提交应用程序? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个在
  • Sprite Kit - 确定轻弹精灵的滑动手势矢量

    我有一个游戏 圆形物体从屏幕底部射出 我希望能够滑动它们以将它们朝我滑动的方向轻弹 我的问题是 我不知道如何计算滑动的矢量 方向 以便使圆形物体以适当的速度向正确的方向轻拂 我使用的静态矢量 5 5 需要通过滑动速度和滑动方向来计算 另外
  • VirtualizedList:您有一个很大的列表,更新速度很慢

    我使用 FlatList 来处理大量项目 我收到来自 Expo XDE 的以下警报 VirtualizedList 您有一个更新速度很慢的大列表 make 确保你的 renderItem 函数渲染遵循 React 的组件 性能最佳实践 例如
  • 如何获取多点触摸 UITapGestureRecognizer 的多个位置

    我的视图中有一个 UITapGestureRecognizer 我可以使用下面的代码很好地获取其触摸的位置 现在 如果我将此识别器的触摸次数更改为 2 或更多 它仍然会为我提供一个位置 如何获得两次触摸的两个位置 tapGesture lo
  • 如何执行 UIAlertAction 的处理程序?

    我正在尝试编写一个帮助程序类以允许我们的应用程序支持两者UIAlertAction and UIAlertView 然而 当写alertView clickedButtonAtIndex 方法为UIAlertViewDelegate 我遇到
  • 正在解除分配时尝试加载视图控制器的视图... UISearchController

    我有创建一个的代码UISearchController in my UIVIew sviewDidLoad self resultSearchController let controller UISearchController sear
  • Swift 中 UIViewController 子类成员的双重初始化

    我想制作一个自定义容器视图控制器并向其子类添加一些成员UIViewController 当我尝试使用以下代码从应用程序委托初始化它时 self window UIWindow frame UIScreen mainScreen bounds
  • Braintree DropIn + Apple Pay,未出现 Apple Pay 项目

    我成功调用DropIn来自 Braintree SDK 的视图 这BTDropInRequest设置应显示三项 PayPal 信用卡 苹果支付 但由于某种原因在DropIn视图仅呈现两个项目而不是三个 PayPal 信用卡 我做错了什么 准
  • 我以前没见过的 CGRect 语法

    我在一些示例代码中看到了下面的语法 但不确定我是否理解它 CGRect imageRect CGRect size baseImage size 这只是初始化的一种简写方式吗CGRect相当于 CGRect imageRect CGRect
  • 设置使用 iPhone 相机拍摄的图像的类型

    如果我们使用 iPhone 相机拍摄照片 图像将默认以 JPEG 格式保存 我想以其他格式 例如 PNG 保存捕获的图像 是否可以 当我们从应用程序调用 iPhone 相机时 是否可以通过代码执行此操作 我们可以设置捕获图片后必须保存的图像
  • NSPredicate 查询不包含特定字符串

    对这个问题进行了高低查找 但找不到我的答案 我正在查询核心数据以查找不等于指定字符串的所有记录 例如 所有不等于当前会话ID的记录 我已经尝试过这些但无济于事 NSPredicate predicate NSPredicate predic
  • 在 UITableView 中设置滚动位置

    我有一个应用程序 其工作方式与 iPhone 的 联系人 应用程序的工作方式有些相似 当我们添加新的联系人时 用户将被定向到包含联系人信息的仅查看屏幕 如果我们从导航栏中选择 所有联系人 用户将导航到查看最近添加的联系人的所有联系人列表 我
  • 如何在 Monotouch 中对 UIImageView 进行运动模糊效果?

    在 MonoTouch 中进行实时运动模糊的方法是什么 当滚动惯性图片库时 我需要在 UIImageView 上应用运动模糊效果 以强度和方向作为参数 就像在 Photoshop 中一样 我在 CocoaTouch 或 CoreAnimat
  • 如何使用 Unity 在 Android 设备上以各种宽高比显示游戏的相同部分?

    我从 Libgdx 引擎转向 Unity 是一名初级程序员 我尝试在 Unity 中为 Android 和 iOS 设备制作游戏 但在宽高比 分辨率缩放方面遇到问题 在 Libgdx 中 如果您开发了一些东西 您可以指定 默认 分辨率 并且
  • 应用程序在第二次运行 nsnull 计数的循环时崩溃

    我有一个循环 第一次运行正常 但第二次循环时我得到 NSNull count unrecognized selector sent to instance 0x3a094a70 Terminating app due to uncaught
  • CNContact 添加新的联系人问题

    我在通过以下方式添加联系人时遇到问题联系框架 我使用的是装有 iOS 12 1 2 的 iPhone 5s 设备 我添加联系人的代码如下 let saveRequest CNSaveRequest saveRequest add self
  • Xcode 不会在故事板中显示我的文本字段占位符文本

    当我在属性检查器中分配文本字段的占位符值时 它不会显示在故事板中 但是 当我运行应用程序的模拟器时 它就在那里 我缺少什么设置吗 我只想能够在编辑器中看到占位符文本 下面是 xcode 和模拟器之一的屏幕截图 我遇到了同样的问题 幸运的是我
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁

随机推荐

  • CloudFront 分发和 AWS 颁发的证书给出 SSL_ERROR_NO_CYPHER_OVERLAP

    我无法使用 AWS 证书使 Internet CloudFront S3 Bucket 正常工作 这就是我所做的 创建了一个证书 一个通配符证书 例如 mydomain example 创建了一个 S3 存储桶 无需修改属性 创建 Clou
  • 无法向(猫鼬)对象添加附加元素

    我有一个 Nodejs Express 应用程序 带有一个 api 用于从 mongodb 数据库返回数据 这是我的猫鼬模型 const bookingSchema new mongoose Schema timestamp type Da
  • 如何在使用 Jquery 单击 TR 时获取所有 TD 数据

    我有一个包含多行的表 我想在单击特定行后获取所有 TD 数据 我的桌子是 table tr class person td class id 1900 td td class name John td td class gender Mal
  • Perl - while (<>) 文件处理[重复]

    这个问题在这里已经有答案了 一个简单的程序while lt gt 处理作为参数给出的文件 program 1 file 2 file 3 file 和 Unix 系统的标准输入 我认为它将它们连接在一个文件中 并且逐行工作 问题是 我如何知
  • Django - 保存用户后获取用户ID

    我正在使用 Python 3 7 和 Django 2 2 开发一个项目 其中我为多种类型的用户实现了模型 并通过使用组合模型MultiModleForm在前端显示为单个表单 之后当我尝试在视图中创建用户并调用保存方法时user模型并尝试得
  • 设置 phpmyadmin 登录启用

    我想在进入 directlt 之前启用 phpmyadmin 的登录页面 为此 我在 config inc php 中修改了该行 cfg Servers i AllowNoPassword true to cfg Servers i All
  • 如果在树视图中选中任何单个子节点,则选择父节点

    我有一个具有一些父节点和子节点的树视图 如果选择子节点 则应选择父节点 此功能工作正常 但如果父节点有多个子节点 并且我检查了多个子节点并取消选中单个子节点 则父节点将被取消选中 我已经完成了一些代码 用于在选择子节点时选择父节点 priv
  • 在Cocoa中打印WebView的全部内容,而不仅仅是显示

    所以我目前正在尝试打印一个已加载到 Cocoa 应用程序中的 WebView 中的 pdf 该 PDF 的大小适合您想要查看整个内容时必须滚动的位置 问题是 每当打印时 它只打印 WebView 中当前显示的内容 而不是整个页面 代码如下
  • 在 swift 中创建 json

    我想在 swift 中创建一个像这样的 json test1 0 test2 1435659978 test3 1430479596 我怎样才能创建这个json 创建您的对象 在本例中是一个字典 let dic test1 0 test2
  • 如何打开Linux默认的文本编辑器?

    我需要在没有文件的情况下打开 Linux 中的默认文本编辑器 我知道我可以使用该命令xdg open https wiki archlinux org title User Larivact xdg open在默认编辑器中打开文件 但我需要
  • python 多处理/线程代码提前退出

    我正在尝试创建多个进程 每个进程调用多个线程 我正在使用 python3 5 运行以下代码 该问题的一个简化示例如下所示 import multiprocessing import time import threading class d
  • 移动到 Cloudfront + SSL 后,应用程序中的 React 路由器链接损坏

    我有一个 React 应用程序 使用托管在 S3 存储桶中的 React router 并使用 Route53 作为 DNS 提供商 该应用程序在 Route53 配置指向 S3 存储桶时运行良好 由于我想使用 SSL 因此我创建了一个指向
  • 底部有锯齿形边框的容器仅适用于边框

    我试图制作一个底部有锯齿形边框的容器 如下所示 我尝试了这个 但我不知道如何获取底部灰色背景的突袭 我只希望边框像图像一样是灰色的 任何人都可以帮忙吗 https jsfiddle net umw8yh21 1 https jsfiddle
  • SpriteKit Swift:触摸移动物体

    我有一个 Color Sprite 对象 它可以在墙上移动和弹跳 当我抓住它并在屏幕上触摸它时 如何使其消失 你必须为你的精灵设置一个名称 例如 ballNode 然后在 touchesBegan 函数中你可以处理它 override fu
  • 如何在不使用 TransactionScope 的情况下使用 EF4 Code First CTP5 分配事务?

    我正在尝试对实时数据库执行功能测试 以确保我的 linq 查询正确转换为 SQL 我想通过使用事务来做到这一点 以便一个功能测试不会影响另一个功能测试 问题是 我无法在 API 中找到任何正确使用事务的方法 我可以检索一个新的DbTrans
  • 使用 JavaScript/jQuery 检测 Android 后退按钮

    目前我想做一个函数来检测Android后退按钮被按下并对其执行一些操作 用户打开应用程序 然后单击按钮 该按钮允许用户打开网站 用户在第2页填写信息 想要返回上一页 点击Android手机上的后退按钮 返回按钮可帮助用户关闭网站并返回到我的
  • SoapUI 模拟异步服务

    在访问真正的 Web 服务之前 我们使用 SoapUI 来模拟 Web 服务来测试我们的应用程序 APP 创建将返回预定义响应的同步模拟服务非常简单 然而我不得不嘲笑一些异步当 APP 发送请求的服务时 SoapUI 立即回复确认 例如 S
  • 箭头(->)运算符优先级/优先级最低,或者赋值/组合赋值的优先级最低?

    JLS https docs oracle com javase specs jls se8 html jls 15 html The 最低优先级运算符是 lambda 表达式的箭头 gt followed由赋值运算符 遵循哪个方向 增加优
  • R - 使用 RCurl 发布登录表单

    我刚开始使用 R 发布表单 然后从网上下载数据 我有一个问题 对于其他人来说可能很容易发现我做错了什么 所以我感谢您的耐心等待 我有一台 Win7 PC Firefox 23 x 是我的典型浏览器 我正在尝试发布显示的主要表格 http w
  • CodePush:如何部署到同一部署配置的多个构建版本?

    我了解理想情况下的部署模型 即所有用户始终将其应用程序更新到最新的应用程序商店版本 但实际上他们没有 如何使用 CodePush 处理反应原生 iOS 应用程序的不同构建版本 考虑以下两种情况 1 我一直在使用 CodePush 将新的 j