iOS 8 的公布(如今是 iOS8.1),并非对全部人来说都是值得高兴的事情。

对那些使用企业部署(不经过商店公布)的 app 开发人员来说,又被苹果坑到了。

由于 iOS 8 的一个Bug。导致企业部署再次出现了问题(记得上次是 iOS 7 升级)。

这个问题不管是在苹果开发人员论坛,还是 stackoverflow,都已经吵翻天了。

https://devforums.apple.com/thread/239351

https://devforums.apple.com/message/1063293#1063293

让我们再次来回想这个 Bug:

1、假设用户设备在 iOS 7 下安装了此 app(OTA 方式),那么当用户升级至 iOS 8后。将无法再安装此 app(不管是否删除后再安装,还是直接update)。

设备日志中输出此错误:

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: <bundle id>

2、iOS 7 下无此问题。

假设用户在升级至 iOS 8 之前,并未安装过此 app。则升级至 iOS 8 后不管升级还是安装此 app 都正常。

3、在 iOS 8 下。当用户点击安装button。Safari 无法返回桌面。换句话说,window.close() 脚本无效了。

4、以上问题都是指 OTA 方式安装,用 itunes 安装则无问题。

5、重置设备(还原全部设置)能够解决此问题。

6、改动 Bundle ID 也能够解决此问题,但桌面上会出现新的图标,也就是说。假设你的 app 升级过 1 万次,那么桌面上会有 1 万个这个 app 的图标。

此 Bug 从 iOS 8 beta 開始。到 iOS 8.1,一直存在。

有人已经提交了一个 Radar :Filed #18657553

但苹果不是装聋作哑,就是糊弄了事。

笔者为此使用了DTS(Apple Developer Support)一年两次技术支持的机会。联系了苹果。但得到的答复(两封电子邮件)却是须要购买 App Care($99 or $695)。笔者不禁要问:每年 $299 的 DTS 就是让苹果发给我两封电子邮件而丝毫不解决不论什么问题?

再次感叹:苹果。真 tm 坑爹啊!