Xocde真机调试iOS13.2解决Could not locate installed application问题

2019-10-29 17:17:16

1. 发现Could not locate installed application问题:

今天购买了一台iPhone7,计划进行真机调试,通过MacBook的xcode连接后,发现从building编译,提示building success,到复制copying到文件到手机,一切正常,当Xcode提示正在运行(running)APP时,iPhone上并无任何动静。稍等一会儿,Xcode提示Could not locate installed application,后跟一行小字:Could not locate installed application Install claimed to have succeeded, but application could not be found on device. bundleId = (应用包名)

2. 尝试不成功的解决方案:

2.1 重新插拔数据线:数据线会导致设备暂时无法连接的问题,但无法安装应用的问题可能与之关系不大。如果觉得数据线有问题,可以用其他软件,比如MacOS上的Finder或者Windows上的iTunes或各种苹果助手,通过数据线连接手机看看,如果可以正常连接,那就不是数据线的问题。

2.2 清除已经编译的文件,重新编译:


Product -> Clean.
Window -> Projects -> Select your project and delete derived data.
Close XCode.
Reopen project.

在Xcode中做如上操作,完成重新编译的步骤。再次运行。

当然,如果你使用的是Ionic+Codorva的组合,那么你可以通过命令:


ionic codorva platform remove ios
ionic cordova add add ios

重新编译好后,用Xcode打开project,再点击三角号,重新运行。

该方法适合可能存在编译问题或者不匹配的情况,我这里依然无效。

2.3 升级系统的ios版本

升级和重启,是解决各种电脑问题的不二法宝。于是我将iPhone7的iOS版本从12.1升级到13.2,然而,我遇到新问题。

3 如何用Xcode调试最新版本的iOS系统(13.2),如果真机调试时,提示Could not locate device support files怎么办?

升级真机iPhone的IOS到最新版本后,通常会遇到Xcode仍然是老版本的情况,这个时候,Xcode在编译时,也会很贴心的提醒,让你更新Xcode的版本。结果你去App Store搜索Xcode,才发现软件已经是最新版本了。

这是因为通常Xcode的正式更新要比IOS系统的正式更新要滞后,例如对于IOS13.2的支持,实际已经添加到Xcode 11.2 Beta2版本中了,而App Store中提供的仍然是最新的正式版本,该版本Xcode的支持到IOS13.1,怎么办呢?

3.1 进入Finder,找到Application,找到Xcode,右键显示包内容(show packega content),不同翻译可能不一致,应该是第二项,也就是打开下面的那项。

3.2 进入下面的路径:


Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

3.3 下载Xcode对IOS13.2的支持文件,双击解压,然后复制到上门的路径中。

给Xcode手动增加iOS13.2支持文件

Xcode中对iPhone的iOS各版本的支持文件下载地址:

链接: https://pan.baidu.com/s/1GpntO2FO91lm6MBscgVDjg 提取码: pf3y

这时,你的Xcode就可以通过最新iOS系统的iPhone真机了。

4 Could not locate installed application解决方案:

由于新版的Xcode采用新的编译方式,这种编译方式对于部分iPhone可能不兼容,特别是当我们通过Xcode首次调试新的iPhone的时候。

4.1 进入Xcode,点击下面的路径:


File > Workspace Settings.../Project Settings > Build System > Legacy Build System

Xcode切换编译系统到Legacy Build System

4.2 确定后,使用原来的编译方式,编译一次App,App终于可以在iPhone真机上运行啦!

4.3 小技巧:第一次成功运行后,你可以在iPhone上长按App的图标,卸载App,然后回到Xcode,按照第一步的设置路径,将编译方式改回新的默认方式。然后,点击你的iPhone,Add Addtional Simulators...,点Devices,勾选Connect via network。

勾选Connect via network,允许Xcode通过网络调试真机iPhone

这样以后,只要iPhone和Mac在同一网络内,不用数据线,你也可以使用新的编译方式来调试运行app啦!


作者:吴小宇 深圳市特航航空有限公司 前端工程师