From 1a28f390bcc835695201809abacba752abb04d57 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Mon, 5 Jan 2026 17:07:31 +0100 Subject: [PATCH] Update iOS RustCore embed folder structure (#1404) --- .gitignore | 7 - apps/mobile-app/android/.gitignore | 4 + apps/mobile-app/ios/.gitignore | 15 +- .../ios/AliasVault.xcodeproj/project.pbxproj | 481 +++++++++++++++--- .../ios/RustCoreFramework/Info.plist | 22 + .../ios/RustCoreFramework/RustCore.swift | 16 + .../RustCore/README.md | 0 .../ios/RustCoreFramework/RustCoreFramework.h | 17 + .../ios/RustCoreFramework/module.modulemap | 5 + .../Services/VaultMergeService.swift | 1 + .../Utils/RustCredentialMatcher.swift | 1 + core/rust/build.sh | 15 +- 12 files changed, 480 insertions(+), 104 deletions(-) create mode 100644 apps/mobile-app/ios/RustCoreFramework/Info.plist create mode 100644 apps/mobile-app/ios/RustCoreFramework/RustCore.swift rename apps/mobile-app/ios/{VaultUI => RustCoreFramework}/RustCore/README.md (100%) create mode 100644 apps/mobile-app/ios/RustCoreFramework/RustCoreFramework.h create mode 100644 apps/mobile-app/ios/RustCoreFramework/module.modulemap diff --git a/.gitignore b/.gitignore index cbaeb0927..2e14df285 100644 --- a/.gitignore +++ b/.gitignore @@ -443,12 +443,5 @@ core/rust/target/ # Browser extension WASM (built by: cd core/rust && ./build.sh --browser) apps/browser-extension/src/utils/dist/core/rust -# iOS Swift bindings (built by: cd core/rust && ./build.sh --ios) -apps/mobile-app/ios/VaultStoreKit/RustCore/ - -# Android Kotlin bindings (built by: cd core/rust && ./build.sh --android) -apps/mobile-app/android/app/src/main/java/net/aliasvault/app/rustcore/uniffi/ -apps/mobile-app/android/app/src/main/jniLibs/ - # Server .NET bindings (built by: cd core/rust && ./build.sh --server) apps/server/Utilities/AliasVault.RustCore/ diff --git a/apps/mobile-app/android/.gitignore b/apps/mobile-app/android/.gitignore index 8a6be0771..f5701ea7c 100644 --- a/apps/mobile-app/android/.gitignore +++ b/apps/mobile-app/android/.gitignore @@ -14,3 +14,7 @@ local.properties # Bundle artifacts *.jsbundle + +# Android Kotlin bindings (built by: cd core/rust && ./build.sh --android) +app/src/main/java/net/aliasvault/app/rustcore/uniffi/ +app/src/main/jniLibs/ \ No newline at end of file diff --git a/apps/mobile-app/ios/.gitignore b/apps/mobile-app/ios/.gitignore index c00d61a11..cf9744e80 100644 --- a/apps/mobile-app/ios/.gitignore +++ b/apps/mobile-app/ios/.gitignore @@ -31,12 +31,11 @@ project.xcworkspace # Generated Rust Core (built from /core/rust via Scripts/build-rust-core.sh) /Frameworks/ -/VaultStoreKit/RustCore/Generated/ -/VaultStoreKit/RustCore/lib/ -/VaultStoreKit/RustCore/include/ -/VaultStoreKit/RustCore/.rust-core-checksum -/VaultUI/RustCore/Generated/ -/VaultUI/RustCore/lib/ -/VaultUI/RustCore/include/ -/VaultUI/RustCore/.rust-core-checksum +/RustCoreFramework/RustCore/Generated/ +/RustCoreFramework/RustCore/lib/ +/RustCoreFramework/RustCore/include/ +/RustCoreFramework/RustCore/.rust-core-checksum +/RustCoreFramework/aliasvault_coreFFI.h + + diff --git a/apps/mobile-app/ios/AliasVault.xcodeproj/project.pbxproj b/apps/mobile-app/ios/AliasVault.xcodeproj/project.pbxproj index 24623092a..d96069ded 100644 --- a/apps/mobile-app/ios/AliasVault.xcodeproj/project.pbxproj +++ b/apps/mobile-app/ios/AliasVault.xcodeproj/project.pbxproj @@ -7,12 +7,21 @@ objects = { /* Begin PBXBuildFile section */ + 07A10A71081ED4937FFAA625 /* RustCoreFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; }; 0EF28D873AC559A33A3B178F /* libPods-VaultUITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A795EF04BF70F714FA4B0E5 /* libPods-VaultUITests.a */; }; 1381C2F6D317F2404928BA59 /* libPods-VaultUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C32D89DCBA51D7C8CDE51DD2 /* libPods-VaultUI.a */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 3D1B0279B0714C8FF732D2D3 /* libPods-AliasVault.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E23F2188770B15FCBFEBC57 /* libPods-AliasVault.a */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; + 4E959304D034897952CD0FAA /* RustCoreFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 3441C5082812204EC761AA88 /* RustCoreFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56C425FAFF2BEE601C4FC167 /* aliasvault_core.swift in Sources */ = {isa = PBXBuildFile; fileRef = 670F12C8E2555CEAB20095EA /* aliasvault_core.swift */; }; + 658478B7E2C454B9FD5A4461 /* RustCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCA9E55219D409EB8F443E49 /* RustCore.swift */; }; + 6B02BE4A57083EFEF38AD36C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C8C42997B5868C83ECC353F /* Foundation.framework */; }; + 74ABD6C48D811AB8DDC7A6B2 /* RustCoreFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; }; + 835999B8CD9DA8BC5D467BA1 /* RustCoreFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; }; + 905A3FBFD11ECE1AAC428868 /* RustCoreFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9E8B9B9318C79E9CBB868429 /* libPods-VaultStoreKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D17078F549B652835E3A4AFA /* libPods-VaultStoreKit.a */; }; + B00629AD90FABE8F65D64107 /* RustCoreFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; }; B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; B2E3CEC9AABDA3497BFE65B7 /* libPods-VaultStoreKitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E9AD944E3A0F270C797F5DD /* libPods-VaultStoreKitTests.a */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; @@ -44,10 +53,25 @@ CEE9098B2DA548C7008D568F /* Autofill.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE9097E2DA548C7008D568F /* Autofill.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; D6E19ADE0A608FA46984C60D /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BA88D6CB4FD656C7180FE9F7 /* PrivacyInfo.xcprivacy */; }; E8FD7000523F4549908941A2 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D5DBE3C1FA4900A7CD27FB /* noop-file.swift */; }; + E96E1EC08316C9C3CD439F0A /* aliasvault_coreFFI.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CE7700D50681E26308A4E29 /* aliasvault_coreFFI.h */; settings = {ATTRIBUTES = (Public, ); }; }; F53476297C14F7D0583D7988 /* libPods-Autofill.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADB2CDEB4F04BBB8D4DB589C /* libPods-Autofill.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 1F09A0CB86D87B7C44135D75 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55118F9387BE1BFE21365CB8; + remoteInfo = RustCoreFramework; + }; + 438C62A9BB3AAF42A6633996 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55118F9387BE1BFE21365CB8; + remoteInfo = RustCoreFramework; + }; CE48FD652DBEA3B800E5E3D6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -118,6 +142,20 @@ remoteGlobalIDString = CEE9097D2DA548C7008D568F; remoteInfo = autofill; }; + DEAC25BDB7E709F0299B67EA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55118F9387BE1BFE21365CB8; + remoteInfo = RustCoreFramework; + }; + EBEBD450976E6574AB91BE8D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55118F9387BE1BFE21365CB8; + remoteInfo = RustCoreFramework; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -131,6 +169,7 @@ CE7782642EA1822400A75E6F /* VaultUtils.framework in Embed Frameworks */, CEE481802DBE8AC800F4A367 /* VaultUI.framework in Embed Frameworks */, CEE482C02DBE8EFF00F4A367 /* VaultModels.framework in Embed Frameworks */, + 905A3FBFD11ECE1AAC428868 /* RustCoreFramework.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -167,28 +206,39 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AliasVault/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AliasVault/Info.plist; sourceTree = ""; }; 1A927300CBD3BFE2B7A3CA37 /* Pods-VaultUI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultUI.release.xcconfig"; path = "Target Support Files/Pods-VaultUI/Pods-VaultUI.release.xcconfig"; sourceTree = ""; }; + 1C8C42997B5868C83ECC353F /* 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; }; 238920B861580FF8C96D6B5B /* libPods-PreviewHost.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PreviewHost.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3441C5082812204EC761AA88 /* RustCoreFramework.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RustCoreFramework.h; sourceTree = ""; }; 368EE3A71DE7308558E8E815 /* Pods-VaultStoreKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultStoreKit.release.xcconfig"; path = "Target Support Files/Pods-VaultStoreKit/Pods-VaultStoreKit.release.xcconfig"; sourceTree = ""; }; 456ACD01FF420AE789429A59 /* libPods-VaultStoreTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VaultStoreTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 587654EE2E1F1914DBBD7F37 /* Pods-Autofill.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Autofill.release.xcconfig"; path = "Target Support Files/Pods-Autofill/Pods-Autofill.release.xcconfig"; sourceTree = ""; }; 5C1EA06BE7608888B8DF9CE0 /* Pods-AliasVault.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AliasVault.debug.xcconfig"; path = "Target Support Files/Pods-AliasVault/Pods-AliasVault.debug.xcconfig"; sourceTree = ""; }; + 5CE7700D50681E26308A4E29 /* aliasvault_coreFFI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = aliasvault_coreFFI.h; sourceTree = ""; }; + 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RustCoreFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 670F12C8E2555CEAB20095EA /* aliasvault_core.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = aliasvault_core.swift; sourceTree = ""; }; 76D5DBE3C1FA4900A7CD27FB /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "AliasVault/noop-file.swift"; sourceTree = ""; }; + 802A6BCBB1A92683500CC923 /* module.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; 80E31207C11AA9B7984E118D /* Pods-VaultStoreTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultStoreTests.debug.xcconfig"; path = "Target Support Files/Pods-VaultStoreTests/Pods-VaultStoreTests.debug.xcconfig"; sourceTree = ""; }; 82C6F986E9F08FE1179D0A40 /* Pods-AliasVault.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AliasVault.release.xcconfig"; path = "Target Support Files/Pods-AliasVault/Pods-AliasVault.release.xcconfig"; sourceTree = ""; }; 83C4F2FD713FB96C56BB0D24 /* Pods-VaultStoreTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultStoreTests.release.xcconfig"; path = "Target Support Files/Pods-VaultStoreTests/Pods-VaultStoreTests.release.xcconfig"; sourceTree = ""; }; + 866614F28C50C18588D96EA5 /* aliasvault_core.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = aliasvault_core.swift; sourceTree = ""; }; + 8F8258CE46969A87661E0302 /* RustCore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RustCore.swift; sourceTree = ""; }; 962DE0FB93C9458BAFEEED60 /* AliasVault-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "AliasVault-Bridging-Header.h"; path = "AliasVault/AliasVault-Bridging-Header.h"; sourceTree = ""; }; 9668BBEEC62508A81A7214E2 /* Pods-PreviewHost.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PreviewHost.release.xcconfig"; path = "Target Support Files/Pods-PreviewHost/Pods-PreviewHost.release.xcconfig"; sourceTree = ""; }; + 9996E7A841D488251B139CFC /* aliasvault_core.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = aliasvault_core.swift; path = RustCoreFramework/RustCore/Generated/aliasvault_core.swift; sourceTree = ""; }; 9A795EF04BF70F714FA4B0E5 /* libPods-VaultUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VaultUITests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 9E9AD944E3A0F270C797F5DD /* libPods-VaultStoreKitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VaultStoreKitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; A9E70CCF7AAA4E05B57CCCC4 /* Pods-VaultStoreKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultStoreKitTests.debug.xcconfig"; path = "Target Support Files/Pods-VaultStoreKitTests/Pods-VaultStoreKitTests.debug.xcconfig"; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = AliasVault/SplashScreen.storyboard; sourceTree = ""; }; ADB2CDEB4F04BBB8D4DB589C /* libPods-Autofill.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Autofill.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B18F3A7E310165C29C8C6DFE /* Pods-VaultStoreKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultStoreKitTests.release.xcconfig"; path = "Target Support Files/Pods-VaultStoreKitTests/Pods-VaultStoreKitTests.release.xcconfig"; sourceTree = ""; }; + B27A728D066AF582C5B9544F /* module.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; B3C355F5D1686A5CF7706974 /* Pods-VaultUI.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VaultUI.debug.xcconfig"; path = "Target Support Files/Pods-VaultUI/Pods-VaultUI.debug.xcconfig"; sourceTree = ""; }; BA88D6CB4FD656C7180FE9F7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = AliasVault/PrivacyInfo.xcprivacy; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; C32D89DCBA51D7C8CDE51DD2 /* libPods-VaultUI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VaultUI.a"; sourceTree = BUILT_PRODUCTS_DIR; }; C87FA54AAFE121325F22CDDE /* Pods-PreviewHost.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PreviewHost.debug.xcconfig"; path = "Target Support Files/Pods-PreviewHost/Pods-PreviewHost.debug.xcconfig"; sourceTree = ""; }; + C9F10947D429671B08FE934C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; CE26D68C2DA7FCD2006DC04D /* VaultManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VaultManager.swift; sourceTree = ""; }; CE3AE2B02DC7ACD700E7745E /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = ""; }; CE59C75F2E4F47FD0024A246 /* VaultUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VaultUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -206,9 +256,12 @@ CEE9097E2DA548C7008D568F /* Autofill.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Autofill.appex; sourceTree = BUILT_PRODUCTS_DIR; }; CEE9097F2DA548C7008D568F /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; }; D17078F549B652835E3A4AFA /* libPods-VaultStoreKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VaultStoreKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DCA9E55219D409EB8F443E49 /* RustCore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RustCore.swift; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + F69423750E7F4AD8302AC70B /* RustCoreFramework.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RustCoreFramework.h; sourceTree = ""; }; F8E67ADE689A44F7301E9453 /* Pods-Autofill.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Autofill.debug.xcconfig"; path = "Target Support Files/Pods-Autofill/Pods-Autofill.debug.xcconfig"; sourceTree = ""; }; FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-AliasVault/ExpoModulesProvider.swift"; sourceTree = ""; }; + FC50A59017FED3A083EC2F88 /* aliasvault_coreFFI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = aliasvault_coreFFI.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -241,6 +294,15 @@ CEE4809C2DBE86DD00F4A367 /* VaultStoreKit.framework in Frameworks */, 3D1B0279B0714C8FF732D2D3 /* libPods-AliasVault.a in Frameworks */, CE7782632EA1822400A75E6F /* VaultUtils.framework in Frameworks */, + B00629AD90FABE8F65D64107 /* RustCoreFramework.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9CAF81A5275E87E62EBFE19E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6B02BE4A57083EFEF38AD36C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -268,6 +330,7 @@ CE48FCEC2DBE939A00E5E3D6 /* VaultModels.framework in Frameworks */, CE7782732EA18A3500A75E6F /* VaultUtils.framework in Frameworks */, 9E8B9B9318C79E9CBB868429 /* libPods-VaultStoreKit.a in Frameworks */, + 07A10A71081ED4937FFAA625 /* RustCoreFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -287,6 +350,7 @@ CEE482CB2DBE8F2B00F4A367 /* VaultModels.framework in Frameworks */, CE77826E2EA18A2F00A75E6F /* VaultUtils.framework in Frameworks */, 1381C2F6D317F2404928BA59 /* libPods-VaultUI.a in Frameworks */, + 74ABD6C48D811AB8DDC7A6B2 /* RustCoreFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -306,12 +370,21 @@ CEE909802DA548C7008D568F /* AuthenticationServices.framework in Frameworks */, CEE480AC2DBE88AB00F4A367 /* VaultStoreKit.framework in Frameworks */, F53476297C14F7D0583D7988 /* libPods-Autofill.a in Frameworks */, + 835999B8CD9DA8BC5D467BA1 /* RustCoreFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0E0B7331E91EB4FF6E74485D /* RustCore */ = { + isa = PBXGroup; + children = ( + F3B6DE34AFCF0A5ECDDF12D8 /* Generated */, + ); + path = RustCore; + sourceTree = ""; + }; 13B07FAE1A68108700A75B9A /* AliasVault */ = { isa = PBXGroup; children = ( @@ -342,10 +415,43 @@ C32D89DCBA51D7C8CDE51DD2 /* libPods-VaultUI.a */, 9E9AD944E3A0F270C797F5DD /* libPods-VaultStoreKitTests.a */, 9A795EF04BF70F714FA4B0E5 /* libPods-VaultUITests.a */, + DC967BC4C05235EC23436A20 /* iOS */, ); name = Frameworks; sourceTree = ""; }; + 3AD00C41DD88E219A26C2E41 /* RustCoreFramework */ = { + isa = PBXGroup; + children = ( + 3441C5082812204EC761AA88 /* RustCoreFramework.h */, + 5CE7700D50681E26308A4E29 /* aliasvault_coreFFI.h */, + DCA9E55219D409EB8F443E49 /* RustCore.swift */, + C9F10947D429671B08FE934C /* Info.plist */, + 802A6BCBB1A92683500CC923 /* module.modulemap */, + 0E0B7331E91EB4FF6E74485D /* RustCore */, + ); + path = RustCoreFramework; + sourceTree = ""; + }; + 501D7BE54850A587E2E453AC /* Generated */ = { + isa = PBXGroup; + children = ( + 866614F28C50C18588D96EA5 /* aliasvault_core.swift */, + ); + path = Generated; + sourceTree = ""; + }; + 6114AD0A31612EA499210371 = { + isa = PBXGroup; + children = ( + 8F8258CE46969A87661E0302 /* RustCore.swift */, + BF742AD8EAF362C5826AF91C /* RustCore */, + B27A728D066AF582C5B9544F /* module.modulemap */, + FC50A59017FED3A083EC2F88 /* aliasvault_coreFFI.h */, + F69423750E7F4AD8302AC70B /* RustCoreFramework.h */, + ); + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -371,6 +477,9 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, D65327D7A22EEC0BE12398D9 /* Pods */, 83CBBA001A601CBA00E9B192 /* Products */, + 6114AD0A31612EA499210371, + CE5212B62F0C061800F4C835 /* Recovered References */, + 3AD00C41DD88E219A26C2E41 /* RustCoreFramework */, ); indentWidth = 2; sourceTree = ""; @@ -388,6 +497,7 @@ CEE482AA2DBE8EFE00F4A367 /* VaultModels.framework */, CE59C75F2E4F47FD0024A246 /* VaultUITests.xctest */, CE77825D2EA1822400A75E6F /* VaultUtils.framework */, + 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */, ); name = Products; sourceTree = ""; @@ -400,6 +510,14 @@ name = AliasVault; sourceTree = ""; }; + AF1F34BFD59E4E97E7A2D4E7 /* include */ = { + isa = PBXGroup; + children = ( + ); + name = include; + path = RustCoreFramework/RustCore/include; + sourceTree = ""; + }; BB2F792B24A3F905000567C9 /* Supporting */ = { isa = PBXGroup; children = ( @@ -409,6 +527,23 @@ path = AliasVault/Supporting; sourceTree = ""; }; + BF742AD8EAF362C5826AF91C /* RustCore */ = { + isa = PBXGroup; + children = ( + 501D7BE54850A587E2E453AC /* Generated */, + AF1F34BFD59E4E97E7A2D4E7 /* include */, + ); + path = RustCore; + sourceTree = ""; + }; + CE5212B62F0C061800F4C835 /* Recovered References */ = { + isa = PBXGroup; + children = ( + 9996E7A841D488251B139CFC /* aliasvault_core.swift */, + ); + name = "Recovered References"; + sourceTree = ""; + }; CE9A58F92DBA97D500CB0A4C /* NativeVaultManager */ = { isa = PBXGroup; children = ( @@ -451,6 +586,22 @@ name = ExpoModulesProviders; sourceTree = ""; }; + DC967BC4C05235EC23436A20 /* iOS */ = { + isa = PBXGroup; + children = ( + 1C8C42997B5868C83ECC353F /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + F3B6DE34AFCF0A5ECDDF12D8 /* Generated */ = { + isa = PBXGroup; + children = ( + 670F12C8E2555CEAB20095EA /* aliasvault_core.swift */, + ); + path = Generated; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -482,6 +633,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E747A3339226A5367E92F0DD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4E959304D034897952CD0FAA /* RustCoreFramework.h in Headers */, + E96E1EC08316C9C3CD439F0A /* aliasvault_coreFFI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -509,12 +669,32 @@ CEE4817E2DBE8AC800F4A367 /* PBXTargetDependency */, CEE482BE2DBE8EFF00F4A367 /* PBXTargetDependency */, CE7782622EA1822400A75E6F /* PBXTargetDependency */, + FB026F4A1D001039843174C2 /* PBXTargetDependency */, ); name = AliasVault; productName = AliasVault; productReference = 13B07F961A680F5B00A75B9A /* AliasVault.app */; productType = "com.apple.product-type.application"; }; + 55118F9387BE1BFE21365CB8 /* RustCoreFramework */ = { + isa = PBXNativeTarget; + buildConfigurationList = 05E54BEDC9F8B5D8DCB07E11 /* Build configuration list for PBXNativeTarget "RustCoreFramework" */; + buildPhases = ( + 7C20B1F4BE2D9D5DB4B311E8 /* Build Rust Core */, + E747A3339226A5367E92F0DD /* Headers */, + D176309B28AC4E5FB3FACCE2 /* Sources */, + 9CAF81A5275E87E62EBFE19E /* Frameworks */, + A9503CBA7BE5EEA6F2B0D3F9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RustCoreFramework; + productName = RustCoreFramework; + productReference = 61BC8C49EE3C1989FFB6DB3B /* RustCoreFramework.framework */; + productType = "com.apple.product-type.framework"; + }; CE59C75E2E4F47FD0024A246 /* VaultUITests */ = { isa = PBXNativeTarget; buildConfigurationList = CE59C7682E4F47FE0024A246 /* Build configuration list for PBXNativeTarget "VaultUITests" */; @@ -562,7 +742,6 @@ isa = PBXNativeTarget; buildConfigurationList = CEE4809E2DBE86DD00F4A367 /* Build configuration list for PBXNativeTarget "VaultStoreKit" */; buildPhases = ( - CE4F28A02F07E5B80032CD40 /* ShellScript */, CBF1BF747E3EB6DC3F2F5AB8 /* [CP] Check Pods Manifest.lock */, CEE480822DBE86DC00F4A367 /* Headers */, CEE480832DBE86DC00F4A367 /* Sources */, @@ -572,6 +751,7 @@ buildRules = ( ); dependencies = ( + 174AAF666366E11F87CAB46E /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( CEE480882DBE86DC00F4A367 /* VaultStoreKit */, @@ -617,6 +797,7 @@ buildRules = ( ); dependencies = ( + 51501F4EEC12BCC0F7346CE5 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( CEE4816B2DBE8AC800F4A367 /* VaultUI */, @@ -663,6 +844,7 @@ dependencies = ( CEE480AF2DBE88AB00F4A367 /* PBXTargetDependency */, CE48FD662DBEA3B800E5E3D6 /* PBXTargetDependency */, + D1EF45A937B53AA2D64CE2E5 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( CEE909812DA548C7008D568F /* Autofill */, @@ -747,6 +929,7 @@ CE59C75E2E4F47FD0024A246 /* VaultUITests */, CEE482A92DBE8EFE00F4A367 /* VaultModels */, CE77825C2EA1822400A75E6F /* VaultUtils */, + 55118F9387BE1BFE21365CB8 /* RustCoreFramework */, ); }; /* End PBXProject section */ @@ -764,6 +947,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A9503CBA7BE5EEA6F2B0D3F9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE59C75D2E4F47FD0024A246 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -918,6 +1108,24 @@ 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; }; + 7C20B1F4BE2D9D5DB4B311E8 /* Build Rust Core */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build Rust Core"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Add Rust to PATH (Xcode doesn't include ~/.cargo/bin by default)\nexport PATH=\"$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin:$PATH\"\n\n# Build Rust core library for iOS (handles all file copying)\ncd \"$PROJECT_DIR/../../../core/rust\"\n./build.sh --ios --incremental\n"; + }; 8F3BE577A5D473AA9A5D1530 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1056,27 +1264,6 @@ shellPath = /bin/sh; shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"${PODS_ROOT}/SwiftLint/swiftlint\" --config \"${SRCROOT}/.swiftlint.yml\"\n"; }; - CE4F28A02F07E5B80032CD40 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "$(SRCROOT)/../../../core/rust/src/", - "$(SRCROOT)/../../../core/rust/Cargo.toml", - ); - outputFileListPaths = ( - ); - outputPaths = ( - "$(SRCROOT)/VaultStoreKit/RustCore/lib/device/libaliasvault_core.a", - "$(SRCROOT)/VaultStoreKit/RustCore/Generated/aliasvault_core.swift", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/build-rust-core.sh\"\n"; - }; F09C43BBB1E788B0094C9F0D /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1184,9 +1371,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D176309B28AC4E5FB3FACCE2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 658478B7E2C454B9FD5A4461 /* RustCore.swift in Sources */, + 56C425FAFF2BEE601C4FC167 /* aliasvault_core.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 174AAF666366E11F87CAB46E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RustCoreFramework; + target = 55118F9387BE1BFE21365CB8 /* RustCoreFramework */; + targetProxy = 438C62A9BB3AAF42A6633996 /* PBXContainerItemProxy */; + }; + 51501F4EEC12BCC0F7346CE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RustCoreFramework; + target = 55118F9387BE1BFE21365CB8 /* RustCoreFramework */; + targetProxy = DEAC25BDB7E709F0299B67EA /* PBXContainerItemProxy */; + }; CE48FD662DBEA3B800E5E3D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CEE481692DBE8AC800F4A367 /* VaultUI */; @@ -1237,13 +1445,76 @@ target = CEE9097D2DA548C7008D568F /* Autofill */; targetProxy = CEE909892DA548C7008D568F /* PBXContainerItemProxy */; }; + D1EF45A937B53AA2D64CE2E5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RustCoreFramework; + target = 55118F9387BE1BFE21365CB8 /* RustCoreFramework */; + targetProxy = 1F09A0CB86D87B7C44135D75 /* PBXContainerItemProxy */; + }; + FB026F4A1D001039843174C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RustCoreFramework; + target = 55118F9387BE1BFE21365CB8 /* RustCoreFramework */; + targetProxy = EBEBD450976E6574AB91BE8D /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 082DFCD73EA027E328DE92A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ARCHS = arm64; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXCLUDED_ARCHS = x86_64; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = RustCoreFramework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/RustCoreFramework/RustCore/lib/$(RUST_LIB_PLATFORM)", + ); + MARKETING_VERSION = 1.0; + MODULEMAP_FILE = "$(SRCROOT)/RustCoreFramework/module.modulemap"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-all_load", + "-laliasvault_core", + ); + PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.RustCoreFramework; + PRODUCT_NAME = "$(TARGET_NAME)"; + RUST_LIB_PLATFORM = device; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; + SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/RustCoreFramework/RustCore/include"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VALID_ARCHS = arm64; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5C1EA06BE7608888B8DF9CE0 /* Pods-AliasVault.debug.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_APPICON_NAME = AliasVault; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CLANG_ENABLE_MODULES = YES; @@ -1253,6 +1524,7 @@ CURRENT_PROJECT_VERSION = 2600100; DEVELOPMENT_TEAM = 8PHW4HN3F7; ENABLE_BITCODE = NO; + EXCLUDED_ARCHS = x86_64; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "FB_SONARKIT_ENABLED=1", @@ -1275,11 +1547,12 @@ PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app; PRODUCT_NAME = AliasVault; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_OBJC_BRIDGING_HEADER = "AliasVault/AliasVault-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -1288,12 +1561,14 @@ isa = XCBuildConfiguration; baseConfigurationReference = 82C6F986E9F08FE1179D0A40 /* Pods-AliasVault.release.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_APPICON_NAME = AliasVault; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = AliasVault/AliasVault.entitlements; CURRENT_PROJECT_VERSION = 2600100; DEVELOPMENT_TEAM = 8PHW4HN3F7; + EXCLUDED_ARCHS = x86_64; INFOPLIST_FILE = AliasVault/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = AliasVault; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; @@ -1311,10 +1586,11 @@ OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app; PRODUCT_NAME = AliasVault; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_OBJC_BRIDGING_HEADER = "AliasVault/AliasVault-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; @@ -1435,6 +1711,56 @@ }; name = Release; }; + 86D2A002CEF090A929D6E593 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ARCHS = arm64; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXCLUDED_ARCHS = x86_64; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = RustCoreFramework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/RustCoreFramework/RustCore/lib/$(RUST_LIB_PLATFORM)", + ); + MARKETING_VERSION = 1.0; + MODULEMAP_FILE = "$(SRCROOT)/RustCoreFramework/module.modulemap"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "-all_load", + "-laliasvault_core", + ); + PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.RustCoreFramework; + PRODUCT_NAME = "$(TARGET_NAME)"; + RUST_LIB_PLATFORM = simulator; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; + SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/RustCoreFramework/RustCore/include"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; CE59C7662E4F47FE0024A246 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0185B497D6794232013782D4 /* Pods-VaultUITests.debug.xcconfig */; @@ -1507,6 +1833,7 @@ CE7782662EA1822400A75E6F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1526,6 +1853,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -1556,6 +1884,7 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1564,6 +1893,7 @@ CE7782672EA1822400A75E6F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1583,6 +1913,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -1611,6 +1942,7 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1620,6 +1952,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 09DFCC3CBA13D19073CBCC7F /* Pods-VaultStoreKit.debug.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1636,12 +1969,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = NO; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/include", - ); INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 17.0; @@ -1650,22 +1980,13 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/$(RUST_LIB_PLATFORM)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/device", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/simulator", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-laliasvault_core", - ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app.VaultStoreKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1674,12 +1995,13 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_INSTALL_MODULE = YES; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1689,6 +2011,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 368EE3A71DE7308558E8E815 /* Pods-VaultStoreKit.release.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1706,12 +2029,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = NO; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/include", - ); INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 17.0; @@ -1720,21 +2040,12 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/$(RUST_LIB_PLATFORM)", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/device", - "$(PROJECT_DIR)/VaultStoreKit/RustCore/lib/simulator", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-laliasvault_core", - ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app.VaultStoreKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1743,11 +2054,12 @@ SKIP_INSTALL = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_INSTALL_MODULE = YES; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1824,6 +2136,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = B3C355F5D1686A5CF7706974 /* Pods-VaultUI.debug.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1840,6 +2153,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -1850,27 +2164,13 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/device", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/simulator", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/$(RUST_LIB_PLATFORM)", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/device", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/simulator", - ); MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-laliasvault_core", - ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app.VaultUI; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1879,12 +2179,13 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultUI/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_INSTALL_MODULE = YES; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1894,6 +2195,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 1A927300CBD3BFE2B7A3CA37 /* Pods-VaultUI.release.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1911,6 +2213,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -1921,20 +2224,12 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/device", - "$(PROJECT_DIR)/VaultUI/RustCore/lib/simulator", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-laliasvault_core", - ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = net.aliasvault.app.VaultUI; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; @@ -1943,11 +2238,12 @@ SKIP_INSTALL = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultUI/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_INSTALL_MODULE = YES; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1956,6 +2252,7 @@ CEE482C22DBE8EFF00F4A367 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -1972,6 +2269,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -1999,6 +2297,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -2007,6 +2306,7 @@ CEE482C32DBE8EFF00F4A367 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; @@ -2024,6 +2324,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; @@ -2049,6 +2350,7 @@ SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -2058,6 +2360,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = F8E67ADE689A44F7301E9453 /* Pods-Autofill.debug.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -2071,6 +2374,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 8PHW4HN3F7; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = autofill/Info.plist; @@ -2092,10 +2396,11 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; }; name = Debug; }; @@ -2103,6 +2408,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 587654EE2E1F1914DBBD7F37 /* Pods-Autofill.release.xcconfig */; buildSettings = { + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -2117,6 +2423,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 8PHW4HN3F7; ENABLE_USER_SCRIPT_SANDBOXING = YES; + EXCLUDED_ARCHS = x86_64; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = autofill/Info.plist; @@ -2137,15 +2444,25 @@ SKIP_INSTALL = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INCLUDE_PATHS = "$(inherited) $(PROJECT_DIR)/VaultStoreKit/RustCore/include"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 05E54BEDC9F8B5D8DCB07E11 /* Build configuration list for PBXNativeTarget "RustCoreFramework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 082DFCD73EA027E328DE92A6 /* Release */, + 86D2A002CEF090A929D6E593 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AliasVault" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/apps/mobile-app/ios/RustCoreFramework/Info.plist b/apps/mobile-app/ios/RustCoreFramework/Info.plist new file mode 100644 index 000000000..e1fe4cfb7 --- /dev/null +++ b/apps/mobile-app/ios/RustCoreFramework/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/apps/mobile-app/ios/RustCoreFramework/RustCore.swift b/apps/mobile-app/ios/RustCoreFramework/RustCore.swift new file mode 100644 index 000000000..6c6d8ae45 --- /dev/null +++ b/apps/mobile-app/ios/RustCoreFramework/RustCore.swift @@ -0,0 +1,16 @@ +// +// RustCore.swift +// RustCoreFramework +// +// Re-exports UniFFI generated Rust bindings for use by VaultStoreKit and VaultUI +// + +import Foundation + +// This file serves as a placeholder to ensure the RustCoreFramework module is created. +// All Rust Core functionality is provided by the UniFFI-generated Swift bindings +// in RustCore/Generated/aliasvault_core.swift, which are automatically exported +// as part of this framework. + +// The filterCredentialsJson function and any other Rust functions are available +// directly when importing RustCoreFramework, no additional re-export needed. diff --git a/apps/mobile-app/ios/VaultUI/RustCore/README.md b/apps/mobile-app/ios/RustCoreFramework/RustCore/README.md similarity index 100% rename from apps/mobile-app/ios/VaultUI/RustCore/README.md rename to apps/mobile-app/ios/RustCoreFramework/RustCore/README.md diff --git a/apps/mobile-app/ios/RustCoreFramework/RustCoreFramework.h b/apps/mobile-app/ios/RustCoreFramework/RustCoreFramework.h new file mode 100644 index 000000000..e49c835df --- /dev/null +++ b/apps/mobile-app/ios/RustCoreFramework/RustCoreFramework.h @@ -0,0 +1,17 @@ +// +// RustCoreFramework.h +// RustCoreFramework +// +// Umbrella header for RustCoreFramework +// + +#import + +//! Project version number for RustCoreFramework. +FOUNDATION_EXPORT double RustCoreFrameworkVersionNumber; + +//! Project version string for RustCoreFramework. +FOUNDATION_EXPORT const unsigned char RustCoreFrameworkVersionString[]; + +// Import the UniFFI generated C header +#import "aliasvault_coreFFI.h" diff --git a/apps/mobile-app/ios/RustCoreFramework/module.modulemap b/apps/mobile-app/ios/RustCoreFramework/module.modulemap new file mode 100644 index 000000000..dd87c71d0 --- /dev/null +++ b/apps/mobile-app/ios/RustCoreFramework/module.modulemap @@ -0,0 +1,5 @@ +framework module RustCoreFramework { + umbrella header "RustCoreFramework.h" + export * + module * { export * } +} diff --git a/apps/mobile-app/ios/VaultStoreKit/Services/VaultMergeService.swift b/apps/mobile-app/ios/VaultStoreKit/Services/VaultMergeService.swift index f412a866b..44b91fe76 100644 --- a/apps/mobile-app/ios/VaultStoreKit/Services/VaultMergeService.swift +++ b/apps/mobile-app/ios/VaultStoreKit/Services/VaultMergeService.swift @@ -1,6 +1,7 @@ import Foundation import SQLite3 import CryptoKit +import RustCoreFramework /// Service for vault merge operations using the Rust core library. /// Wraps UniFFI-generated bindings for LWW merge operations on SQLite vault databases. diff --git a/apps/mobile-app/ios/VaultUI/Selection/Utils/RustCredentialMatcher.swift b/apps/mobile-app/ios/VaultUI/Selection/Utils/RustCredentialMatcher.swift index 1b452e20c..954353e09 100644 --- a/apps/mobile-app/ios/VaultUI/Selection/Utils/RustCredentialMatcher.swift +++ b/apps/mobile-app/ios/VaultUI/Selection/Utils/RustCredentialMatcher.swift @@ -1,5 +1,6 @@ import Foundation import VaultModels +import RustCoreFramework /// Wrapper for the Rust credential matcher using UniFFI bindings. public class RustCredentialMatcher { diff --git a/core/rust/build.sh b/core/rust/build.sh index 82466c5bd..f31d189d3 100755 --- a/core/rust/build.sh +++ b/core/rust/build.sh @@ -24,7 +24,7 @@ ANDROID_DIR="$DIST_DIR/android" # Target directories in consumer apps BROWSER_EXT_DIST="$SCRIPT_DIR/../../apps/browser-extension/src/utils/dist/core/rust" BLAZOR_CLIENT_DIST="$SCRIPT_DIR/../../apps/server/AliasVault.Client/wwwroot/wasm" -IOS_APP_DIST="$SCRIPT_DIR/../../apps/mobile-app/ios/VaultStoreKit/RustCore" +IOS_APP_DIST="$SCRIPT_DIR/../../apps/mobile-app/ios/RustCoreFramework/RustCore" ANDROID_APP_DIST="$SCRIPT_DIR/../../apps/mobile-app/android/app/src/main/jniLibs" echo -e "${BLUE}========================================${NC}" @@ -435,13 +435,15 @@ distribute_ios() { # Copy headers and modulemap if [ -d "$IOS_DIR/swift" ] && [ -n "$(ls -A "$IOS_DIR/swift" 2>/dev/null)" ]; then - cp "$IOS_DIR/swift"/*.h "$IOS_APP_DIST/include/" 2>/dev/null || true + # Copy C header to framework root (for public headers) + cp "$IOS_DIR/swift"/aliasvault_coreFFI.h "$IOS_APP_DIST/../" 2>/dev/null || true - # Create module.modulemap for the C header - cat > "$IOS_APP_DIST/include/module.modulemap" << 'EOF' -module aliasvault_coreFFI { - header "aliasvault_coreFFI.h" + # Create the framework modulemap at framework root + cat > "$IOS_APP_DIST/../module.modulemap" << 'EOF' +framework module RustCoreFramework { + umbrella header "RustCoreFramework.h" export * + module * { export * } } EOF echo -e " Copied headers and modulemap" @@ -468,7 +470,6 @@ Auto-generated from `/core/rust`. Do not edit manually. - `lib/device/libaliasvault_core.a` - Static library for iOS devices (arm64) - `lib/simulator/libaliasvault_core.a` - Static library for iOS simulator (arm64 Apple Silicon) -- `include/` - C headers and modulemap for UniFFI bindings - `Generated/` - Swift bindings generated by UniFFI ## Regenerate