1515 */
1616
1717import androidx.build.KotlinTarget
18- import androidx.build.ProjectLayoutType
19- import androidx.build.SoftwareType
20- import org.gradle.api.services.BuildService
21- import org.gradle.api.services.BuildServiceParameters
18+ import org.jetbrains.androidx.build.XcodeToolsLock
2219
2320plugins {
2421 id(" AndroidXPlugin" )
@@ -44,13 +41,6 @@ kotlin {
4441}
4542
4643private def configure (target , isDevice , architecture , testTarget ) {
47- // to prevent "Process 'command 'xcodebuild'' finished with non-zero exit value 65"
48- // "error: unable to attach DB: unable to initialize database (database is locked)"
49- def xcodeLock =
50- project. gradle. sharedServices. registerIfAbsent(" xcodeBuildLock" , XcodeBuildLock ) {
51- maxParallelUsages. set(1 )
52- }
53-
5444 def frameworkName = " CMPUIKitUtils"
5545 def buildSchemeName = frameworkName
5646 def testSchemeName = " ${ frameworkName} Tests"
@@ -84,6 +74,7 @@ private def configure(target, isDevice, architecture, testTarget) {
8474 def testFrameworkTaskName = " ${ target.name} FrameworkTest"
8575
8676 def getTargetDeviceTask = project. tasks. register(getTargetDeviceTaskName, Exec ) {
77+ usesService(XcodeToolsLock . instance(project))
8778 ext. device = " "
8879 commandLine " xcrun" , " simctl" , " list" , " devices"
8980 standardOutput = new ByteArrayOutputStream ()
@@ -98,6 +89,7 @@ private def configure(target, isDevice, architecture, testTarget) {
9889 def testFrameworkTask = project. tasks. register(testFrameworkTaskName) {
9990 dependsOn getTargetDeviceTask
10091 doLast {
92+ usesService(XcodeToolsLock . instance(project))
10193 project. exec {
10294 workingDir frameworkSourcesDir
10395 commandLine " xcodebuild" ,
@@ -116,7 +108,7 @@ private def configure(target, isDevice, architecture, testTarget) {
116108 target. compilations. main {
117109 def libTaskName = " ${ compileTaskProvider.name} ObjCLib"
118110 project. tasks. register(libTaskName, Exec ) {
119- usesService(xcodeLock )
111+ usesService(XcodeToolsLock . instance(project) )
120112 inputs. dir(frameworkSourcesDir)
121113 .withPropertyName(" ${ frameworkName} -${ sdkName} " )
122114 .withPathSensitivity(PathSensitivity . RELATIVE )
@@ -172,6 +164,4 @@ androidx {
172164 inceptionYear = " 2023"
173165 description = " Internal iOS UIKit utilities including Objective-C library."
174166 legacyDisableKotlinStrictApiMode = true
175- }
176-
177- abstract class XcodeBuildLock implements BuildService<BuildServiceParameters. None > {}
167+ }
0 commit comments