iOS 应用安装失败原因排查

前言

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,以适应不同设备。

时间: 2024-10-31 13:50:10

iOS 应用安装失败原因排查的相关文章

单板注册失败原因排查

步骤如下: 一.看是不是在单板注册时间内 二.看设备是否上电 就是在power on slot ?,看是否显示Null,如果是的话,就是都注册上电了 三.备用主控板的系统的大包和主用主控板不一致 display startup 查看主用主控板的系统大包 PC连接备用主控板的CONSOLE口,查看备用主控板的系统大包是否和主用主控板的一致 解决系统大包不一致的步骤: 1.board-channel-check diable 2.设备通过FTP服务器将软件升级到一致 而升级是通过boot ROM模式

TI CC2540 USB CDC Serial Port驱动安装失败原因及解决方法

买了款具有iBeacon基站功能的USB串口适配器,设备是基于TI公司CC2540芯片的. 一般来说,安装这设备的驱动就像我们用无线鼠标那样,插入USB接口后windows就自动安装了,但是新买的这设备没有,足足弄了好几天(win7 32位,msdn版),才发现是windows update自动更新被我关闭的原因. 驱动安装失败症状如图1,设备管理器里多了个感叹号,手动安装则提示“已找到该设备的驱动程序软件,但在试图安装它时遇到错误,系统知不道指定软件” 图一: 安装失败 进入控制面板--win

eclipse插件--maven的link安装失败原因分析

一.link方式安装eclipse的一款插件:maven     (附:若不熟悉link方式,则进入此处:link方式安装eclipse插件) 其间,只弹出警告,大概意思是:部分内容,未经授权,谨慎使用. 安装完成后重启 eclipse,点击window--preference. 发现没有 maven 项,也搜索不到. 确定安装失败. 查看当前选定的工作空间--.metadata--.log文件. 找到最近时间内的日志,报错,原因是需要jdk1.6或1.7. 将java的环境变量设为1.6,同时

Maven安装失败原因

Maven安装失败: 首先在Maven官网查看,要安装的Maven版本对应JDK的版本要求. 然后可以通过以下命名查看JDK是否一致. javac -version       java -version 如果不一致,则卸载一个. 注意:JDK中的jre版本.

storm初始化Bolt实例,spring bean绑定失败原因排查

public static final String METRICS_AGGREGATE_PERIOD_MILLISECONDS = "metrics.storm.aggregate.period.milliseconds"; @Value("${" + METRICS_AGGREGATE_PERIOD_MILLISECONDS + "}") private long metricsAggregateIntervalMilliSeconds; 上

mongodb连接失败原因排查

安装了mongodb,添加了管理员root和test数据库的用户rex,并且开启的用户认证. 按照说明文档连接mongodb数据库:$mongo = new Mongo("mongodb://rex:[email protected]"); 结果开启firebug之后发现报错:"NetworkError: 500 Internal Server Error - http://192.168.202.132/montest.php" 在这里尝试了很多方法都无法解决,也

Windows 2008驱动安装失败的原因及解决方法

希望这些内容能够帮助各位朋友顺利地在Windows Server 2008系统环境下安装使用好各种设备的驱动程序! 寻找安装失败原因 一般来说,当我们将目标设备的驱动安装光盘正确放置到Windows Server 2008系统的物理光驱中后,系统能够自动弹出驱动程序安装向导窗口,开始安装目标设备的驱动程序,这是因为驱动安装光盘的根目录中常常存在一个名为 “Autorun.ini”的文件,用记事本之类的文本编辑程序打开该文件时,我们会看到其中包含“open=setup.exe”或 “open=in

kali 安装步骤 安装失败 kali install fail 已解决

kali 安装步骤 安装失败原因 fail install (原创  请注明出处) Kali Linux 前身是 BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具.支持 ARM架构. 从CDlinux跳到bt5 r3, 又从bt5 r3跳到kali 终于用到了一款强大的系统. 其支持的arm架构 armel还未使用,现使用x86结构现尝尝鲜.  后面决定把自己的pcduino或树莓派搞成这个系统. 但是kali安装过程中遇到了些头痛事,总结

iOS 7.1下itms-services在线安装失败的解决方法

前段时间,接到客户的求助,主要是关于无法通过safari在线安装企业级应用的问题.经过一系列测试都没有发现相同现象,最后发现客户使用了还原的功能,把iPad的iOS升级到了7.1.网上搜索了一下,发现从iOS7.1开始,之前使用itms-services://URL方式在线安装ipa文件的方法都失效了,主要表现为在点击安装的时候,会报错为:"无法安装应用程序,因xxx.com的证书无效". 主要原因是苹果公司在iOS 7.1中修改了manifest.plist文件的访问协议,把原来的h