From 6deac19f986f81664dfaab475575276dcd4575b7 Mon Sep 17 00:00:00 2001 From: Jigar Brahmbhatt Date: Mon, 25 Mar 2024 10:33:24 -0400 Subject: [PATCH] Move to regular framework for iOS shared code instead of cocoapods (#220) --- build.gradle.kts | 1 - gradle.properties | 2 - gradle/libs.versions.toml | 1 - .../Droidcon.xcodeproj/project.pbxproj | 94 ++++++++++--------- ios/Droidcon/Podfile | 1 - ios/Droidcon/Podfile.lock | 71 +++++++------- ios/DroidconKit.podspec | 54 ----------- ios/build.gradle.kts | 55 +++++------ 8 files changed, 107 insertions(+), 172 deletions(-) delete mode 100644 ios/DroidconKit.podspec diff --git a/build.gradle.kts b/build.gradle.kts index 68be14f9..8219912f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,7 +10,6 @@ plugins { alias(libs.plugins.jetbrains.compose).apply(false) alias(libs.plugins.ktlint) alias(libs.plugins.serialization).apply(false) - alias(libs.plugins.cocoapods).apply(false) } subprojects { diff --git a/gradle.properties b/gradle.properties index da0f3206..fc13270e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,8 +17,6 @@ org.gradle.parallel=true android.useAndroidX=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official -# Tell the KMM plugin where the iOS project lives -xcodeproj=./iosApp android.injected.testOnly=false org.jetbrains.compose.experimental.uikit.enabled=true org.gradle.caching=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 003ba3f3..ddd380e1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -117,7 +117,6 @@ sqlDelight = { id = "app.cash.sqldelight", version.ref = "sqlDelight" } jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose-jb" } ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } -cocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" } [bundles] ktor-common = ["ktor-client-core", "ktor-client-logging", "ktor-client-serialization", "ktor-client-contentNegotiation"] diff --git a/ios/Droidcon/Droidcon.xcodeproj/project.pbxproj b/ios/Droidcon/Droidcon.xcodeproj/project.pbxproj index b803ff79..84cb4b44 100644 --- a/ios/Droidcon/Droidcon.xcodeproj/project.pbxproj +++ b/ios/Droidcon/Droidcon.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ @@ -15,6 +15,7 @@ 1871C5FC26C5C7A400E51894 /* sponsors.json in Resources */ = {isa = PBXBuildFile; fileRef = 1871C5FB26C5C7A400E51894 /* sponsors.json */; }; 18E89B45283944F500C08C9B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F1465F0B23AA94BF0055F7C3 /* LaunchScreen.storyboard */; }; 18E89B49283E5D2C00C08C9B /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 18E89B48283E5D2C00C08C9B /* GoogleService-Info.plist */; }; + 26DEAB9FA7BB7DD62F31BB4D /* Pods_Droidcon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBA278C64D82609BA00FE2A5 /* Pods_Droidcon.framework */; }; 46B5284D249C5CF400A7725D /* Koin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46B5284C249C5CF400A7725D /* Koin.swift */; }; 681C959D26C554E00011330B /* FeedbackDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681C959C26C554E00011330B /* FeedbackDialog.swift */; }; 681C95A126C555D90011330B /* VisualEffectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681C95A026C555D90011330B /* VisualEffectView.swift */; }; @@ -42,7 +43,6 @@ 68C86E9F26B31D6100008D15 /* LifecycleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C86E9E26B31D6100008D15 /* LifecycleManager.swift */; }; 68DCBC6226C512DD0084C70D /* SponsorDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DCBC6126C512DD0084C70D /* SponsorDetailView.swift */; }; 68DCBC6426C51E260084C70D /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DCBC6326C51E260084C70D /* TextView.swift */; }; - 711787A7E84A5FBD2D9A2E28 /* Pods_Droidcon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EBC9F516E487D20266C9746 /* Pods_Droidcon.framework */; }; 8404D80E26C64B9E00AE200F /* IOSAnalyticsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8404D80D26C64B9E00AE200F /* IOSAnalyticsService.swift */; }; A357C7EE28AA7861004EF059 /* FilledButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A357C7ED28AA7860004EF059 /* FilledButtonStyle.swift */; }; A35DC2DF28AB6B2600C7B298 /* SwitchingRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A35DC2DE28AB6B2600C7B298 /* SwitchingRootView.swift */; }; @@ -62,7 +62,7 @@ 1871C5FB26C5C7A400E51894 /* sponsors.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = sponsors.json; path = ../../../shared/src/commonMain/resources/sponsors.json; sourceTree = ""; }; 18E89B48283E5D2C00C08C9B /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 46B5284C249C5CF400A7725D /* Koin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Koin.swift; sourceTree = ""; }; - 540A306F1CD61E1DFBEC756F /* Pods-Droidcon.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Droidcon.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Droidcon/Pods-Droidcon.debug.xcconfig"; sourceTree = ""; }; + 5F15F13414AE95A028756BFE /* Pods-Droidcon.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Droidcon.debug.xcconfig"; path = "Target Support Files/Pods-Droidcon/Pods-Droidcon.debug.xcconfig"; sourceTree = ""; }; 681C959C26C554E00011330B /* FeedbackDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackDialog.swift; sourceTree = ""; }; 681C95A026C555D90011330B /* VisualEffectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisualEffectView.swift; sourceTree = ""; }; 681C95A226C56B100011330B /* CustomOverlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomOverlayView.swift; sourceTree = ""; }; @@ -90,13 +90,13 @@ 68DCBC6126C512DD0084C70D /* SponsorDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SponsorDetailView.swift; sourceTree = ""; }; 68DCBC6326C51E260084C70D /* TextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextView.swift; sourceTree = ""; }; 8404D80D26C64B9E00AE200F /* IOSAnalyticsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IOSAnalyticsService.swift; sourceTree = ""; }; - 9EBC9F516E487D20266C9746 /* Pods_Droidcon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Droidcon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A357C7ED28AA7860004EF059 /* FilledButtonStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilledButtonStyle.swift; sourceTree = ""; }; A35DC2DE28AB6B2600C7B298 /* SwitchingRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwitchingRootView.swift; sourceTree = ""; }; A35DC2E228AB6C6F00C7B298 /* ComposeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeController.swift; sourceTree = ""; }; A35DEF2128AA265C0072605A /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; A35DEF2328AA26C80072605A /* SettingsBundleHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsBundleHelper.swift; sourceTree = ""; }; - A399EE7D791E7ABC935DC78D /* Pods-Droidcon.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Droidcon.release.xcconfig"; path = "Pods/Target Support Files/Pods-Droidcon/Pods-Droidcon.release.xcconfig"; sourceTree = ""; }; + DD90C0C0A4D331CEBDBE69E8 /* Pods-Droidcon.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Droidcon.release.xcconfig"; path = "Target Support Files/Pods-Droidcon/Pods-Droidcon.release.xcconfig"; sourceTree = ""; }; + EBA278C64D82609BA00FE2A5 /* Pods_Droidcon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Droidcon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F1465EFD23AA94BF0055F7C3 /* Droidcon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Droidcon.app; sourceTree = BUILT_PRODUCTS_DIR; }; F1465F0023AA94BF0055F7C3 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; F1465F0923AA94BF0055F7C3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -109,13 +109,21 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 711787A7E84A5FBD2D9A2E28 /* Pods_Droidcon.framework in Frameworks */, + 26DEAB9FA7BB7DD62F31BB4D /* Pods_Droidcon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 13B926D31000917A8EC0813D /* Frameworks */ = { + isa = PBXGroup; + children = ( + EBA278C64D82609BA00FE2A5 /* Pods_Droidcon.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 1821427626B541720047DB71 /* Resources */ = { isa = PBXGroup; children = ( @@ -211,21 +219,13 @@ path = Speaker; sourceTree = ""; }; - DF9BBECBCD175B90105DA8D9 /* Pods */ = { + B5748AEC4B06A4FE0BE44617 /* Pods */ = { isa = PBXGroup; children = ( - 540A306F1CD61E1DFBEC756F /* Pods-Droidcon.debug.xcconfig */, - A399EE7D791E7ABC935DC78D /* Pods-Droidcon.release.xcconfig */, + 5F15F13414AE95A028756BFE /* Pods-Droidcon.debug.xcconfig */, + DD90C0C0A4D331CEBDBE69E8 /* Pods-Droidcon.release.xcconfig */, ); - name = Pods; - sourceTree = ""; - }; - EA4A32E32829B6496044B105 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 9EBC9F516E487D20266C9746 /* Pods_Droidcon.framework */, - ); - name = Frameworks; + path = Pods; sourceTree = ""; }; F1465EF423AA94BF0055F7C3 = { @@ -233,8 +233,8 @@ children = ( F1465EFF23AA94BF0055F7C3 /* Droidcon */, F1465EFE23AA94BF0055F7C3 /* Products */, - DF9BBECBCD175B90105DA8D9 /* Pods */, - EA4A32E32829B6496044B105 /* Frameworks */, + B5748AEC4B06A4FE0BE44617 /* Pods */, + 13B926D31000917A8EC0813D /* Frameworks */, ); sourceTree = ""; }; @@ -281,13 +281,13 @@ isa = PBXNativeTarget; buildConfigurationList = F1465F2723AA94C00055F7C3 /* Build configuration list for PBXNativeTarget "Droidcon" */; buildPhases = ( - DE3B37D33D11C1968D62DBBA /* [CP] Check Pods Manifest.lock */, + A08E871D529FE29D7BFB8889 /* [CP] Check Pods Manifest.lock */, + 0132A05A2BADE7A000360D9F /* ShellScript */, F1465EF923AA94BF0055F7C3 /* Sources */, F1465EFA23AA94BF0055F7C3 /* Frameworks */, F1465EFB23AA94BF0055F7C3 /* Resources */, - F6AA88266EBC1B414A6C4232 /* [CP] Embed Pods Frameworks */, A33EA3A8289D4DFD008850F7 /* Crashlytics Script */, - CB56A5C0D5CE0AC28D5D2D18 /* [CP] Copy Pods Resources */, + D1B96CC21A1B9CA2AD709245 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -352,7 +352,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - A33EA3A8289D4DFD008850F7 /* Crashlytics Script */ = { + 0132A05A2BADE7A000360D9F /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -360,36 +360,38 @@ inputFileListPaths = ( ); inputPaths = ( - "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", - "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", ); - name = "Crashlytics Script"; outputFileListPaths = ( ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"${PODS_ROOT}/FirebaseCrashlytics/run\"\n"; + shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :ios:embedAndSignAppleFrameworkForXcode \n"; }; - CB56A5C0D5CE0AC28D5D2D18 /* [CP] Copy Pods Resources */ = { + A08E871D529FE29D7BFB8889 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Droidcon/Pods-Droidcon-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Droidcon/Pods-Droidcon-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Droidcon-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Droidcon/Pods-Droidcon-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - DE3B37D33D11C1968D62DBBA /* [CP] Check Pods Manifest.lock */ = { + A33EA3A8289D4DFD008850F7 /* Crashlytics Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -397,21 +399,19 @@ inputFileListPaths = ( ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", + "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", + "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", ); - name = "[CP] Check Pods Manifest.lock"; + name = "Crashlytics Script"; outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Droidcon-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"${PODS_ROOT}/FirebaseCrashlytics/run\"\n"; }; - F6AA88266EBC1B414A6C4232 /* [CP] Embed Pods Frameworks */ = { + D1B96CC21A1B9CA2AD709245 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -617,7 +617,7 @@ }; F1465F2823AA94C00055F7C3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 540A306F1CD61E1DFBEC756F /* Pods-Droidcon.debug.xcconfig */; + baseConfigurationReference = 5F15F13414AE95A028756BFE /* Pods-Droidcon.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -626,6 +626,10 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 8UD86646U9; ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = "$(SRCROOT)/Droidcon/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.1; LD_RUNPATH_SEARCH_PATHS = ( @@ -651,7 +655,7 @@ }; F1465F2923AA94C00055F7C3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A399EE7D791E7ABC935DC78D /* Pods-Droidcon.release.xcconfig */; + baseConfigurationReference = DD90C0C0A4D331CEBDBE69E8 /* Pods-Droidcon.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -659,6 +663,10 @@ CURRENT_PROJECT_VERSION = 60002; DEVELOPMENT_TEAM = 8UD86646U9; ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = "$(SRCROOT)/Droidcon/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.1; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/ios/Droidcon/Podfile b/ios/Droidcon/Podfile index 5d0a45f1..08d08586 100644 --- a/ios/Droidcon/Podfile +++ b/ios/Droidcon/Podfile @@ -5,7 +5,6 @@ platform :ios, '14.0' install! 'cocoapods', :deterministic_uuids => false target 'Droidcon' do - pod 'DroidconKit', :path => '../' pod 'Kingfisher', '~> 7.8.1' pod 'Firebase/Analytics' pod 'Firebase/Crashlytics' diff --git a/ios/Droidcon/Podfile.lock b/ios/Droidcon/Podfile.lock index 4488ec60..7f8b0e27 100644 --- a/ios/Droidcon/Podfile.lock +++ b/ios/Droidcon/Podfile.lock @@ -1,17 +1,16 @@ PODS: - - DroidconKit (1.0) - - Firebase/Analytics (10.14.0): + - Firebase/Analytics (10.15.0): - Firebase/Core - - Firebase/Core (10.14.0): + - Firebase/Core (10.15.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 10.14.0) - - Firebase/CoreOnly (10.14.0): - - FirebaseCore (= 10.14.0) - - Firebase/Crashlytics (10.14.0): + - FirebaseAnalytics (~> 10.15.0) + - Firebase/CoreOnly (10.15.0): + - FirebaseCore (= 10.15.0) + - Firebase/Crashlytics (10.15.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 10.14.0) - - FirebaseAnalytics (10.14.0): - - FirebaseAnalytics/AdIdSupport (= 10.14.0) + - FirebaseCrashlytics (~> 10.15.0) + - FirebaseAnalytics (10.15.0): + - FirebaseAnalytics/AdIdSupport (= 10.15.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) @@ -19,24 +18,24 @@ PODS: - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseAnalytics/AdIdSupport (10.14.0): + - FirebaseAnalytics/AdIdSupport (10.15.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - - GoogleAppMeasurement (= 10.14.0) + - GoogleAppMeasurement (= 10.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseCore (10.14.0): + - FirebaseCore (10.15.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreExtension (10.14.0): + - FirebaseCoreExtension (10.19.0): - FirebaseCore (~> 10.0) - - FirebaseCoreInternal (10.14.0): + - FirebaseCoreInternal (10.19.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseCrashlytics (10.14.0): + - FirebaseCrashlytics (10.15.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseSessions (~> 10.5) @@ -44,12 +43,12 @@ PODS: - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - - FirebaseInstallations (10.14.0): + - FirebaseInstallations (10.15.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - - FirebaseSessions (10.14.0): + - FirebaseSessions (10.19.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) @@ -57,21 +56,21 @@ PODS: - GoogleUtilities/Environment (~> 7.10) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesSwift (~> 2.1) - - GoogleAppMeasurement (10.14.0): - - GoogleAppMeasurement/AdIdSupport (= 10.14.0) + - GoogleAppMeasurement (10.15.0): + - GoogleAppMeasurement/AdIdSupport (= 10.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (10.14.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 10.14.0) + - GoogleAppMeasurement/AdIdSupport (10.15.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 10.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (10.14.0): + - GoogleAppMeasurement/WithoutAdIdSupport (10.15.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) @@ -111,7 +110,6 @@ PODS: - PromisesObjC (= 2.3.1) DEPENDENCIES: - - DroidconKit (from `../`) - Firebase/Analytics - Firebase/Crashlytics - Kingfisher (~> 7.8.1) @@ -134,21 +132,16 @@ SPEC REPOS: - PromisesObjC - PromisesSwift -EXTERNAL SOURCES: - DroidconKit: - :path: "../" - SPEC CHECKSUMS: - DroidconKit: 3bfe02779d121f3bd294309010e9ff416ed968a4 - Firebase: 6c1bf3f534bc422d52af2e41fe0d50bf08b6b773 - FirebaseAnalytics: 5c6d58814afa4db82cf7fdbc02b0b0e2fa3d43ff - FirebaseCore: 6fc17ac9f03509d51c131298aacb3ee5698b4f02 - FirebaseCoreExtension: 976638051b1a46b503afce7ec80277f9161f2040 - FirebaseCoreInternal: d558159ee6cc4b823c2296ecc193de9f6d9a5bb3 - FirebaseCrashlytics: 0fbfa4efa57e8a09d8bf195393b50c237e3322b5 - FirebaseInstallations: f672b1eda64e6381c21d424a2f680a943fd83f3b - FirebaseSessions: f145e7365d36bec0d724c4574a8750e6f82fa6c8 - GoogleAppMeasurement: 7fee012a868315d418f365fbc8d394d8e020e749 + Firebase: 66043bd4579e5b73811f96829c694c7af8d67435 + FirebaseAnalytics: 47cef43728f81a839cf1306576bdd77ffa2eac7e + FirebaseCore: 2cec518b43635f96afe7ac3a9c513e47558abd2e + FirebaseCoreExtension: c08d14c7b22e07994e876d837e6f58642f340087 + FirebaseCoreInternal: b444828ea7cfd594fca83046b95db98a2be4f290 + FirebaseCrashlytics: a83f26fb922a3fe181eb738fb4dcf0c92bba6455 + FirebaseInstallations: cae95cab0f965ce05b805189de1d4c70b11c76fb + FirebaseSessions: e5f4caa188dc8bc6142abc974355be75b042215e + GoogleAppMeasurement: 722db6550d1e6d552b08398b69a975ac61039338 GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 Kingfisher: 63f677311d36a3473f6b978584f8a3845d023dc5 @@ -156,6 +149,6 @@ SPEC CHECKSUMS: PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265 -PODFILE CHECKSUM: 985d3b9cbc157b9c35aee865f42c33cf368f621a +PODFILE CHECKSUM: 4654f3ccb4ae86c4f9440935f0df48a0ebdaaeb8 COCOAPODS: 1.14.3 diff --git a/ios/DroidconKit.podspec b/ios/DroidconKit.podspec deleted file mode 100644 index 8440bfa7..00000000 --- a/ios/DroidconKit.podspec +++ /dev/null @@ -1,54 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = 'DroidconKit' - spec.version = '1.0' - spec.homepage = 'https://github.com/touchlab/DroidconKotlin' - spec.source = { :http=> ''} - spec.authors = '' - spec.license = '' - spec.summary = 'Common library for the Droidcon app' - spec.vendored_frameworks = 'build/cocoapods/framework/DroidconKit.framework' - spec.libraries = 'c++' - - - - if !Dir.exist?('build/cocoapods/framework/DroidconKit.framework') || Dir.empty?('build/cocoapods/framework/DroidconKit.framework') - raise " - - Kotlin framework 'DroidconKit' doesn't exist yet, so a proper Xcode project can't be generated. - 'pod install' should be executed after running ':generateDummyFramework' Gradle task: - - ./gradlew :ios:generateDummyFramework - - Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" - end - - spec.xcconfig = { - 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', - } - - spec.pod_target_xcconfig = { - 'KOTLIN_PROJECT_PATH' => ':ios', - 'PRODUCT_MODULE_NAME' => 'DroidconKit', - } - - spec.script_phases = [ - { - :name => 'Build DroidconKit', - :execution_position => :before_compile, - :shell_path => '/bin/sh', - :script => <<-SCRIPT - if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then - echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"" - exit 0 - fi - set -ev - REPO_ROOT="$PODS_TARGET_SRCROOT" - "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ - -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \ - -Pkotlin.native.cocoapods.archs="$ARCHS" \ - -Pkotlin.native.cocoapods.configuration="$CONFIGURATION" - SCRIPT - } - ] - spec.resources = ['build/compose/ios/DroidconKit/compose-resources'] -end \ No newline at end of file diff --git a/ios/build.gradle.kts b/ios/build.gradle.kts index b7f930ba..f6cb9b78 100644 --- a/ios/build.gradle.kts +++ b/ios/build.gradle.kts @@ -1,20 +1,20 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode -import org.jetbrains.kotlin.gradle.plugin.mpp.Framework import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.serialization) - alias(libs.plugins.cocoapods) alias(libs.plugins.jetbrains.compose) } version = "1.0" kotlin { - iosX64() - iosArm64() - iosSimulatorArm64() + val targets = listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ) applyDefaultHierarchyTemplate() @@ -44,33 +44,26 @@ kotlin { } } - cocoapods { - summary = "Common library for the Droidcon app" - homepage = "https://github.com/touchlab/DroidconKotlin" - name = "DroidconKit" - framework { - baseName = "DroidconKit" - isStatic = true - embedBitcodeMode = BitcodeEmbeddingMode.DISABLE + targets.forEach { iosTarget -> + iosTarget.binaries { + framework { + baseName = "DroidconKit" + isStatic = true + embedBitcodeMode = BitcodeEmbeddingMode.DISABLE - freeCompilerArgs += listOf( - "-linker-option", "-framework", "-linker-option", "Metal", - "-linker-option", "-framework", "-linker-option", "CoreText", - "-linker-option", "-framework", "-linker-option", "CoreGraphics", - "-Xdisable-phases=VerifyBitcode" - ) - } - } - - // Configure the framework which is generated internally by cocoapods plugin - targets.withType { - binaries.withType { - linkerOpts.add("-lsqlite3") - export(libs.kermit) - export(libs.kermit.simple) - export(libs.hyperdrive.multiplatformx.api) - export(project(":shared")) - export(project(":shared-ui")) + freeCompilerArgs += listOf( + "-linker-option", "-framework", "-linker-option", "Metal", + "-linker-option", "-framework", "-linker-option", "CoreText", + "-linker-option", "-framework", "-linker-option", "CoreGraphics", + "-Xdisable-phases=VerifyBitcode" + ) + linkerOpts.add("-lsqlite3") + export(libs.kermit) + export(libs.kermit.simple) + export(libs.hyperdrive.multiplatformx.api) + export(project(":shared")) + export(project(":shared-ui")) + } } } }