[Gradle] Fix embedAndSign failire when signing is disable

^KT-50837 Verification Pending
This commit is contained in:
Artem Daugel-Dauge
2023-05-22 15:27:39 +02:00
committed by Space Team
parent 322799f823
commit 5700212119
2 changed files with 43 additions and 7 deletions
@@ -138,6 +138,38 @@ class AppleFrameworkIT : KGPBaseTest() {
}
}
@DisplayName("EmbedAnsSign executes normally when signing is disabled")
@OptIn(EnvironmentalVariablesOverride::class)
// We need to use Gradle 7.2 here because of the issue https://github.com/gradle/gradle/issues/13957
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_2)
@GradleAndroidTest
fun testEmbedAnsSignExecutionWithoutSigning(
gradleVersion: GradleVersion,
agpVersion: String,
jdkProvider: JdkVersions.ProvidedJdk,
) {
nativeProject(
"sharedAppleFramework",
gradleVersion,
buildJdk = jdkProvider.location,
buildOptions = defaultBuildOptions.copy(
androidVersion = agpVersion
)
) {
val environmentVariables = mapOf(
"CONFIGURATION" to "debug",
"SDK_NAME" to "iphoneos",
"ARCHS" to "arm64",
"TARGET_BUILD_DIR" to projectPath.absolutePathString(),
"FRAMEWORKS_FOLDER_PATH" to "build/xcode-derived"
)
build(":shared:embedAndSignAppleFrameworkForXcode", environmentVariables = EnvironmentalVariables(environmentVariables)) {
assertDirectoryInProjectExists("build/xcode-derived/sdk.framework")
}
}
}
@DisplayName("embedAndSignAppleFrameworkForXcode fail")
@GradleAndroidTest
// We need to use Gradle 7.2 here because of the issue https://github.com/gradle/gradle/issues/13957
@@ -183,7 +183,9 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
property("type", envBuildType)
property("targets", envTargets)
property("embeddedFrameworksDir", envEmbeddedFrameworksDir)
property("sign", envSign)
if (envSign != null) {
property("sign", envSign)
}
}
}
@@ -194,12 +196,14 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework
task.dependsOn(assembleTask)
task.files = files(File(appleFrameworkDir(envFrameworkSearchDir), framework.outputFile.name))
task.destDir = envEmbeddedFrameworksDir
if (envSign != null) task.doLast {
val binary = envEmbeddedFrameworksDir
.resolve(framework.outputFile.name)
.resolve(framework.outputFile.nameWithoutExtension)
exec {
it.commandLine("codesign", "--force", "--sign", envSign, "--", binary)
if (envSign != null) {
task.doLast {
val binary = envEmbeddedFrameworksDir
.resolve(framework.outputFile.name)
.resolve(framework.outputFile.nameWithoutExtension)
exec {
it.commandLine("codesign", "--force", "--sign", envSign, "--", binary)
}
}
}
}