iOS 应用更新通知
Posted
技术标签:
【中文标题】iOS 应用更新通知【英文标题】:iOS app update notification 【发布时间】:2012-07-02 06:33:46 【问题描述】:ios 应用更新机制如何运作?如何告诉用户 Appstore 上的应用程序已更新?我是否必须在代码中编写功能以显示更新弹出框,或者它是否由 Appstore 处理以向用户显示应用程序已更新的通知。苹果是否为此提供了任何文档?
【问题讨论】:
您指的是哪个“更新弹出框”?通常,iOS 会在 App Store 应用中提供更新,并带有一个通知徽章,指示有多少应用有更新。 苹果有没有提供这方面的文档? 没有。提醒用户更新的唯一方法是在您的应用的新版本获得批准时通过 APNS 手动发送某种通知。 但是当设备与 Appstore 同步时,设备上的应用程序上会显示一个徽章,表明应用程序更新可用。 您看到的行为是特定于该应用程序的,不是标准 iOS 行为的一部分。 【参考方案1】:您可以使用Harpy:当您的应用的新版本在 App Store 上架时,此模块会触发 UIAlertView。
Harpy 现已弃用。Siren 是从 Harpy 移植过来的,因为 Siren 和 Harpy 由同一开发人员维护。截至 2018 年 12 月,Harpy 已被弃用,取而代之的是 Siren。
【讨论】:
我在一个应用中使用过,我很满意 如何在将应用提交到 Apple Store 之前测试 Harpy? @G.Ganesh 将您的应用在 Xcode 中的版本更改为低于 App Store 中的版本。如果 App Store 中有 1.0.2 版本,则将您的应用版本更改为 1.0.1 并构建+运行您的应用。如果您看到警报,它会起作用。现在,您可以在将应用发布到商店之前将版本更改回原来的版本。 使用 Siren 快速实现 Harpy。同一个开发者。【参考方案2】:-
Apple 提供了一个现有的 API 来从您在 App Store 上的应用程序获取最新的应用程序信息:
http://itunes.apple.com/jp/lookup/?id=app_id
例如:http://itunes.apple.com/jp/lookup/?id=1005582646
例如美国应用程序:http://itunes.apple.com/lookup/?id=myAppIDNumberFromTheAppStore
请注意,这独立于 App Store Connect API。如果你使用它,你需要在发出请求之前生成一个令牌。请先查看 API 上的文档,否则您将得到一个空结果的响应。
https://developer.apple.com/documentation/appstoreconnectapi
https://developer.apple.com/documentation/appstoreconnectapi/generating_tokens_for_api_requests
iTunes API 的响应在 "results"
字段内有一个 "version"
字段。它具有 App Store 上最新版本的版本号。
在AppDelegate->didFinishLaunchingWithOptions
,可以调用上面的API。
-
在用户设备上获取当前版本的方法:
Obj-C.
NSString *currentAppVersion = [[[NSBundle mainBundle]
infoDictionary] objectForKey:@"CFBundleShortVersionString"];
斯威夫特 (4.2)
var currentAppVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
现在您可以比较 1 和 2 的版本号,以便在 App Store 上有更新的应用时向用户显示警报或通知。
【讨论】:
如何测试这个? 请分享所有appstore api的链接以上是关于iOS 应用更新通知的主要内容,如果未能解决你的问题,请参考以下文章
推送通知iOS - 提示应用程序检查资源并在适当时提供本地通知