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

问题描述:

而不是使用网络服务来获取当前的应用程序版本号并在我的代码中比较它以弹出更新警报,有什么方法可以直接从App-Store/i-Tunes获取应用程序版本号?我们可以从App Store获取iPhone版本的应用程序版本号吗?

经过所有的评论纠正我,如果我错了。

  1. 我们不应该表现出本地通知(如警报)与用户关于编程的新更新的可用性?

我虽然通过HIG指南,但无法打出这样的经验。所以在决定时很困惑。

+0

为什么你需要这样做? – BoltClock

+0

由于网络服务是由第三方提供的,他们有很多的专家来添加标签,所以试图跳过这是坦率:) –

+0

因此,创建自己的网络服务。 –

这样的警报更新肯定会违反Apple准则。对于iOS设备,App Store应用会显示应用警报,其中会显示可用更新数量的徽章。开发人员无需做任何事情。

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

但是,存在一些拙劣的方法,通过这些方法您可以发现,这是您更新后的第一次运行,无需联系任何Web服务或iTunes/App商店。

一个已知的对我黑客:

获取图书馆目录路径 -

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

LIBPATH会是这样的 - 在/ var /移动/应用/ 8CFB747F-9446-44CB-98B9- C6FF1CF7BF93/Library

这个随机字符串在/ Library随每次更新而改变。您可以将此字符串保存在NSUserDefaults中,并在每次启动时将路径与保存的字符串进行比较。如果发现字符串不同,这意味着这是您更新后的第一次运行。显示更新提醒!然后用新的更新保存的字符串。

HTH,

阿克沙伊

+1

但许多应用程序通常会向用户弹出消息提示“新更新可用”,我不觉得这是违反苹果指南的, –

+0

如果我是对的,他希望从应用商店获取版本号,而不是添加标签在网络服务? –

+0

你能举一个这样的应用程序的例子吗?即使存在,也并不意味着它不违反HIG。 – Akshay

是。您可以在itunes.apple.com服务器上执行HTTP请求,同时模仿iTunes的用户代理字符串,在应用商店中为您的应用的网址分析返回的HTML或XML,以找到版本字符串,可能会或可能不会被Apple审批团队接受。但这不太可能是值得的,它也表现出不寻常的和意想不到的用户体验。

+0

他们不会有某种握手吗?我怀疑是否有人可以轻松地构建应用商店应用程序。 – Akshay

+0

有很多perl脚本和周围的网络,使用这种技术从iTunes中抓取数据。目前很多人似乎仍然工作。当然,苹果可能会修改iTunes在未来做一些不同的事情。所以YMMV。 – hotpaw2