返回
OC项目创建iOS 14 Widget编译时遇到ld: Assertion failure,巧妙应对和轻松解决!
IOS
2023-11-01 15:48:36
问题
在使用Xcode创建一个新的OC项目时,并添加了一个Widget Extension,然后直接运行编译项目,结果编译器报出错误:
ld: Assertion failure: !(@executablePath.contains("IntermediateHeaders")) @ /BuildRoot/Library/Caches/com.apple.xbs/Sources/iPhoneSimulator.platformSupport/iPhoneSimulator.build/Release/iphoneos/usr/lib/libobjc.A.dylib
解决方法
-
使用较低版本的Xcode
此错误可能是由于Xcode版本过高导致的。可以尝试使用较低版本的Xcode来创建项目,看看是否可以解决问题。
-
清理项目
在Xcode中,点击“Product”菜单,然后选择“Clean”选项,清理项目。然后重新编译项目,看看是否可以解决问题。
-
删除Derived Data文件夹
在“Finder”中,找到项目所在的目录,然后找到“Derived Data”文件夹。将此文件夹删除,然后重新编译项目,看看是否可以解决问题。
-
更新Cocoapods
如果项目中使用了Cocoapods,请确保Cocoapods是最新的。可以运行以下命令来更新Cocoapods:
sudo gem install cocoapods
然后重新编译项目,看看是否可以解决问题。
-
检查真机运行版本
检查项目模拟器版本,确保真机系统版本与模拟器版本匹配。如果版本不匹配,模拟器可能无法正确编译和运行项目。
注意事项
-
如果以上方法都无法解决问题,可以尝试在Xcode中打开“Build Settings”面板,然后在“Other Linker Flags”字段中添加以下标志:
-ObjC
-
如果项目中使用了静态库,请确保静态库的路径正确。
-
如果项目中使用了第三方库,请确保第三方库与Xcode的版本兼容。
总结
以上是解决OC项目创建iOS 14 Widget时遇到ld: Assertion failure编译错误的几种方法。开发人员可以根据自己的情况尝试不同的方法,找到最适合自己的解决方法。
我希望这篇文章对您有所帮助。如果您有任何其他问题,请随时与我联系。