1.三方库支持的iOS版本过低
报错信息:
The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 11.0 to 16.4.99.
这个错误在Xcode14.2及早期版本是以警告的方式提醒,升级到14.3后就直接报错了,解决方法将支持目标版本提高到最低支持版本,如下图,我的Xcode上编译最低需要支持iOS11:
具体操作:
1.修改每个三方库支持的版本最低为Xcode编译需要的版本,这个方法太繁琐,且每次pod install
后需要重新修改,不建议该方法。
2.修改pod文件,在pod文件末尾加上如下:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 11.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
end
上述代码表示:将支持小于iOS11的三方库,都修改为iOS11。
2.Archive打包时出错
报错信息:
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/c2cb9645-dafc-11ed-aa26-6ec1e3b3f7b3/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
Command PhaseScriptExecution failed with a nonzero exit code
查找修改文件方法:
1.pod -> Targets Support Files -> Pods-TargetName-frameworks.sh -> source="$(readlink "${source}")"
。
2.全局搜索readlink
。
修改:
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")" // 修改前
source="$(readlink -f "${source}")" // 修改后
fi
需要注意的是,后续项目每次pod install
之后,都要再进行修改。