使用Shell脚本打包Framework报错:error:accessing build database "xxx/Build/Intermediates.noindex/XCBuildDat...

报错提示:

error:accessing build database "xxx/Build/Intermediates.noindex/XCBuildData/build.db":disk I/O error

分析验证:

将framework和shell脚本单独编译,都可以编译成功,但是在脚本中编译Framework才会出现这个错误。

所以猜测是在编译脚本的时候同时编译了Framework,但是编译生成的临时数据是同一份,所以有可能是同时编译两个Target时同时访问了同一个build.db数据库,造成了数据库锁死,出现访问数据库I/O错误。

原因:

在Xcode10以后,xcode默认使用了新的编译系统。

在对Framework打包的时候因为用到了三方库,所以需要对workspase进行编译,但是新的编译系统配置是针对workspace所有Target生效。所以在编译脚本的时候脚本target和Framework的Target同时访问了build.db出现报错。

解决方案:

将编译系统修改为老的编译系统,就不再出现这个错误了。

修改步骤:

Xcode工具菜单->File->Workspace Settings

按照以上步骤就可以打开上面的窗口了。

如图:

你可能感兴趣的:(使用Shell脚本打包Framework报错:error:accessing build database "xxx/Build/Intermediates.noindex/XCBuildDat...)