その後、Xcodeを10ベータに更新しました。ビルドすると、ビルドが失敗し、以下のエラーが発生します。
ビルドデータベース「/Users/n/Library/Developer/Xcode/DerivedData/Build/Intermediates/XCBuildData/build.db」へのアクセス:データベースがロックされている可能性があります2つの同時ビルドが同じファイルシステムの場所で実行されています。
以下のようなビルドフェーズにスクリプトがあります
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:DBエラーを添付できません
しかし、私の場合は異なります。よろしくお願いします。
注:[新しいビルドシステム]を選択すると、このエラーが発生します。レガシービルドシステムでは、すべて正常に動作します。
オプション1
レガシービルドシステムで言ったように、すべてが正常に機能しますが、新しいビルドシステムでは機能しません。
オプション:2
スクリプトを削除し、新しいビルドシステムでテストしたプロジェクトに手動でSDKバイナリを追加すると正常に動作します。
スクリプトの助けを借りてSDKをビルドするときに、新しいビルドシステムで2つのビルドを同時に実行してエラーをスローすると考えています。
ターミナルから特定のターゲット(集約ターゲット)にxcodebuildを実行している場合、OBJROOT = "$ {OBJROOT}/DependentBuilds"の例を追加するだけで解決策が見つかりました。
Sudo xcodebuild -project YourProject.xcodeproj -target YourProject-Universal -destination "platform = iOS、name = generic/iOS" OBJROOT = "$ {OBJROOT}/DependentBuilds"
XcodeがDependentBuildsディレクトリを作成できるようにSudoを追加しましたが、フォルダーのアクセス許可を変更することで機能します。
-schemaを-targetに置き換えたところ、うまく機能しました(ただし、特定のケースでのみ機能する可能性があります)。
ターミナルからxcodebuild
を実行すると、このエラーが発生しました。 DerivedDataの中に、プロジェクト用に1つではなく2つのフォルダーがあることに気付きました。両方を削除し(一方は自動的に再生成されました)、エラーの表示を停止しました。
ファイルを追加しましたWorkspaceSettings.xcsettings
in 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>
そして、これはそれを修正しました