因为我们项目是一个Workspace,由若干个库组成(组件化比较碎),又涉及到海外和国内(存在很多差异性),整个项目的编译是由每个库的脚本(每个库生成会支持32位和64位,每次编译前会清除历史缓存),然后由一个总的Release脚本编译生成出目标文件。
废话这么多主要是表明升级Xcode10.x以后会遇到各种奇葩问题。路径问题,新编译方式多线程问题等。
问题列举:
error: Multiple commands produce
Command PhaseScriptExecution failed with a nonzero exit code
error: unable to attach DB: error: accessing build database
应对:
然后改成如图:
其次修改:
/bin/sh
中 OBJROOT="${OBJROOT}"
改为:OBJROOT="${OBJROOT}/DependentBuilds"
并且添加-UseModernBuildSystem=NO
:
若还报错:error: Multiple commands produce
那还需要对应的库工程修改:
当然以上修改的不止一处,因为我们组件比较多,所以修改了10多处的脚本和工程配置。
以上,可以解决Xcode10.x升级带来的脚本编译问题。(前提是用脚本编译的,非脚本大概率不会出问题)