【问题标题】:Can we Obtain Version Number of application from App Store for iPhone?我们可以从 App Store for iPhone 获取应用程序的版本号吗?
【发布时间】:2011-09-29 05:34:28
【问题描述】:

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

如果我错了,请在通过所有 cmets 后纠正我。

  1. 我们不应以编程方式向用户显示有关新更新可用性的本地通知(作为警报)?

我查看了 HIG 指南,但找不到这样的标准。在决定时很少感到困惑。

【问题讨论】:

  • 由于网络服务是由第三方提供的,他们有很多标准来添加标签,所以坦率地说,试着跳过它:)
  • 所以创建你自己的网络服务。

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


【解决方案1】:

这样的警报更新肯定会违反 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

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

【讨论】:

  • 但是许多应用程序通常会向用户弹出消息“新更新可用”我不认为这违反了苹果指南,
  • 如果我是对的,他想从应用商店获取版本号,而不是在网络服务中添加标签??
  • 你能举一个这样的应用程序的例子吗?即使存在,也不代表不违反HIG。
  • @akshay:能否请您提供 HIG 中的 ref,这将非常有帮助,因为我没有遇到这样的 creteria。
  • 在我拥有 iPhone 的 3 年中使用的数百个应用程序中,我从未遇到过可以自行提醒您更新的应用程序。
【解决方案2】:

是的。您可以向 itunes.apple.com 服务器发出 HTTP 请求,同时模仿 iTunes 的用户代理字符串,获取应用商店中应用的 URL,并解析返回的 HTML 或 XML 以找到版本字符串,其中Apple 的审批团队可能会接受,也可能不会接受。但这不太可能值得,而且它还提供了一种不常见且出乎意料的用户体验。

【讨论】:

  • 他们不会握手吗?我怀疑是否有人可以如此轻松地伪装成应用商店应用。
  • 网络上有很多 perl 脚本等使用这种技术从 iTunes 中抓取数据。许多目前似乎仍在工作。当然,Apple 可以修改 iTunes 以在未来做一些不同的事情。所以YMMV。
猜你喜欢
  • 1970-01-01
  • 2017-01-12
  • 2014-01-18
  • 2015-09-21
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多