iOSer 流动性大,到了新公司往往会接手公司之前的旧项目,有之前iOSer维护的还好,能跑起来。往往会有公司外包给三方公司的项目,年代久远,版本低,等等问题,运行不起来。下面我就分析下我接手项目的问题,以及如何解决的,希望对大家有所帮助。
运行Xcode结果如下图:
问题一:
问题描述:可以看到问题居然出现pods里面,个人尝试了很多方法(1.更新pod:pod install--->无效 2.不使用pod,直接导入--->无效)
解决:删除pod 重新导入一次pod ,可以彻底解决pod里面库不能引用问题(可能原因:之前的Xcode版本低,或者库的关联被修改等)
具体步骤可以参考:https://www.jianshu.com/p/5ffb2418354f
问题二:
问题描述:pch文件引用
解决: 项目---TARGETS---Build Settings---Prefix Header(使用相对路径,$SRCROOT/...XXX.pch)
PreCompile Prefix Header 设置为Yes
具体操作如下图:
问题三:
问题描述:Xcode 报错 /usr/local/bin/carthage : No such file or dictionary
解决:
首先检查Mac是否安装Carthage :carthage --version
1.如果没安装,点击 The missing package manager for macOS (or Linux) — Homebrew 安装
brew update
brew install carthage
2.如果还报错,项目---TARGETS---Build Phases - Carthage(或者Run Script) 查看地址是否正确,usr前面切记有“/”
3.倘若还未解决,直接删除 Run Script ,清理Xcode DerivedData
具体操作:右键点击Finder--->前往文件夹--->输入 /Users/用户名/Library/Developer/Xcode/DerivedData , 删除DerivedData 目录下的文件,clean工程,重启Xcode。
问题四:
问题描述:项目可以Build Success起来,但是会直接崩溃。
错误如下:
dyld: Library not loaded: @rpath/XXXX.framework/XXXX
Referenced from: /private/var/mobile/Containers/Bundle/Application/CEA6C4C1-C211-460C-8ECF-4FD9C66F1016/iOS XXXX.app/iOS XXXX
Reason: image not found
解决:项目---TARGETS---General---Embedded Binarles,点击“+”,把 报错对应的 XXXX.framework 添加进来即可。
项目终于Run成功了。。。
网友评论