在构建之后,我将Xcode更新为10 beta,但由于构建失败而出现了以下错误。
正在访问构建数据库“ /Users/n/Library/Developer/Xcode/DerivedData/Build/Intermediates/XCBuildData/build.db”:数据库已锁定可能在同一文件系统位置运行了两个并发构建。
我的脚本处于Build阶段,如下所示
set -e
if [ -d "${PROJECT_DIR}/Frameworks" ]; then
rm -rf "${PROJECT_DIR}/Frameworks"
fi
mkdir "${PROJECT_DIR}/Frameworks"
#FRAMEWORKS_PATH="${PROJECT_DIR}/../Frameworks"
xcodebuild -project
"${PROJECT_DIR}/../iOS/Frameworks/sdk/SDK.xcodeproj" -scheme
"SDKAggregate" -sdk "iphoneos" -configuration "Build"
cp -r
${PROJECT_DIR}/../iOS/Frameworks/sdk/"SDK.framework"
"${PROJECT_DIR}/Frameworks"
我找到了此链接 [Xcode 10: unable to attach DB error
但是我的情况有所不同,请帮助我 预先感谢。.
注意:如果我选择“新建”系统,则只有我遇到此错误。 对于旧版构建系统,一切正常。
答案 0 :(得分:6)
我找到了一个解决方案,如果您要从终端运行xcodebuild到特定目标(聚合目标),只需添加OBJROOT =“ $ {OBJROOT} / DependentBuilds”示例:
sudo xcodebuild -project YourProject.xcodeproj -target YourProject-Universal -destination“ platform = iOS,name = generic / iOS” OBJROOT =“ $ {OBJROOT} / DependentBuilds”
我添加了sudo,以允许Xcode创建DependentBuilds目录,但是您可以更改文件夹权限,它将起作用。
答案 1 :(得分:2)
选项:1
正如我所说的那样,使用旧版构建系统,一切都可以正常工作,但不能在新的构建系统上运行。
选项:2
删除脚本,然后将SDK二进制文件手动添加到使用新的构建系统测试过的项目中,效果很好。
当我借助脚本构建SDK时,我正在考虑使用新的构建系统,它将同时进行两个构建并抛出错误。
答案 2 :(得分:1)
我用-target替换了-schema,并且效果很好(尽管可能仅在我的特定情况下有效)。
答案 3 :(得分:0)
从Terminal运行xcodebuild
时出现此错误。我注意到在DerivedData中,我的项目有两个文件夹,而不是一个。我删除了这两个文件(其中一个自动重新生成),并且停止获取错误。
答案 4 :(得分:0)
我在WorkspaceSettings.xcsettings
中添加了文件myProject.xcodeproj/project.xcworkspace/xcshareddata
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildSystemType</key>
<string>Original</string>
</dict>
</plist>
此问题已解决