如何为 iOS 和 Android 开发应用内更新?
Posted
技术标签:
【中文标题】如何为 iOS 和 Android 开发应用内更新?【英文标题】:How to develop an in-app update for iOS and Android? 【发布时间】:2017-01-06 13:56:01 【问题描述】:supercell 的皇室战争如何在不进入应用商店的情况下在应用本身内更新其应用(功能、内容等)?
是因为它们是 supercell 还是普通人有可能拥有像这样很棒的应用内更新体验?有什么办法吗?
更新:我知道这可以用于 javascript 框架应用程序(react、cordova 等)我要求非 javascript 应用程序(xamarin、swift、obj-c、c++、native 等)
【问题讨论】:
@QuintinBalsdon 那是 javascript 应用程序,有一些指南。我将更新问题以反映我在谈论非 JavaScript 框架应用程序。 简单,他们不会更改应用程序。他们加载新的游戏数据,如关卡目标等。 @rckoenes 这是我的第一个想法,但代码二进制文件已更新。我想知道所有-1票是怎么回事。为什么不是一个公平的问题? @rckoenes 这样我就可以拥有一个“外壳”,其唯一目的是检查更新、下载和启动“我的应用程序包”(不是主要的)? 不,Apple 不允许这样做,从技术上讲,您可以构建它,但您可以。这不是supercell正在做的事情。他们正在下载游戏使用的新关卡。这与某些应用程序下载数据并将其作为音乐播放相同。在审核指南中,您可以找到以下内容:Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other ios, watchOS, macOS, or tvOS apps
【参考方案1】:
您可以下载数据,就像《泰坦之战》一样。 他们下载关卡数据,但不会在主应用程序上打补丁或升级。 由于主包中的所有数据都是只读的,因此您不能直接覆盖它。
还有App Store Review Guidelines 限制这个:
应用程序应独立包含在其捆绑包中,并且不得读取或 将数据写入指定容器区域之外,也不能 下载、安装或执行代码,包括其他 iOS、watchOS、 macOS 或 tvOS 应用程序
【讨论】:
【参考方案2】:一种方法是(对于 android):
-
当您需要更新应用时,通知客户端有新的更新(通过静默推送通知或在应用启动+web api 中)。
接下来下载新的 apk 以指定设备上的位置。
然后使用 this way : Install Application programmatically on android ,为用户设备安装新下载的 apk。
为 IOS 编辑:
-
由于要更新和安装ios应用程序,您需要到AppStore,所以通过上面步骤的第一步,通知用户设备然后引导用户到应用程序AppStore页面进行更新。但它不是自动的,需要用户更新应用程序
我也找到了这个用 ObjectiveC 语言编写的链接tutorial-how-to-implement-in-app-update-functionality-in-your-iphoneipad-app,但我没有用这种方式进行测试,我不确定是否能正确执行
【讨论】:
你知道iOS有没有类似的机制? 实际上我已经没有时间开始 IOS 开发了,而是按照我认为正确的方式编辑我的答案 @Saeid 您的第二个 iOS 链接没有说明更新您的应用程序。当一些人通过 IAP 购买完整版时,它只是一个启用功能的简单开关。 哦,对不起,我不在乎,但正如这里所说:***.com/questions/2221436/…,似乎没有办法为 IOS 自动更新以上是关于如何为 iOS 和 Android 开发应用内更新?的主要内容,如果未能解决你的问题,请参考以下文章
GCM:如何为 android 和 ios 应用程序使用相同的发件人 ID?
如何为Android和IOS实现FIDO2(WebAuthn)
Ionic - 如何为 Android 应用程序的更新版本上传 apk
如何为 Ionic 4 (android / ios) 应用程序创建 google pay?