欢迎来到游易

VIP安装 - 应用安装失败原因排查

发布时间:2019-09-05

App再次安装

原因:设备上已经安装了这个App,且已经安装的 App 和要安装的 App 是用不同证书打包的。这种情况下,也会造成 App 安装失败。

解决的方式:开发者只需将设备上原来已经安装的 App 删除,再重新安装新的 App 即可。

系统版本不符

原因:App 支持的 iOS 系统版本,和当前设备系统版本不符。App 支持的 iOS 系统版本过低或者过高,都可能导致 App 无法安装成功。例如,如果某个 App 设置了只支持 iOS 7.0 以上的系统时,那么,如果在 iOS 6.1 系统上安装时,肯定是无法安装成功。

未正确设置 Architecture

原因:开发者在生成App安装包时,没有在 Xcode 中设置正确的 Architecture。iOS 应用的 Architecture(架构),决定了这款 iOS 应用可以在哪些设备机型上安装。例如,如果某个应用在 Xcode 中只添加了 arm64 这一种 Architecture, 那么最终打包后的安装包文件上传到啄木鸟在线后,对于 iPad mini、iPhone5 等以下设备,都是无法安装的(因为这些设备都不是 arm64 架构)。换句话说,如果需要在某个设备上可以安装,App 就必须支持那个设备的 Architecture。 所以,正确的解决方法是,在生成 App 安装包时,尽可能让 App 支持更多的 Architecture。

解决的方式:在 Xcode - Build Settings - Architecture 中,增加 armv7、armv7s、arm64,以便所有设备都可以安装。然后,将 "Build active architecture only" 设置为 NO。对于各个 iOS 设备支持的 Architecture 类型。请点击这里查看。 因此,解决的方法也很简单,我们应该尽量让 App 尽可能支持更宽泛的系统版本。

具体操作方式是:在 Xcode - General - Deployment Info - Deployment Target 中,给 App 设置一个尽量低的版本,例如 iOS 5.0。

未设置 LSRequiresIPhoneOS

原因:Info.plist 文件中的LSRequiresIPhoneOS 没有设置,或者设置了 NO。对于 iOS 的 App 来说,如果Info.plist 文件中的LSRequiresIPhoneOS 没有设置,或者设置了 NO,那么由 Xcode 导出的安装包(.ipa 包),就不会包含 Payload 文件夹,而是被一个叫做 Applications 的文件夹代替。这样的安装包在安装时,会被 iOS 判定为无效的安装包,所以无法被正确安装。

解决的方式:只需要将Info.plist 文件中的LSRequiresIPhoneOS 设置为 YES,然后重新打包即可。

具体操作为:在 Xcode 中打开 Info.plist 文件,然后检查 LSRequiresIPhoneOS 是否已设置,如果没有设置,就添加一个,然后将 LSRequiresIPhoneOS 的类型设置为 Boolean,值设置为 YES。 设置好以后,可以看到 Info.plist 文件中显示 Application requires iPhone environment 的值为 YES。

网络问题

原因:网络出现中断或异常。遇到这种情况,用户可检查自己手机的所连接的网络是否稳定、速度是否正常等。可以尝试一下其他网站,或者更换一个 Wi-Fi,或者由 Wi-Fi 换成 3G/4G 等,然后重新安装。用这样的方式尝试后,一般都可以解决问题。




微信客服