diff --git a/examples/todoapp/common/root/build.gradle.kts b/examples/todoapp/common/root/build.gradle.kts index bf618dc4a0..0de31d4f7c 100755 --- a/examples/todoapp/common/root/build.gradle.kts +++ b/examples/todoapp/common/root/build.gradle.kts @@ -48,21 +48,3 @@ kotlin { } } } - -fun getIosTarget(): String { - val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator" - - return if (sdkName.startsWith("iphoneos")) "iosArm64" else "iosX64" -} - -val packForXcode by tasks.creating(Sync::class) { - group = "build" - val mode = System.getenv("CONFIGURATION") ?: "DEBUG" - val targetName = getIosTarget() - val framework = kotlin.targets.getByName(targetName).binaries.getFramework(mode) - inputs.property("mode", mode) - dependsOn(framework.linkTask) - val targetDir = File(buildDir, "xcode-frameworks") - from(framework.outputDirectory) - into(targetDir) -} diff --git a/examples/todoapp/ios/TodoApp.xcodeproj/project.pbxproj b/examples/todoapp/ios/TodoApp.xcodeproj/project.pbxproj index db79752f4c..7c61dcdd98 100644 --- a/examples/todoapp/ios/TodoApp.xcodeproj/project.pbxproj +++ b/examples/todoapp/ios/TodoApp.xcodeproj/project.pbxproj @@ -11,8 +11,6 @@ 1F00F38F257599D800CFAF97 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F00F38E257599D800CFAF97 /* ContentView.swift */; }; 1F00F391257599DA00CFAF97 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1F00F390257599DA00CFAF97 /* Assets.xcassets */; }; 1F00F394257599DA00CFAF97 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1F00F393257599DA00CFAF97 /* Preview Assets.xcassets */; }; - 1F00F3A425759FEC00CFAF97 /* Todo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F00F3A325759FEC00CFAF97 /* Todo.framework */; }; - 1F00F3A525759FEC00CFAF97 /* Todo.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1F00F3A325759FEC00CFAF97 /* Todo.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 1F00F3A82575A16400CFAF97 /* ObservableValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F00F3A72575A16400CFAF97 /* ObservableValue.swift */; }; 1F00F3AA2575A71000CFAF97 /* MutableStateBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F00F3A92575A71000CFAF97 /* MutableStateBuilder.swift */; }; 1F00F3AC2575AA4500CFAF97 /* ListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F00F3AB2575AA4500CFAF97 /* ListView.swift */; }; @@ -24,20 +22,6 @@ 1F00F3B82575B4F800CFAF97 /* ComponentHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F00F3B72575B4F800CFAF97 /* ComponentHolder.swift */; }; /* End PBXBuildFile section */ -/* Begin PBXCopyFilesBuildPhase section */ - 1F00F3A625759FEC00CFAF97 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 1F00F3A525759FEC00CFAF97 /* Todo.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 1F00F389257599D800CFAF97 /* TodoApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TodoApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1F00F38C257599D800CFAF97 /* TodoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoApp.swift; sourceTree = ""; }; @@ -62,7 +46,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1F00F3A425759FEC00CFAF97 /* Todo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -134,7 +117,6 @@ 1F00F385257599D800CFAF97 /* Sources */, 1F00F386257599D800CFAF97 /* Frameworks */, 1F00F387257599D800CFAF97 /* Resources */, - 1F00F3A625759FEC00CFAF97 /* Embed Frameworks */, ); buildRules = ( ); @@ -205,7 +187,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd $SRCROOT/..\n./gradlew :common:root:packForXCode -PXCODE_CONFIGURATION=${CONFIGURATION}\ncd $SRCROOT\n"; + shellScript = "cd $SRCROOT/..\n./gradlew :common:root:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -355,13 +337,18 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"ios/Preview Content\""; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$SRCROOT/../common/root/build/xcode-frameworks"; + FRAMEWORK_SEARCH_PATHS = "$SRCROOT/../common/root/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = ios/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Todo, + ); PRODUCT_BUNDLE_IDENTIFIER = org.jetbrains.todoapp; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -377,13 +364,18 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"ios/Preview Content\""; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$SRCROOT/../common/root/build/xcode-frameworks"; + FRAMEWORK_SEARCH_PATHS = "$SRCROOT/../common/root/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = ios/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + Todo, + ); PRODUCT_BUNDLE_IDENTIFIER = org.jetbrains.todoapp; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0;