// swift-tools-version: 6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "Closer", platforms: [ .iOS(.v17) ], dependencies: [ // Firebase .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "11.0.0"), // RevenueCat .package(url: "https://github.com/RevenueCat/purchases-ios.git", from: "5.0.0"), // Google Sign-In .package(url: "https://github.com/google/GoogleSignIn-iOS.git", from: "8.0.0"), // swift-sodium — audited libsodium wrapper for Argon2id (KDF) and other primitives. // Pinned to 0.11.0: current stable as of Batch 2, bundles libsodium 1.0.20, supports Swift 6 / iOS 13+. // Chosen over pure-Swift Argon2 ports because libsodium is audited and provides the RFC 9106 / Argon2 v1.3 // implementation we need for byte-identical KEK derivation with Android BouncyCastle. .package(url: "https://github.com/jedisct1/swift-sodium.git", from: "0.11.0"), ], targets: [ .target( name: "Closer", dependencies: [ .product(name: "FirebaseAuth", package: "firebase-ios-sdk"), .product(name: "FirebaseFirestore", package: "firebase-ios-sdk"), .product(name: "FirebaseFunctions", package: "firebase-ios-sdk"), .product(name: "FirebaseMessaging", package: "firebase-ios-sdk"), .product(name: "FirebaseStorage", package: "firebase-ios-sdk"), .product(name: "RevenueCat", package: "purchases-ios"), .product(name: "RevenueCatUI", package: "purchases-ios"), .product(name: "GoogleSignIn", package: "GoogleSignIn-iOS"), .product(name: "Sodium", package: "swift-sodium"), ], path: "Closer", exclude: ["Info.plist", "Closer.entitlements", "Crypto/SPEC.md"], resources: [ .process("Resources"), .process("Crypto/Resources"), ] ), .testTarget( name: "CloserTests", dependencies: ["Closer"], path: "CloserTests" ), .testTarget( name: "CloserUITests", dependencies: ["Closer"], path: "CloserUITests" ), ] )