Xcode 11 GM - 错误:访问构建数据库 - 磁盘 I/O 错误

lal*_*lal 8 xcode objective-c xcode11

仅构建用于发布分发的“通用二进制框架”时遇到以下错误。在调试或发布模式下构建“非通用”方案时,相同的项目和设置有效。

项目使用 Objective-C 和 Xcode 11 GM (11A419c)。现在,更新到 Xcode 11 GM Seed 2 (11A420a)。

错误:访问构建数据库“/Users/john.doe/Library/Developer/Xcode/DerivedData/FrameworkSDK-esxhqchxkdevuiapyebthsdscpje/Build/Intermediates.noindex/XCBuildData/build.db”:磁盘I/O错误

使用build command脚本中的以下内容:

xcodebuild -workspace ${PROJECT_NAME}.xcworkspace -scheme ${PROJECT_NAME} -sdk iphonesimulator -configuration ${CONFIGURATION} only_active_arch=no defines_module=yes clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator 2>&1
Run Code Online (Sandbox Code Playgroud)

尝试了几个步骤:Xcode 10 相关错误链接帖子中提到的完全清理、pod 更新和步骤- 无法解决此问题

这个问题没有答案:
为什么会出现“访问构建数据库磁盘 I/O 错误”的错误?

lal*_*lal 1

用于Command Line ToolsXcode 11

\n

确保使用正确版本的Command Line Tools(xcodebuild) 与完整的干净和构建全新的通用框架一起工作。并且该项目正在使用New Build System (Default). 它还适用于 Xcode 11 GM - Build 11A419c(种子 1)。

\n

使用以下命令来确保正确的链接:

\n
xcodebuild -version\nXcode 11.0\nBuild version 11A419c\n
Run Code Online (Sandbox Code Playgroud)\n

命令行工具的正确版本

\n

早些时候它使用的是旧的Xcode10.2 xcodebuild.

\n

替代解决方法

\n

不是一个很好的解决方案,因为它的用途Legacy Build System是 Xcode 11 的现代系统。

\n
    \n
  1. 一种选择是Legacy Build System使用Shared Project Settings来进行通用框架项目。

    \n

    共享项目设置

    \n
  2. \n
  3. 尝试使用未记录的xcodebuild参数-UseModernBuildSystem=NO,它不起作用。[正在修复命令行,将更新]

    \n
  4. \n
\n

相关发行说明:对于 GM-2 种子:2019 年 9 月 16 日发布 Build 11A420a

\n
\n

XCFramework 可以将适用于多个平台\xe2\x80\x94(包括 iOS 设备、iOS 模拟器\n和 Mac Catalyst\xe2\x80\x94)的二进制框架或\n库捆绑到单个可分发的 .xcframework 捆绑包中\n您的开发人员可以在自己的应用程序中使用。可以将\n.xcframework 捆绑包添加到 Xcode 目标\xe2\x80\x99s 链接库\n阶段,并且 Xcode 在构建时使用所包含框架或库的正确平台\xe2\x80\x99s 版本。支持使用 xcodebuild -create-xcframework 从命令行创建框架。\nXCFramework 中捆绑的框架或库应在“用于分发的构建库”构建设置设置为 YES 的情况下构建。\n(49948269)

\n
\n