我们可以从App Store获取适用于iPhone的应用程序版本号吗?

时间:2011-09-29 05:34:29

标签: iphone objective-c app-store version itunes

没有使用网络服务获取当前应用程序版本号并在我的代码中将其与弹出更新警报进行比较,有没有办法直接从App-Store / i-Tunes获取应用程序版本号?

如果我错了,在完成所有评论之后纠正我。

  1. 我们不应该以编程方式向用户显示有关新更新可用性的本地通知(作为提醒)
  2. 我通过了HIG指南,但是不能指望这样的creteria。在决定时很少有困惑。

2 个答案:

答案 0 :(得分:3)

像这样的警报更新肯定会违反Apple指南。对于iOS设备,App Store应用程序会显示应用程序警报,并带有显示可用更新数量的徽章。开发人员无需做任何事情。

如果您担心用户错过了应用更新,请放心,iOS用户会关注应用商店应用&知道所有更新都通过它。

然而,有一些黑客的方法可以让你知道这是你在没有联系任何网络服务或iTunes / App商店的情况下更新后的第一次运行。

我知道的其中一个黑客:

获取库目录路径 -

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

libPath将类似于 - / var / mobile / Applications / 8CFB747F-9446-44CB-98B9-C6FF1CF7BF93 / Library

/库之前的随机字符串随每次更新而变化。您可以将此字符串保存在NSUserDefaults中,并在每次启动时将路径与保存的字符串进行比较。如果发现字符串不同,则表示这是您在更新后首次运行。显示更新警报!然后用新的字符串更新保存的字符串。

答案 1 :(得分:0)

是。您可以向itunes.apple.com服务器发出HTTP请求,同时模仿iTunes的用户代理字符串,在App Store中为您的应用程序的URL,并解析返回的HTML或XML以查找版本字符串, Apple批准团队可能接受也可能不接受。但这不太可能值得,它也提供了一种罕见且意想不到的用户体验。