diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module new file mode 100644 index 0000000..42e6842 Binary files /dev/null and b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module differ diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/0_lilytreasure.knm b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/0_lilytreasure.knm new file mode 100644 index 0000000..870f87a Binary files /dev/null and b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/0_lilytreasure.knm differ diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm new file mode 100644 index 0000000..52cd25b Binary files /dev/null and b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm differ diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github/0_github.knm b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github/0_github.knm new file mode 100644 index 0000000..556b84b Binary files /dev/null and b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github/0_github.knm differ diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io/0_io.knm b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io/0_io.knm new file mode 100644 index 0000000..594f46a Binary files /dev/null and b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io/0_io.knm differ diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/manifest b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/manifest new file mode 100644 index 0000000..2e5b113 --- /dev/null +++ b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/manifest @@ -0,0 +1,14 @@ +abi_version=1.8.0 +builtins_platform=NATIVE +commonizer_native_targets=ios_arm64 ios_simulator_arm64 ios_x64 +commonizer_target=(ios_arm64, ios_simulator_arm64, ios_x64) +compiler_version=2.0.20 +depends=org.jetbrains.kotlin.native.platform.darwin org.jetbrains.kotlin.native.platform.posix stdlib +exportForwardDeclarations= +includedForwardDeclarations= +interop=true +ir_signature_versions=1,2 +metadata_version=1.4.1 +native_targets=ios_arm64 ios_simulator_arm64 ios_x64 +package=io.github.lilytreasure +unique_name=io.github.lilytreasure\:multiplatformContact-cinterop-ContactsHelper diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-0iLOpA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-0iLOpA.klib new file mode 100644 index 0000000..f4c74ab Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-0iLOpA.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib new file mode 100644 index 0000000..faa3b12 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-C4bI1g.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-C4bI1g.klib new file mode 100644 index 0000000..b132d46 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-C4bI1g.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib new file mode 100644 index 0000000..2262d74 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib new file mode 100644 index 0000000..886acce Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-P-idng.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-P-idng.klib new file mode 100644 index 0000000..7c37665 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-P-idng.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-Pgzrcg.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-Pgzrcg.klib new file mode 100644 index 0000000..bd34680 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-Pgzrcg.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-UhctSQ.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-UhctSQ.klib new file mode 100644 index 0000000..4ea4f0d Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-UhctSQ.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib new file mode 100644 index 0000000..66eeef1 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib differ diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib new file mode 100644 index 0000000..b551541 Binary files /dev/null and b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib differ diff --git a/build.gradle.kts b/build.gradle.kts index c98a2b8..5d2daa2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,4 +8,5 @@ plugins { alias(libs.plugins.kotlinMultiplatform) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false alias(libs.plugins.compose.compiler) apply false + alias(libs.plugins.swiftKlib) apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 24b0c05..bec110d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,7 @@ coreKtx = "1.13.1" compose-activity = "1.9.0" libphonenumber = "8.2.0" nexus-publish = "2.0.0" +swiftklib = "0.6.3" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } @@ -46,3 +47,4 @@ jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +swiftKlib = { id = "io.github.ttypic.swiftklib", version.ref = "swiftklib" } diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index 8377085..3ded084 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -20,13 +20,13 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */; }; + 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */; }; 8A6248DC582BF1F1219B2724F364D3AF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - FCDFD630233F0D88D928931630210AD0 /* PBXContainerItemProxy */ = { + 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -36,21 +36,23 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0011AEE22E8296B3D9E0B0B2CDCAB2EE /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; - 03474B27B370D639E8D806589A23E1F7 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; - 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; + 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; - 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; - 482384ADFE4EF692B16FACB8C2021970 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; - 83350B28D2CED399B45C2040DE1A548C /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; + 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; + 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; + 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; + 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; + 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A43877303056397968EC90C7AAFE17E8 /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; - A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BCAED803D074E2E9C3B1327F049C8C2A /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; - CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; - ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; + C7CD3AE5541043B08E230A41960716A7 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; + CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/cocoapods/compose-resources"; sourceTree = ""; }; + E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; + F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -65,83 +67,85 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1F86AA6785DF34AFD5A71790761717DE /* Products */ = { + 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */ = { isa = PBXGroup; children = ( - B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, + 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */, ); - name = Products; + name = "Targets Support Files"; sourceTree = ""; }; - 310087C345B86EEF25A054485E0BB5CB /* Pods-iosApp */ = { + 1F86AA6785DF34AFD5A71790761717DE /* Products */ = { isa = PBXGroup; children = ( - 482384ADFE4EF692B16FACB8C2021970 /* Pods-iosApp.modulemap */, - A43877303056397968EC90C7AAFE17E8 /* Pods-iosApp-acknowledgements.markdown */, - 0011AEE22E8296B3D9E0B0B2CDCAB2EE /* Pods-iosApp-acknowledgements.plist */, - 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */, - BCAED803D074E2E9C3B1327F049C8C2A /* Pods-iosApp-Info.plist */, - 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */, - A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */, - 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */, + B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, ); - name = "Pods-iosApp"; - path = "Target Support Files/Pods-iosApp"; + name = Products; sourceTree = ""; }; - 7F3E228BFEC00EFD2BE63A4B5931AACF /* Support Files */ = { + 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */ = { isa = PBXGroup; children = ( - ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */, - CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */, + 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */, ); - name = "Support Files"; - path = "../iosApp/Pods/Target Support Files/multiplatformContact"; + name = "Development Pods"; sourceTree = ""; }; - 8FED14589C9CCA35C3D5896D1BB36D3F /* multiplatformContact */ = { + 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */ = { isa = PBXGroup; children = ( - B0591A004BA5DF2C64B1D25E0E681CC1 /* Frameworks */, - DD4BCDECD4401FA49BFD2A31E45AFB24 /* Pod */, - 7F3E228BFEC00EFD2BE63A4B5931AACF /* Support Files */, + FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */, + 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */, + F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */, + 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */, + 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */, + 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */, + 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */, + F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */, + 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */, ); - name = multiplatformContact; - path = ../../multiplatformContact; + name = "Pods-iosApp"; + path = "Target Support Files/Pods-iosApp"; sourceTree = ""; }; - 920D8993BDB22317F6D6B1628CCCAC1C /* Development Pods */ = { + 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */ = { isa = PBXGroup; children = ( - 8FED14589C9CCA35C3D5896D1BB36D3F /* multiplatformContact */, + 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */, + 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */, ); - name = "Development Pods"; + name = "Support Files"; + path = "../iosApp/Pods/Target Support Files/multiplatformContact"; sourceTree = ""; }; - B0591A004BA5DF2C64B1D25E0E681CC1 /* Frameworks */ = { + 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */ = { isa = PBXGroup; children = ( - 03474B27B370D639E8D806589A23E1F7 /* shared.framework */, + CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */, + 9F815CAB836CA921CF9462477A533278 /* Frameworks */, + DF396749B9F831C456B12B3837D95124 /* Pod */, + 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */, ); - name = Frameworks; + name = multiplatformContact; + path = ../../multiplatformContact; sourceTree = ""; }; - C9F6DDEE5D76F65BB478A349731F54F4 /* Targets Support Files */ = { + 9F815CAB836CA921CF9462477A533278 /* Frameworks */ = { isa = PBXGroup; children = ( - 310087C345B86EEF25A054485E0BB5CB /* Pods-iosApp */, + C7CD3AE5541043B08E230A41960716A7 /* shared.framework */, ); - name = "Targets Support Files"; + name = Frameworks; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 920D8993BDB22317F6D6B1628CCCAC1C /* Development Pods */, + 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 1F86AA6785DF34AFD5A71790761717DE /* Products */, - C9F6DDEE5D76F65BB478A349731F54F4 /* Targets Support Files */, + 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */, ); sourceTree = ""; }; @@ -153,10 +157,10 @@ name = Frameworks; sourceTree = ""; }; - DD4BCDECD4401FA49BFD2A31E45AFB24 /* Pod */ = { + DF396749B9F831C456B12B3837D95124 /* Pod */ = { isa = PBXGroup; children = ( - 83350B28D2CED399B45C2040DE1A548C /* multiplatformContact.podspec */, + E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */, ); name = Pod; sourceTree = ""; @@ -195,7 +199,7 @@ buildRules = ( ); dependencies = ( - BA9800F3B6CD70BFD0B34BDADF2EB9D5 /* PBXTargetDependency */, + C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */, ); name = "Pods-iosApp"; productName = Pods_iosApp; @@ -267,18 +271,18 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - BA9800F3B6CD70BFD0B34BDADF2EB9D5 /* PBXTargetDependency */ = { + C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = multiplatformContact; target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; - targetProxy = FCDFD630233F0D88D928931630210AD0 /* PBXContainerItemProxy */; + targetProxy = 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 3F152A2292287AA82F6706808CDF0395 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -383,7 +387,7 @@ }; 5421F297C812E9FB327A65CD1313621A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */; + baseConfigurationReference = 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -402,7 +406,7 @@ }; 56B7CA5DD01ADB69BB7F79F545BA3800 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -504,7 +508,7 @@ }; C34325D3B641862AE7A1139AFB4E0AF5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */; + baseConfigurationReference = 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index ebb65f6..92326d2 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; + 84BD33712D79ABD3008FF575 /* ContactsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BD33702D79ABD3008FF575 /* ContactsHelper.swift */; }; BA7E9141DFC9343677956A0B /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECDCBB71984EE56B1436CE14 /* Pods_iosApp.framework */; }; /* End PBXBuildFile section */ @@ -21,6 +22,7 @@ 7555FF7B242A565900829871 /* MultiplatformContacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiplatformContacts.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 84BD33702D79ABD3008FF575 /* ContactsHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsHelper.swift; sourceTree = ""; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; C4D5CF14F93DD2DD36CCF4C7 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; EAE45C34512C71B475E5A58E /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; @@ -78,6 +80,7 @@ 7555FF7D242A565900829871 /* iosApp */ = { isa = PBXGroup; children = ( + 84BD336F2D79ABA4008FF575 /* contacts */, 058557BA273AAA24004C7B11 /* Assets.xcassets */, 7555FF82242A565900829871 /* ContentView.swift */, 7555FF8C242A565B00829871 /* Info.plist */, @@ -87,6 +90,14 @@ path = iosApp; sourceTree = ""; }; + 84BD336F2D79ABA4008FF575 /* contacts */ = { + isa = PBXGroup; + children = ( + 84BD33702D79ABD3008FF575 /* ContactsHelper.swift */, + ); + path = contacts; + sourceTree = ""; + }; 983B9268D3930DE50EA2605E /* Frameworks */ = { isa = PBXGroup; children = ( @@ -115,6 +126,7 @@ 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, + 115BE6A326DB5A1AC9B771B3 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -171,6 +183,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 115BE6A326DB5A1AC9B771B3 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; CB7345DB5F2E35566B2E17F9 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -209,7 +238,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :sample:common:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :multiplatformContact:embedAndSignPodAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -218,6 +247,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 84BD33712D79ABD3008FF575 /* ContactsHelper.swift in Sources */, 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, 7555FF83242A565900829871 /* ContentView.swift in Sources */, ); @@ -354,7 +384,9 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = 9Z5F72MRRD; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -384,7 +416,9 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = "${TEAM_ID}"; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/iosApp/iosApp/contacts/ContactsHelper.swift b/iosApp/iosApp/contacts/ContactsHelper.swift new file mode 100644 index 0000000..9ee6ab4 --- /dev/null +++ b/iosApp/iosApp/contacts/ContactsHelper.swift @@ -0,0 +1,19 @@ +// +// ContactsHelper.swift +// iosApp +// +// Created by Admin on 06/03/2025. +// Copyright © 2025 orgName. All rights reserved. +// +import SwiftUI + +@objc public class ContactsHelper: NSObject { + @objc public override init() { + super.init() + } + + @objc public func loadContacts(){ + print("Contacts loader invoked") + } + +} diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index 753b46f..c411b01 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -7,8 +7,16 @@ plugins { kotlin("native.cocoapods") id("com.vanniktech.maven.publish") version "0.28.0" alias(libs.plugins.compose.compiler) + alias(libs.plugins.swiftKlib) } +swiftklib { + create("ContactsHelper") { + path = file("/Users/admin/StudioProjects/MultiplatformContacts/iosApp/iosApp/contacts") + packageName("io.github.lilytreasure") + minIos = 14 + } +} kotlin { androidTarget { compilations.all { @@ -19,21 +27,29 @@ kotlin { publishLibraryVariants("release", "debug") } - iosX64() - iosArm64() - iosSimulatorArm64() + val iosTargets = listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ) + +// iosTargets.forEach { target -> +// target.compilations["main"].cinterops { +// create("ContactsHelper") +// } +// } + cocoapods { version = "1.0.0" summary = "Some description for the Shared Module" homepage = "Link to the Shared Module homepage" ios.deploymentTarget = "14.0" - podfile = project.file("../iosApp/Podfile") // why doesn't it load the cocoapods from the iosApp podfile? + podfile = project.file("../iosApp/Podfile") // ✅ This will load your Podfile correctly framework { baseName = "shared" isStatic = true } } - sourceSets { androidMain.dependencies { diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index c7da77e..f7b5fd3 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -2,6 +2,7 @@ package multiContacts import androidx.compose.runtime.Composable import androidx.compose.runtime.remember +import kotlinx.cinterop.ExperimentalForeignApi import platform.Contacts.CNContact import platform.ContactsUI.CNContactPickerDelegateProtocol import platform.ContactsUI.CNContactPickerViewController @@ -22,6 +23,9 @@ actual fun pickMultiplatformContacts( countryISOCode: String, onResult: ContactPickedCallback ): Launcher { + //Contacts helper +// val contacts=ContactsHelper() +// contacts.loadContacts() val launcherCustom = remember { Launcher(onLaunch = { val picker = CNContactPickerViewController()