码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 应用安装失败原因排查

时间:2015-08-13 14:01:34      阅读:660      评论:0      收藏:0      [点我收藏+]

标签:

前言

iOS 的内测应用在安装时,很多人都遇到过安装失败的情况,安装失败的原因比较多,下面我们将一些常见原因总结如下,方便开发者进行排查。

应用安装过程中提示"无法下载应用程序"

原因一:在导出 iOS App 的安装包文件(.ipa文件)时,选择了 App-Store 方式。

...

原因二:在导出 iOS App 的安装包文件(.ipa文件)时,选择了 Ad-hoc 方式,但是没有添加设备 UDID。

...

原因三:在导出 iOS App 的安装包文件(.ipa文件)时,选择了 In-house 方式,但是证书已过期。

在导出 iOS 的安装包文件时,如果选择了 In-house 方式(一般用于苹果企业开发者账户),此时,如果出现无法安装的情况,开发者可以检查一下自己的企业开发者证书是否已过期。因为苹果对于企业开发者证书管理较为严格,所以开发者如果使用不当,可能会导致企业证书被封,被封后的企业证书导出的安装包,也是无法正确安装的。

原因四:开发者在生成App安装包时,没有在 Xcode 中设置正确的 Architecture。

iOS 应用的 Architecture(架构),决定了这款 iOS 应用可以在哪些设备机型上安装。例如,如果某个应用在 Xcode 中只添加了arm64 这一种 Architecture,那么最终打包后的安装包文件上传到蒲公英后,对于 iPad mini、iPhone5 等以下设备,都是无法安装的(因为这些设备都不是 arm64 架构)。换句话说,如果需要在某个设备上可以安装,App 就必须支持那个设备的 Architecture。

所以,正确的解决方法是,在生成 App 安装包时,尽可能让 App 支持更多的 Architecture。

具体操作方法是:在 Xcode - Build Settings - Architecture 中,增加 armv7armv7sarm64,以便所有设备都可以安装。然后,将 "Build active architecture only" 设置为 NO。对于各个 iOS 设备支持的 Architecture 类型。

 

"Build active architecture only" 设置为 NO

原因五:App 支持的 iOS 系统版本,和当前设备系统版本不符。

...

原因六:开发者上传的是一个破解的 ipa 安装包,或者是一个使用破解 Xcode 方式打包生成的 ipa 安装包,或者是通过 iTunes 生成的 ipa 安装包。

...

原因七:设备上已经安装了这个App,且已经安装的 App 和要安装的 App 是用不同证书打包的。

...

原因八:Info.plist 文件中的LSRequiresIPhoneOS 没有设置,或者设置了 NO

...

原因九:网络出现中断或异常。

...

在 iOS 8 上安装时,没有任何反应

这个是由于 iOS 8 的一个 bug 造成的,开发者可以尝试在应用设置中,将“iOS 8 安装修复”的功能打开,然后重新安装应用。

安装 iOS 应用时,出现提示“无法连接到 ssl.pgyer.com”

这个问题一般是由于用户的网络,或者手机缓存错误造成的,可以尝试如下两个方法来解决:

  • 重启手机,然后尝试重新安装。
  • 换一个网络环境,例如换一个 Wi-Fi 热点,或由 Wi-Fi 换成 3G/4G 等,然后重新安装。

用这样的方式尝试后,一般都可以解决问题。

根据 iOS 的安装日志排查失败原因

如果根据以上的方式进行排查后,依然无法解决问题,那么可以试试使用蒲公英的 Mac OS 客户端来查看一下安装日志。

蒲公英的 Mac OS 客户端中,提供了实时查看 App 安装日志的功能,开发者可以方便的根据 App 的安装日志,来准确的判断具体安装失败的原因。

 

 

以上摘自:http://www.pgyer.com/doc/view/ios_install_failed

 

 

我遇到的问题是编译选项

"Build active architecture only" 设置为 了YES

问题原因解释如下:

 

这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。

而设置为no时,会编译所有的版本。

这个是设备对应的architecture:

armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G

armv7s:iPhone5, iPod5

 

编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。

所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。

 

iOS 应用安装失败原因排查

标签:

原文地址:http://www.cnblogs.com/lfei/p/4726955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!