在苹果app开发中,经常会遇到各种各样的问题,相比于安卓开发中的千奇百怪,苹果开发更有逻辑通用性,今天来记录一下,苹果开发中遇到No such file
的解决办法和思路。
前言
此类问题分为两种,这里从编译失败报错
和正在编译时报错
来描述问题和解决方法。如有遇到其它问题,请及时留言获取帮助。
编译失败报错
报错内容如下图
一般报错内容为:
Failed to load Info.plist from bundle at path /var/installd/Library/Caches/com.
apple.mobile.installd.staging/temp.JpeApp/extracted/hellow.app/Frameworks/
Moonlight.framework; Extra info about "/var/installd/Library/Caches/com.apple.
mobile.installd.staging/temp.JpeApp/extracted/hellow.app/Frameworks/
Moonlight.framework/Info.plist": Couldn't stat /var/installd/Library/Caches/com.apple.
mobile.installd.staging/temp.JpeApp/extracted/hellow.app/Frameworks
/Moonlight.framework/Info.plist: No such file or directory
这种报错出现于编译构建前,可以很明显的看到是我们导入的库出现了问题,如上述中的Moonlight.framework这个库。将此库在xcode项目路径中的位置删掉,重新导入引用路径即可,如下
编译时报错
报错内容如下图:
可以很明显的看到,是这个WVOOECGSDK
文件出现了问题,这里我们再细分两张情况进行排查。
需要嵌入库的标识
进入 Xcode 》点击General 》 找到Frameworks,Libraries,and Embedded Content 在其中找到对应报错的文件库,如下图切换为embed & sign
模式。
切换后 按住command + shift + K
清缓存后重新安装。看看运行是否还有问题,如还有问题可查看第二个分类进行路径重新引用。
对库的引用路径重新定义
进入 Xcode → Build Settings → 搜索找到 Runpath Search Paths 并设置为对应文件库所在路径
如下:
一般库类文件放置在frameworks路径下,导入也在此库,这里设置为@executable_path/Frameworks
进入 Xcode → Build Settings → 搜索找到 Framework Search Paths 并设置为对应文件库所在路径
为$(inherited) $(PROJECT_DIR)
设置完后清缓存重新安装即可。
注意:如导库后还是报错之类问题,请查看对应库文件如sdk是否需要嵌入库的标识,如有需要请按照上述进行完成,如有其他问题可留言回复。