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

问题描述 投票:0回答:4

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

项目使用 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

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

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

objective-c xcode xcode11
4个回答
2
投票

以防有人还被困在这里。 我按照 This Answer 并消除了磁盘 I/O 错误。

添加:

 OBJROOT="${OBJROOT}/DependentBuilds"

1
投票

对于 Xcode 11 使用
Command Line Tools

确保使用正确版本的

Command Line Tools
(xcodebuild),可以完全干净并构建全新的通用框架。该项目正在使用
New Build System (Default)
。它还适用于 Xcode 11 GM - Build 11A419c(种子 1)。

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

xcodebuild -version
Xcode 11.0
Build version 11A419c

Correct version of Command Line Tools

之前用的是旧的

Xcode10.2
xcodebuild

替代解决方法

这不是一个好的修复,因为它使用

Legacy Build System
而不是带有 Xcode 11 的现代系统。

  1. 对于通用框架项目,一种选择是使用

    Legacy Build System
    Shared Project Settings

    Shared Project Settings

  2. 尝试使用未记录的

    xcodebuild
    参数
    -UseModernBuildSystem=NO
    ,但没有用。 [正在修复命令行,将更新]

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

XCFramework 可以捆绑二进制框架或 适用于多个平台的库 - 包括 iOS 设备、iOS 模拟器、 和 Mac Catalyst — 集成到单个可分发的 .xcframework 捆绑包中 您的开发人员可以在自己的应用程序中使用。一个 .xcframework 包可以添加到 Xcode 目标的链接库中 阶段和 Xcode 使用正确的平台版本的包含 构建时的框架或库。框架的创建是 使用 xcodebuild -create-xcframework 从命令行支持。 捆绑在 XCFramework 中的框架或库应该使用以下命令构建 Build Libraries for Distribution 构建设置设置为 YES。 (49948269)


1
投票

我在使用 XCode 14.1 构建项目时遇到了同样的问题。我将“-衍生数据路径../衍生数据”添加到构建命令中,并且它的构建没有任何问题。希望这能有所帮助。


   xcodebuild -sheme YourSheme -project YourProject.xcodeproj -sdk iphoneos -configuration YourConfiguration -derivedDataPath ../derived_data clean build"


0
投票

清除 Xcode 派生数据、清理 Flutter 构建和重建项目的步骤

如果您的 Flutter iOS 构建遇到问题,以下是我用于清除 Xcode 的派生数据、清理 Flutter 构建以及重建项目的步骤:

1.清除 Xcode 的派生数据:

在终端中运行以下命令来清除Xcode的导出数据:

rm -rf ~/Library/Developer/Xcode/DerivedData/*

2.清理 Flutter 构建:

清理 Flutter 项目并删除缓存的 iOS 依赖项:

flutter clean

导航到

ios
文件夹并清理 CocoaPods 缓存:

cd ios
pod cache clean --all
rm -rf Pods Podfile.lock

返回项目根目录并安装依赖项:

cd ..
flutter pub get

3.重建项目:

最后,重建并运行您的项目:

flutter run

这些步骤应确保您的 Flutter iOS 构建重新开始。

© www.soinside.com 2019 - 2024. All rights reserved.