From 21956b935a2ac3a44e190007e54e63a5e4341d0f Mon Sep 17 00:00:00 2001 From: takahirom Date: Tue, 20 Aug 2024 23:39:04 +0900 Subject: [PATCH] Fix iOS KMP resources --- app-ios/App/App.xcodeproj/project.pbxproj | 6 +++++- .../droidkaigi/confsched/ui/PresenterDefaultsProvider.kt | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app-ios/App/App.xcodeproj/project.pbxproj b/app-ios/App/App.xcodeproj/project.pbxproj index 75c9839e4..0e6e439e4 100644 --- a/app-ios/App/App.xcodeproj/project.pbxproj +++ b/app-ios/App/App.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 830BFA7C2C74EBF40017A600 /* compose-resources in Resources */ = {isa = PBXBuildFile; fileRef = 830BFA7B2C74EBF40017A600 /* compose-resources */; }; 8C31F46B2BF6909A003F1BBA /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C31F46A2BF6909A003F1BBA /* GoogleService-Info.plist */; }; 8C7DACB72BCBCCB0002C298A /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8C7DACB02BCBCCB0002C298A /* Preview Assets.xcassets */; }; 8C7DACB82BCBCCB0002C298A /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7DACB22BCBCCB0002C298A /* App.swift */; }; @@ -15,6 +16,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 830BFA7B2C74EBF40017A600 /* compose-resources */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "compose-resources"; path = "../../app-ios-shared/build/kotlin-multiplatform-resources/aggregated-resources/iosSimulatorArm64/compose-resources"; sourceTree = ""; }; 8C31F46A2BF6909A003F1BBA /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 8C772B152BCBCBCA00F2BADC /* DroidKaigi2024App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DroidKaigi2024App.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8C7DACB02BCBCCB0002C298A /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; @@ -42,6 +44,7 @@ 8C772B0C2BCBCBCA00F2BADC = { isa = PBXGroup; children = ( + 830BFA7B2C74EBF40017A600 /* compose-resources */, C412816C2C149FB500B458D1 /* DroidKaigi2024App-Info.plist */, 8C7DACC22BCBD111002C298A /* App */, 8C7DACC12BCBD0F1002C298A /* app-ios */, @@ -152,6 +155,7 @@ 8C7DACB92BCBCCB0002C298A /* Assets.xcassets in Resources */, 8C7DACB72BCBCCB0002C298A /* Preview Assets.xcassets in Resources */, 8C31F46B2BF6909A003F1BBA /* GoogleService-Info.plist in Resources */, + 830BFA7C2C74EBF40017A600 /* compose-resources in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -173,7 +177,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/zsh; - shellScript = "cd ${SRCROOT}/../..\n./gradlew assembleSharedXCFramework --no-configuration-cache\n"; + shellScript = "cd ${SRCROOT}/../..\n./gradlew assembleSharedXCFramework --no-configuration-cache\n./gradlew iosSimulatorArm64AggregateResources --no-configuration-cache\n\nRESOURCE_DIR=\"./app-ios-shared/build/kotlin-multiplatform-resources/aggregated-resources/iosSimulatorArm64\"\n\nmkdir ${RESOURCE_DIR}/compose-resources\ncp -R ${RESOURCE_DIR}/composeResources ${RESOURCE_DIR}/compose-resources\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/core/ui/src/commonMain/kotlin/io/github/droidkaigi/confsched/ui/PresenterDefaultsProvider.kt b/core/ui/src/commonMain/kotlin/io/github/droidkaigi/confsched/ui/PresenterDefaultsProvider.kt index c302b5b5f..c15463f2c 100644 --- a/core/ui/src/commonMain/kotlin/io/github/droidkaigi/confsched/ui/PresenterDefaultsProvider.kt +++ b/core/ui/src/commonMain/kotlin/io/github/droidkaigi/confsched/ui/PresenterDefaultsProvider.kt @@ -1,7 +1,10 @@ package io.github.droidkaigi.confsched.ui import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.remember +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.Density import io.github.droidkaigi.confsched.compose.ComposeEffectErrorHandler import io.github.droidkaigi.confsched.compose.LocalComposeEffectErrorHandler import io.github.droidkaigi.confsched.compose.compositionLocalProviderWithReturnValue @@ -11,7 +14,11 @@ fun providePresenterDefaults( userMessageStateHolder: UserMessageStateHolder = rememberUserMessageStateHolder(), block: @Composable (UserMessageStateHolder) -> T, ): T { - val composeResourceErrorMessages = composeResourceErrorMessages() + var composeResourceErrorMessages: List = listOf() + // For iOS + CompositionLocalProvider(LocalDensity provides Density(1F)) { + composeResourceErrorMessages = composeResourceErrorMessages() + } val handler = remember(userMessageStateHolder) { object : ComposeEffectErrorHandler { override suspend fun emit(throwable: Throwable) {