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/DeviceSupport3.3 下载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
4.2 确定后,使用原来的编译方式,编译一次App,App终于可以在iPhone真机上运行啦!
4.3 小技巧:第一次成功运行后,你可以在iPhone上长按App的图标,卸载App,然后回到Xcode,按照第一步的设置路径,将编译方式改回新的默认方式。然后,点击你的iPhone,Add Addtional Simulators...,点Devices,勾选Connect via network。

这样以后,只要iPhone和Mac在同一网络内,不用数据线,你也可以使用新的编译方式来调试运行app啦!
作者:吴小宇 深圳市特航航空有限公司 前端工程师