Skip to content

Commit aa52511

Browse files
authored
Fix cocoapods integration (#5128)
Use a correct file to configure the cocoapods resources integration instead of a relative path. Fixes https://youtrack.jetbrains.com/issue/CMP-4303 ## Release Notes ### Fixes - Resources - _(prerelease fix)_ Fix cocoapods resources integration which leaded to a lack resources in ios apps
1 parent 5a06ffe commit aa52511

File tree

2 files changed

+11
-10
lines changed
  • gradle-plugins/compose/src

2 files changed

+11
-10
lines changed

gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/resources/IosResources.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ internal fun Project.configureSyncIosComposeResources(
8686
plugins.withId(COCOAPODS_PLUGIN_ID) {
8787
(kotlinExtension as ExtensionAware).extensions.getByType(CocoapodsExtension::class.java).apply {
8888
framework { podFramework ->
89-
val syncDir = podFramework.getFinalResourcesDir().get().asFile.relativeTo(projectDir)
90-
val specAttr = "['${syncDir.path}']"
89+
val syncDir = podFramework.getFinalResourcesDir().get().asFile
90+
val specAttr = "['${syncDir.relativeTo(projectDir).path}']"
9191
val specAttributes = extraSpecAttributes
9292
val buildFile = project.buildFile
9393
val projectPath = project.path
@@ -97,7 +97,7 @@ internal fun Project.configureSyncIosComposeResources(
9797
if (specAttributes["resources"] != specAttr) error(
9898
"""
9999
|Kotlin.cocoapods.extraSpecAttributes["resources"] is not compatible with Compose Multiplatform's resources management for iOS.
100-
| * Recommended action: remove extraSpecAttributes["resources"] from '$buildFile' and run '$projectPath:podInstall' once;
100+
| * Recommended action: remove extraSpecAttributes["resources"] from '$buildFile' and run '$projectPath:podspec' once;
101101
| * Alternative action: turn off Compose Multiplatform's resources management for iOS by adding '${ComposeProperties.SYNC_RESOURCES_PROPERTY}=false' to your gradle.properties;
102102
""".trimMargin()
103103
)

gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,14 @@ class ResourcesTest : GradlePluginTestBase() {
591591
)
592592

593593
with(TestProject("misc/iosResources", testEnv)) {
594+
gradle(":podspec", "-Pkotlin.native.cocoapods.generate.wrapper=true").checks {
595+
assertEqualTextFiles(
596+
file("iosResources.podspec"),
597+
file("expected/iosResources.podspec")
598+
)
599+
file("build/compose/cocoapods/compose-resources").checkExists()
600+
}
601+
594602
gradle(
595603
":syncFramework",
596604
"-Pkotlin.native.cocoapods.platform=${iosEnv["PLATFORM_NAME"]}",
@@ -656,13 +664,6 @@ class ResourcesTest : GradlePluginTestBase() {
656664
file("build/compose/cocoapods/compose-resources/composeResources/iosresources.generated.resources/drawable/compose-multiplatform.xml").checkExists()
657665
file("build/compose/cocoapods/compose-resources/composeResources/iosresources.generated.resources/drawable/icon.xml").checkExists()
658666
}
659-
660-
gradle(":podspec", "-Pkotlin.native.cocoapods.generate.wrapper=true").checks {
661-
assertEqualTextFiles(
662-
file("iosResources.podspec"),
663-
file("expected/iosResources.podspec")
664-
)
665-
}
666667
}
667668
}
668669

0 commit comments

Comments
 (0)