diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 50423a44..30d847de 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -30,7 +30,7 @@ jobs: runs-on: macOS-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: 🏗️ Setup l-breez repository + - name: 🏗️ Check-out l-breez repository uses: actions/checkout@v4 with: path: 'lbreez' @@ -39,7 +39,7 @@ jobs: uses: actions/checkout@v4 with: repository: 'breez/breez-sdk-liquid' - ssh-key: ${{secrets.REPO_SSH_KEY}} + ssh-key: ${{ secrets.REPO_SSH_KEY }} path: 'breez-sdk-liquid' ref: ${{ inputs.liquid_sdk_ref }} diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 001a58dd..08c5c58a 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -110,7 +110,7 @@ jobs: df -hI echo "::endgroup::" - - name: 🏗️ Setup l-breez repository + - name: 🏗️ Check-out l-breez repository uses: actions/checkout@v4 with: path: 'lbreez' @@ -234,12 +234,6 @@ jobs: continue-on-error: true run: just codegen - - name: Generate FFI bindings - if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} - working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - continue-on-error: true - run: just ffigen - - name: 🔒 Install SSH Key env: SSH_PRIVATE_KEY: ${{ secrets.REPO_SSH_KEY }} @@ -249,32 +243,22 @@ jobs: sudo chmod 600 ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa - - name: 🔨 Build Breez Liquid SDK - if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} - working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: | - rm -rf ../../../target - just build - - - name: 🔨 Build Android binaries + - name: 🔨 Build Breez Liquid SDK Android bindings if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just build-android + run: just build-uniffi-android - - name: Copy the binaries to the needed location + - name: Link C Headers if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just copy-android + continue-on-error: true + run: just link-headers - - name: 🔨 Build Breez Liquid SDK Android bindings + - name: Generate FFI bindings if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just build-uniffi-android - - - name: Use the production build.gradle - if: ${{ needs.setup.outputs.use-published-plugins == 'true' }} - working-directory: lbreez - run: mv android/app/build.gradle.production android/app/build.gradle + continue-on-error: true + run: just ffigen - name: 🗂️ Populate Flutter tool's cache of binary artifacts. working-directory: lbreez @@ -325,7 +309,7 @@ jobs: name: Android-APK path: lbreez/build/app/outputs/flutter-apk/app-*.apk - - name: Remove Google Application Credentials file + - name: Cleanup Google Application Credentials if: success() || failure() run: | if [ -d "lbreez" ] && [ -f "lbreez/google-application-credentials.json" ]; then diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 779cf2b0..3687c2ef 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -87,13 +87,13 @@ jobs: env: SCHEME: Runner BUILD_CONFIGURATION: Release - TESTFLIGHT_USERNAME: ${{secrets.TESTFLIGHT_USERNAME}} - TESTFLIGHT_PASSWORD: ${{secrets.TESTFLIGHT_PASSWORD}} + TESTFLIGHT_USERNAME: ${{ secrets.TESTFLIGHT_USERNAME }} + TESTFLIGHT_PASSWORD: ${{ secrets.TESTFLIGHT_PASSWORD }} IOS_VERSION_STRING: 0.1.0 - DISTRIBUTION_CERT: ${{secrets.DISTRIBUTION_CERT}} - P12_BASE64: ${{secrets.P12_BASE64}} - P12_PASSWORD: ${{secrets.P12_PASSWORD}} - GOOGLE_SERVICES_IOS: ${{secrets.GOOGLE_SERVICES_IOS}} + DISTRIBUTION_CERT: ${{ secrets.DISTRIBUTION_CERT }} + P12_BASE64: ${{ secrets.P12_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} + GOOGLE_SERVICES_IOS: ${{ secrets.GOOGLE_SERVICES_IOS }} FIREBASE_PROJECT: breez-technology FIREBASE_ANDROID_PACKAGE_NAME: com.breez.liquid.l_breez FIREBASE_IOS_BUNDLE_ID: com.breez.liquid.lBreez @@ -119,7 +119,7 @@ jobs: df -hI echo "::endgroup::" - - name: 🏗️ Setup l-breez repository + - name: 🏗️ Check-out l-breez repository uses: actions/checkout@v4 with: path: 'lbreez' @@ -210,15 +210,10 @@ jobs: uses: actions/checkout@v4 with: repository: 'breez/breez-sdk-liquid' - ssh-key: ${{secrets.REPO_SSH_KEY}} + ssh-key: ${{ secrets.REPO_SSH_KEY }} path: 'breez-sdk-liquid' ref: ${{ needs.setup.outputs.liquid-sdk-ref }} - - name: Use production .podspec - if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} - working-directory: breez-sdk-liquid/packages/flutter/ios/ - run: mv flutter_breez_liquid.podspec.production flutter_breez_liquid.podspec - - name: 🏗️ Rust cache if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} uses: Swatinem/rust-cache@v2 @@ -244,47 +239,31 @@ jobs: continue-on-error: true run: just codegen - - name: Generate FFI bindings - if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} - working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - continue-on-error: true - run: just ffigen - - name: 🔒 Install SSH Key env: - SSH_PRIVATE_KEY: ${{secrets.REPO_SSH_KEY}} + SSH_PRIVATE_KEY: ${{ secrets.REPO_SSH_KEY }} run: | mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa - - name: 🔨 Build Breez Liquid SDK - if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} - working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: | - rm -rf ../../../target - just build - - - name: 🔨 Build iOS binaries + - name: 🔨 Build Breez Liquid SDK Swift bindings if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just build-apple + run: just build-uniffi-swift - - name: Copy the XCFramework to the needed location + - name: Link C Headers if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just copy-apple + continue-on-error: true + run: just link-headers - - name: 🔨 Build Breez Liquid SDK Swift bindings + - name: Generate FFI bindings if: ${{ needs.setup.outputs.use-published-plugins == 'false' }} working-directory: breez-sdk-liquid/lib/bindings/langs/flutter/ - run: just build-uniffi-swift - - - name: Use the production Podfile - if: ${{ needs.setup.outputs.use-published-plugins == 'true' }} - working-directory: lbreez - run: mv ios/Podfile.production ios/Podfile + continue-on-error: true + run: just ffigen - name: 🗂️ Populate Flutter tool's cache of binary artifacts. working-directory: lbreez @@ -300,7 +279,7 @@ jobs: - name: ⚙️ Setup compile-time variables env: - CONFIG_FILE: ${{secrets.CONFIG_FILE}} + CONFIG_FILE: ${{ secrets.CONFIG_FILE }} run: echo "$CONFIG_FILE" > ./lbreez/config.json - name: 📝 Install the Provisioning Profile @@ -425,7 +404,7 @@ jobs: ipa="$PWD/lbreez/build-output/ios/l_breez.ipa" "$altool" --upload-app --type ios --file "$ipa" --username $TESTFLIGHT_USERNAME --password $TESTFLIGHT_PASSWORD - - name: Remove Google Application Credentials file + - name: Cleanup Google Application Credentials if: success() || failure() run: | if [ -d "lbreez" ] && [ -f "lbreez/google-application-credentials.json" ]; then diff --git a/.gitignore b/.gitignore index 88c0bd7d..7682c585 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ migrate_working_dir/ .pub-cache/ .pub/ /build/ +/build-output/ devtools_options.yaml # Symbolication related diff --git a/android/app/build.gradle b/android/app/build.gradle index 8dd636cf..c7068ca4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -151,11 +151,9 @@ flutter { } dependencies { - implementation "androidx.core:core-ktx:1.12.0" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22" - // Import FCM + /* FCM */ implementation 'com.google.firebase:firebase-messaging:23.4.1' - // Logging + /* Logging */ implementation 'org.tinylog:tinylog-api-kotlin:2.6.2' implementation 'org.tinylog:tinylog-impl:2.6.2' } \ No newline at end of file diff --git a/android/app/build.gradle.production b/android/app/build.gradle.production deleted file mode 100644 index 81064651..00000000 --- a/android/app/build.gradle.production +++ /dev/null @@ -1,166 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. - id "dev.flutter.flutter-gradle-plugin" - // Add the Google services Gradle plugin - id "com.google.gms.google-services" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file("local.properties") -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader("UTF-8") { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty("flutter.versionCode") -if (flutterVersionCode == null) { - flutterVersionCode = "1" -} - -def flutterVersionName = localProperties.getProperty("flutter.versionName") -if (flutterVersionName == null) { - flutterVersionName = "1.0" -} - -def dartDefines = [:] -if (project.hasProperty('dart-defines')) { - // Decode dart-defines, which are comma-separated and encoded in Base64, and store them in a variable. - dartDefines = dartDefines + project.property('dart-defines') - .split(',') - .collectEntries { entry -> - def pair = new String(entry.decodeBase64(), 'UTF-8').split('=', 2) - [(pair.first()): pair.last()] - } -} - -def envVariables = [ - API_KEY: project.hasProperty('API_KEY') - ? API_KEY - : "${dartDefines.API_KEY}", -] - -android { - namespace = "com.breez.liquid.l_breez" - compileSdkVersion 34 - ndkVersion flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - applicationId = "com.breez.liquid.l_breez" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 24 // Android 7.0 - targetSdk = flutter.targetSdkVersion - versionCode = flutterVersionCode.toInteger() - versionName = flutterVersionName - } - - // Creates a variable called keystorePropertiesFile, and initializes it to the - // keystore.properties file. - def keystorePropertiesFile = rootProject.file("keystore.properties") - - // Initializes a new Properties() object called keystoreProperties. - def keystoreProperties = new Properties() - - // Loads the keystore.properties file into the keystoreProperties object. - if (keystorePropertiesFile.exists()) { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) - } - - signingConfigs { - debug { - String filePath = keystoreProperties["storeFileDebug"] - if (filePath != null) { - keyAlias = keystoreProperties["keyAliasDebug"] - keyPassword = keystoreProperties["keyPasswordDebug"] - storeFile = file(filePath) - storePassword = keystoreProperties["storePasswordDebug"] - } else { - println("No storeFile provided, debug builds are using your local debug keystore") - } - } - - release { - String filePath = keystoreProperties["storeFile"] - if (filePath != null) { - keyAlias = keystoreProperties['keyAlias'] - keyPassword = keystoreProperties['keyPassword'] - storeFile = file(filePath) - storePassword = keystoreProperties['storePassword'] - } else { - String storeFilePath = System.getenv("STORE_FILE") - println("storeFilePath: " + storeFilePath) - if (storeFilePath != null) { - println("using key properties from environment") - keyAlias = System.getenv("KEY_ALIAS") - keyPassword = System.getenv("KEY_PASSWORD") - storeFile = file(storeFilePath) - storePassword = System.getenv("STORE_PASSWORD") - } else { - println("No storeFile provided, release builds are using your local debug keystore") - } - } - } - } - - buildTypes { - debug { - signingConfig = signingConfigs.debug - manifestPlaceholders = [appName: "Misty Breez - Debug"] - resValue "string", "breezApiKey", envVariables.API_KEY - minifyEnabled = false - shrinkResources = false - applicationIdSuffix = ".debug" - versionNameSuffix = "-DEBUG" - } - release { - signingConfig = signingConfigs.release - manifestPlaceholders = [appName: "Misty Breez"] - resValue "string", "breezApiKey", envVariables.API_KEY - // Enables code shrinking, obfuscation, and optimization for only - // your project's release build type. Make sure to use a build - // variant with `debuggable false`. - minifyEnabled = true - - // Enables resource shrinking, which is performed by the - // Android Gradle plugin. - shrinkResources = true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), - 'proguard-rules.pro' - } - } -} - -flutter { - source = "../.." -} - -dependencies { - implementation "androidx.core:core-ktx:1.12.0" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22" - // Import FCM - implementation 'com.google.firebase:firebase-messaging:23.4.1' - // Import breez_sdk_liquid for notifications - implementation("net.java.dev.jna:jna:5.14.0@aar") - implementation("com.github.breez:breez-sdk-liquid:latest.release") { - exclude group:"net.java.dev.jna" - } - // Logging - implementation 'org.tinylog:tinylog-api-kotlin:2.6.2' - implementation 'org.tinylog:tinylog-impl:2.6.2' -} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/breez/liquid/l_breez/BreezForegroundService.kt b/android/app/src/main/kotlin/com/breez/liquid/l_breez/BreezForegroundService.kt index cb353634..8702e4f1 100644 --- a/android/app/src/main/kotlin/com/breez/liquid/l_breez/BreezForegroundService.kt +++ b/android/app/src/main/kotlin/com/breez/liquid/l_breez/BreezForegroundService.kt @@ -4,16 +4,15 @@ import android.content.SharedPreferences import breez_sdk_liquid.ConnectRequest import breez_sdk_liquid.LiquidNetwork import breez_sdk_liquid.LogEntry -import breez_sdk_liquid.Logger as SdkLogger import breez_sdk_liquid.defaultConfig -import breez_sdk_liquid.setLogger as setSdkLogger import breez_sdk_liquid_notification.ForegroundService import breez_sdk_liquid_notification.NotificationHelper.Companion.registerNotificationChannels +import com.breez.breez_sdk_liquid.SdkLogInitializer import com.breez.liquid.l_breez.utils.FlutterSecuredStorageHelper.Companion.readSecuredValue import io.flutter.util.PathUtils import org.tinylog.kotlin.Logger -class BreezForegroundService : SdkLogger, ForegroundService() { +class BreezForegroundService : ForegroundService() { companion object { private const val TAG = "BreezForegroundService" @@ -26,10 +25,19 @@ class BreezForegroundService : SdkLogger, ForegroundService() { override fun onCreate() { super.onCreate() - setLogger(this) - setSdkLogger(this) Logger.tag(TAG).debug { "Creating Breez foreground service..." } registerNotificationChannels(applicationContext, DEFAULT_CLICK_ACTION) + val listener = SdkLogInitializer.initializeListener() + listener.subscribe(serviceScope) { l: LogEntry -> + when (l.level) { + "ERROR" -> Logger.tag(TAG).error { l.line } + "WARN" -> Logger.tag(TAG).warn { l.line } + "INFO" -> Logger.tag(TAG).info { l.line } + "DEBUG" -> Logger.tag(TAG).debug { l.line } + "TRACE" -> Logger.tag(TAG).trace { l.line } + } + } + setServiceLogger(listener) Logger.tag(TAG).debug { "Breez foreground service created." } } @@ -49,14 +57,4 @@ class BreezForegroundService : SdkLogger, ForegroundService() { ConnectRequest(config, mnemonic) } } - - override fun log(l: LogEntry) { - when (l.level) { - "ERROR" -> Logger.tag(TAG).error { l.line } - "WARN" -> Logger.tag(TAG).warn { l.line } - "INFO" -> Logger.tag(TAG).info { l.line } - "DEBUG" -> Logger.tag(TAG).debug { l.line } - "TRACE" -> Logger.tag(TAG).trace { l.line } - } - } } diff --git a/ios/NotificationService/Info.plist b/ios/NotificationService/Info.plist index 450fb98b..63048ded 100644 --- a/ios/NotificationService/Info.plist +++ b/ios/NotificationService/Info.plist @@ -11,5 +11,7 @@ NSExtensionPrincipalClass $(PRODUCT_MODULE_NAME).NotificationService + FirebaseAppDelegateProxyEnabled + diff --git a/ios/NotificationService/KeychainHelper.swift b/ios/NotificationService/KeychainHelper.swift index 8ac77acd..dfa37322 100644 --- a/ios/NotificationService/KeychainHelper.swift +++ b/ios/NotificationService/KeychainHelper.swift @@ -3,12 +3,12 @@ import KeychainAccess import os.log #if DEBUG && true -fileprivate var log = Logger( +fileprivate var log = OSLog( subsystem: Bundle.main.bundleIdentifier!, category: "KeychainHelper" ) #else -fileprivate var log = Logger(OSLog.disabled) +fileprivate var log = OSLog.disabled #endif public class KeychainHelper { @@ -25,7 +25,7 @@ public class KeychainHelper { do { return try keychain.getString(key) } catch let error { - log.error("Failed to restore \(key) from \(service) keychain. Error: \(error)") + os_log(.error, "Failed to restore \(key) from \(service) keychain. Error: \(error)") } return nil diff --git a/ios/NotificationService/NotificationService.swift b/ios/NotificationService/NotificationService.swift index 11c47449..dc64d535 100644 --- a/ios/NotificationService/NotificationService.swift +++ b/ios/NotificationService/NotificationService.swift @@ -1,6 +1,5 @@ import UserNotifications import XCGLogger -import BreezSDKLiquid let accessGroup = "group.F7R2LZH3W5.com.breez.liquid.lBreez" @@ -24,10 +23,10 @@ class NotificationService: SDKNotificationService { // Set Notification Service Logger to SdkLogListener that utilizes XCGLogger library let sdkLogger = SdkLogListener(logger: xcgLogger) - self.setLogger(logger: sdkLogger) + self.setServiceLogger(logger: sdkLogger) // Use the same SdkLogListener to listen in on BreezSDKLiquid node logs do { - try BreezSDKLiquid.setLogger(logger: sdkLogger) + try setLogger(logger: sdkLogger) } catch let e { self.logger.log(tag: TAG, line:"Failed to set log stream: \(e)", level: "ERROR") } diff --git a/ios/NotificationService/SdkLogListener.swift b/ios/NotificationService/SdkLogListener.swift index f6c27114..377df7c5 100644 --- a/ios/NotificationService/SdkLogListener.swift +++ b/ios/NotificationService/SdkLogListener.swift @@ -1,6 +1,5 @@ import Foundation import XCGLogger -import BreezSDKLiquid class SdkLogListener : Logger { private var logger: XCGLogger diff --git a/ios/Podfile b/ios/Podfile index 55c94cd1..3215da66 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -40,7 +40,6 @@ end target 'NotificationService' do use_frameworks! - pod 'BreezSDKLiquid', :path => '../../breez-sdk-liquid/packages/flutter/ios/breez_sdk_liquid.podspec' pod 'KeychainAccess' pod 'XCGLogger' end @@ -49,6 +48,7 @@ post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| + config.build_settings['ENABLE_BITCODE'] = 'NO' # Set minimum deployment target to 12.0 if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 8faad34a..e280d3e6 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,7 +1,6 @@ PODS: - app_group_directory (1.0.0): - Flutter - - BreezSDKLiquid (0.2.1) - clipboard_watcher (0.0.1): - Flutter - connectivity_plus (0.0.1): @@ -171,7 +170,6 @@ PODS: DEPENDENCIES: - app_group_directory (from `.symlinks/plugins/app_group_directory/ios`) - - BreezSDKLiquid (from `../../breez-sdk-liquid/packages/flutter/ios/breez_sdk_liquid.podspec`) - clipboard_watcher (from `.symlinks/plugins/clipboard_watcher/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) @@ -227,8 +225,6 @@ SPEC REPOS: EXTERNAL SOURCES: app_group_directory: :path: ".symlinks/plugins/app_group_directory/ios" - BreezSDKLiquid: - :path: "../../breez-sdk-liquid/packages/flutter/ios/breez_sdk_liquid.podspec" clipboard_watcher: :path: ".symlinks/plugins/clipboard_watcher/ios" connectivity_plus: @@ -278,7 +274,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: app_group_directory: 7bf9f8f9819ead554de29da7c25fb7a680d6a9a0 - BreezSDKLiquid: 251f19328069eb73b8653c159f12196fa1cbe22f clipboard_watcher: 86fb70421aca6f4944e0591a8292605da7784666 connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d @@ -292,7 +287,7 @@ SPEC CHECKSUMS: FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_breez_liquid: 25615dbdf0dd058755f23d1b97202090fa0f49bc + flutter_breez_liquid: f9e825fc31b654ef3a00cf7420a0c2a691567bae flutter_fgbg: 31c0d1140a131daea2d342121808f6aa0dcd879d flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 @@ -326,6 +321,6 @@ SPEC CHECKSUMS: url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe XCGLogger: 399c5885210b4e2ad79d9f7a29b105d672ef724f -PODFILE CHECKSUM: c7e3aa05d64d03b1e96041369ae57f6584015526 +PODFILE CHECKSUM: bce0f66a635de639805b89b3b01316f8e9f5a71d COCOAPODS: 1.15.2 diff --git a/ios/Podfile.production b/ios/Podfile.production deleted file mode 100644 index 9e9b6920..00000000 --- a/ios/Podfile.production +++ /dev/null @@ -1,68 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '14.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -target 'NotificationService' do - use_frameworks! - - pod 'BreezSDKLiquid' - pod 'KeychainAccess' - pod 'XCGLogger' -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - target.build_configurations.each do |config| - # Set minimum deployment target to 12.0 - if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0 - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' - end - end - end - # Remove the -lsqlite3 linker flag - # https://github.com/CocoaPods/CocoaPods/issues/830 - # We already include our own sqlite3 implementation via a pod, - # so we don't want the system-provided one as well. - installer.generated_aggregate_targets.each do |target| - target.xcconfigs.each do |name, config| - config.libraries.delete('sqlite3') - config.save_as(Pathname.new(target.xcconfig_relative_path(name))) - end - end -end diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index ff7eb81e..3c24513e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -7,25 +7,47 @@ objects = { /* Begin PBXBuildFile section */ - 1412023D6C2DB5D2F4D233CA /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B0583BD90A340B2CE4C3A7A /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 2C986B8F63C6AB416D0B2558 /* Pods_NotificationService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21B0AFF006FA07EAA875429D /* Pods_NotificationService.framework */; }; + 22246727F178B1E17E673139 /* BreezSDKLiquidConnector.swift in Resources */ = {isa = PBXBuildFile; fileRef = 64CD9507572573C8A93078E8 /* BreezSDKLiquidConnector.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 442AE910DC3589D0BD9C3F38 /* BreezSDKLiquid.swift in Resources */ = {isa = PBXBuildFile; fileRef = 3DB7CA710C358B76F5CDB67F /* BreezSDKLiquid.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + 5A1B8E788210285CFD84BDA9 /* TaskProtocol.swift in Resources */ = {isa = PBXBuildFile; fileRef = 94B64D07DB5A75CA4E5809DF /* TaskProtocol.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + 619399E2500DF1F47AC77393 /* LnurlPayInfo.swift in Resources */ = {isa = PBXBuildFile; fileRef = 8BD8A8F87E52CF59156EC5B7 /* LnurlPayInfo.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + 6FDB603CAA2090C4B950F2B6 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0937162EF1CF6AB9561B7E6 /* Pods_RunnerTests.framework */; }; + 71047A5D4902C8ED77D1A08E /* ResourceHelper.swift in Resources */ = {isa = PBXBuildFile; fileRef = 68C3549E54F158E6F1BF215E /* ResourceHelper.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; 732A3D282C6CCF13007563A8 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732A3D272C6CCF13007563A8 /* NotificationService.swift */; }; 732A3D2C2C6CCF13007563A8 /* NotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 732A3D252C6CCF13007563A8 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 732A3D362C6CD974007563A8 /* SdkLogListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732A3D332C6CD974007563A8 /* SdkLogListener.swift */; }; 732A3D372C6CD974007563A8 /* KeychainHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732A3D342C6CD974007563A8 /* KeychainHelper.swift */; }; 732A3D382C6CD974007563A8 /* KeyChainAccessGroupHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732A3D352C6CD974007563A8 /* KeyChainAccessGroupHelper.swift */; }; + 73A4C6CC2CA1905200F38394 /* breez_sdk_liquidFFI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73A4C6CB2CA1905200F38394 /* breez_sdk_liquidFFI.xcframework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + A09F2C75439FD441CCB45C4B /* LnurlPayInvoice.swift in Resources */ = {isa = PBXBuildFile; fileRef = 12304F0B1670756F9611DCE1 /* LnurlPayInvoice.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + A5B7FE775C5DE85F5BA030AA /* SwapUpdated.swift in Resources */ = {isa = PBXBuildFile; fileRef = 6D92E330AE9E0FFA4F342038 /* SwapUpdated.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; BB6F2C501DC9CB40C2482FD1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C921E6B9B40EE48F3627E76B /* GoogleService-Info.plist */; }; - D60FB850C4C30FEAB3325F5C /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - E88FB9F52C7756900037463D /* breez_sdk_liquid.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E88FB9F42C7756900037463D /* breez_sdk_liquid.xcframework */; }; - E88FB9F62C7756900037463D /* breez_sdk_liquid.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E88FB9F42C7756900037463D /* breez_sdk_liquid.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - FFC771EFFE804E43DEFB0BB3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C7F97C84ECEB66AB63470D4 /* Pods_RunnerTests.framework */; }; + BEFD2B173AD9A8F75F4C4E70 /* Constants.swift in Resources */ = {isa = PBXBuildFile; fileRef = B5E5724CB2BA100C10032AF2 /* Constants.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + C20CE275E425F859C7E6DE4C /* String+SHA256.swift in Resources */ = {isa = PBXBuildFile; fileRef = A9EEF592AC15F5122FE4839C /* String+SHA256.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + C3850D9DB1F37D4536E0023E /* ServiceLogger.swift in Resources */ = {isa = PBXBuildFile; fileRef = 1A928177C42305FC6DA768BE /* ServiceLogger.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + CCAA181E08F3FD78F436E2F4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3512672A4D419C343EE98C95 /* Pods_Runner.framework */; }; + D4C739E48636480220D6264F /* Pods_NotificationService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CE09830B5AA1194ABCBFAA9 /* Pods_NotificationService.framework */; }; + E2882E44B007EB2A2A3DA08E /* LnurlPay.swift in Resources */ = {isa = PBXBuildFile; fileRef = B820DCA0F1919C03D6BA3896 /* LnurlPay.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; + E81E0B282CA33D3400B1C606 /* BreezSDKLiquid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB7CA710C358B76F5CDB67F /* BreezSDKLiquid.swift */; }; + E81E0B292CA33D3400B1C606 /* BreezSDKLiquidConnector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64CD9507572573C8A93078E8 /* BreezSDKLiquidConnector.swift */; }; + E81E0B2A2CA33D3400B1C606 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E5724CB2BA100C10032AF2 /* Constants.swift */; }; + E81E0B2B2CA33D3400B1C606 /* ResourceHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C3549E54F158E6F1BF215E /* ResourceHelper.swift */; }; + E81E0B2C2CA33D3400B1C606 /* SDKNotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B05FDB7E07CF3107D1D2C0CB /* SDKNotificationService.swift */; }; + E81E0B2D2CA33D3400B1C606 /* ServiceLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A928177C42305FC6DA768BE /* ServiceLogger.swift */; }; + E81E0B2E2CA33D3400B1C606 /* String+SHA256.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9EEF592AC15F5122FE4839C /* String+SHA256.swift */; }; + E81E0B2F2CA33D3400B1C606 /* TaskProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94B64D07DB5A75CA4E5809DF /* TaskProtocol.swift */; }; + E81E0B302CA33D3400B1C606 /* LnurlPay.swift in Sources */ = {isa = PBXBuildFile; fileRef = B820DCA0F1919C03D6BA3896 /* LnurlPay.swift */; }; + E81E0B312CA33D3400B1C606 /* LnurlPayInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8A8F87E52CF59156EC5B7 /* LnurlPayInfo.swift */; }; + E81E0B322CA33D3400B1C606 /* LnurlPayInvoice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12304F0B1670756F9611DCE1 /* LnurlPayInvoice.swift */; }; + E81E0B332CA33D3400B1C606 /* SwapUpdated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D92E330AE9E0FFA4F342038 /* SwapUpdated.swift */; }; + F5AB6D9DA4E6C7BB8D096EC1 /* SDKNotificationService.swift in Resources */ = {isa = PBXBuildFile; fileRef = B05FDB7E07CF3107D1D2C0CB /* SDKNotificationService.swift */; settings = {ASSET_TAGS = (BreezSDKLiquid, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -63,7 +85,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - E88FB9F62C7756900037463D /* breez_sdk_liquid.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -71,21 +92,20 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 12304F0B1670756F9611DCE1 /* LnurlPayInvoice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInvoice.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/Task/LnurlPayInvoice.swift; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 15FBC21547B00E119F1FE42E /* LnurlPay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPay.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPay.swift"; sourceTree = ""; }; - 1716C2BF6131162D390D93A5 /* Pods-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.release.xcconfig"; sourceTree = ""; }; - 1C08D7501EA08FEEA635C1B5 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 21B0AFF006FA07EAA875429D /* Pods_NotificationService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NotificationService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 307656AD6C1928A220DF8A3D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 1A928177C42305FC6DA768BE /* ServiceLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceLogger.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/ServiceLogger.swift; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 36136CA437BFC850907F553A /* ServiceLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceLogger.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceLogger.swift"; sourceTree = ""; }; - 36D0B41A3417E9CC03930119 /* LnurlPayInvoice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInvoice.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInvoice.swift"; sourceTree = ""; }; + 3512672A4D419C343EE98C95 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3BA62FF80BBC75AD80E016C8 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 3FCE86AB511842FD78C29C16 /* BreezSDKConnector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDKConnector.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDKConnector.swift"; sourceTree = ""; }; - 44631C1F894000A1C00B4B41 /* SDKNotificationService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDKNotificationService.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/SDKNotificationService.swift"; sourceTree = ""; }; + 3CE09830B5AA1194ABCBFAA9 /* Pods_NotificationService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NotificationService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3DB7CA710C358B76F5CDB67F /* BreezSDKLiquid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDKLiquid.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/BreezSDKLiquid.swift; sourceTree = ""; }; + 64CD9507572573C8A93078E8 /* BreezSDKLiquidConnector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDKLiquidConnector.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/BreezSDKLiquidConnector.swift; sourceTree = ""; }; + 68C3549E54F158E6F1BF215E /* ResourceHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceHelper.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/ResourceHelper.swift; sourceTree = ""; }; + 6BCF8D3BC5BE8834E9213954 /* Pods-NotificationService.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.profile.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.profile.xcconfig"; sourceTree = ""; }; + 6D92E330AE9E0FFA4F342038 /* SwapUpdated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwapUpdated.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/Task/SwapUpdated.swift; sourceTree = ""; }; 732A3D252C6CCF13007563A8 /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 732A3D272C6CCF13007563A8 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; 732A3D292C6CCF13007563A8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -93,11 +113,13 @@ 732A3D332C6CD974007563A8 /* SdkLogListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SdkLogListener.swift; sourceTree = ""; }; 732A3D342C6CD974007563A8 /* KeychainHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainHelper.swift; sourceTree = ""; }; 732A3D352C6CD974007563A8 /* KeyChainAccessGroupHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyChainAccessGroupHelper.swift; sourceTree = ""; }; + 73A4C6CB2CA1905200F38394 /* breez_sdk_liquidFFI.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = breez_sdk_liquidFFI.xcframework; path = "../../breez-sdk-liquid/packages/flutter/ios/Frameworks/breez_sdk_liquidFFI.xcframework"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 7C7F97C84ECEB66AB63470D4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 941FBF81DE56E38CB9B607EF /* TaskProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskProtocol.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/TaskProtocol.swift"; sourceTree = ""; }; + 8BD8A8F87E52CF59156EC5B7 /* LnurlPayInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInfo.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/Task/LnurlPayInfo.swift; sourceTree = ""; }; + 8C8191A11058364B53A35B4A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 94B64D07DB5A75CA4E5809DF /* TaskProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskProtocol.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/TaskProtocol.swift; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -105,22 +127,20 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9B0583BD90A340B2CE4C3A7A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9C2A04A44FDB19A00EE94C39 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - A54E869D93DD243818730EC5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - A91886188D7722C76D07717B /* LnurlPayInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInfo.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInfo.swift"; sourceTree = ""; }; - ACD7135B1733C7A905A92BC5 /* ReceivePayment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReceivePayment.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/ReceivePayment.swift"; sourceTree = ""; }; - BA1800BC5214E8D55214D607 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - BCD162BC443C0AE50AE693BF /* RedeemSwap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedeemSwap.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/RedeemSwap.swift"; sourceTree = ""; }; - BE49C1F5DD1913DD5BEAA00F /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Constants.swift"; sourceTree = ""; }; - C2E61D892244B37FD730BBE4 /* Pods-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.debug.xcconfig"; sourceTree = ""; }; + 98663859675A024C3E3A77BE /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 9B8020850FF5EEDC264189B0 /* Pods-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.debug.xcconfig"; sourceTree = ""; }; + A5D0EE47AA4771041A1CBC55 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + A9EEF592AC15F5122FE4839C /* String+SHA256.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+SHA256.swift"; path = "../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/String+SHA256.swift"; sourceTree = ""; }; + AA2D2688679C6C1E85062BDC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + AB82E2270AD8486FBE411041 /* Pods-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.release.xcconfig"; sourceTree = ""; }; + B05FDB7E07CF3107D1D2C0CB /* SDKNotificationService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDKNotificationService.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/SDKNotificationService.swift; sourceTree = ""; }; + B5E5724CB2BA100C10032AF2 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/Constants.swift; sourceTree = ""; }; + B820DCA0F1919C03D6BA3896 /* LnurlPay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPay.swift; path = ../.symlinks/plugins/flutter_breez_liquid/ios/Sources/BreezSDKLiquid/Task/LnurlPay.swift; sourceTree = ""; }; C921E6B9B40EE48F3627E76B /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - E88FB9F42C7756900037463D /* breez_sdk_liquid.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = breez_sdk_liquid.xcframework; path = ".symlinks/plugins/flutter_breez_liquid/ios/../../../../../../breez-sdk-liquid/packages/flutter/ios/Frameworks/breez_sdk_liquid.xcframework"; sourceTree = ""; }; + DA2DB30BC09C4A357F1D46E9 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + E0937162EF1CF6AB9561B7E6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E7211525E34935B102E5EFDE /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; E8F7D4EF2C073A890018DB5D /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - F10B8BD13646D7188373EBFA /* ServiceConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceConfig.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceConfig.swift"; sourceTree = ""; }; - F3CDA02A2B9516E892C91FF1 /* Pods-NotificationService.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.profile.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.profile.xcconfig"; sourceTree = ""; }; - F937E02F522B34DA0603EE0C /* BreezSDK.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDK.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDK.swift"; sourceTree = ""; }; - FF2B4C3B077B63A01FF73FC6 /* ResourceHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceHelper.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ResourceHelper.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -128,8 +148,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D60FB850C4C30FEAB3325F5C /* BuildFile in Frameworks */, - FFC771EFFE804E43DEFB0BB3 /* Pods_RunnerTests.framework in Frameworks */, + 6FDB603CAA2090C4B950F2B6 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +156,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2C986B8F63C6AB416D0B2558 /* Pods_NotificationService.framework in Frameworks */, + 73A4C6CC2CA1905200F38394 /* breez_sdk_liquidFFI.xcframework in Frameworks */, + D4C739E48636480220D6264F /* Pods_NotificationService.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -145,25 +165,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E88FB9F52C7756900037463D /* breez_sdk_liquid.xcframework in Frameworks */, - 1412023D6C2DB5D2F4D233CA /* Pods_Runner.framework in Frameworks */, + CCAA181E08F3FD78F436E2F4 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 285B6EBEBD4F0C7E41515D0A /* Frameworks */ = { - isa = PBXGroup; - children = ( - E88FB9F42C7756900037463D /* breez_sdk_liquid.xcframework */, - 21B0AFF006FA07EAA875429D /* Pods_NotificationService.framework */, - 9B0583BD90A340B2CE4C3A7A /* Pods_Runner.framework */, - 7C7F97C84ECEB66AB63470D4 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 331C8082294A63A400263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -172,12 +180,23 @@ path = RunnerTests; sourceTree = ""; }; - 6ED43DD1619018FCC51A7E28 /* breez_sdk-OnDemandResources */ = { + 7005A252391C0C0CD86B2DAC /* BreezSDKLiquid */ = { isa = PBXGroup; children = ( - A347CA4BBFBCFAC48E575412 /* BreezSDK */, - ); - name = "breez_sdk-OnDemandResources"; + 3DB7CA710C358B76F5CDB67F /* BreezSDKLiquid.swift */, + 64CD9507572573C8A93078E8 /* BreezSDKLiquidConnector.swift */, + B5E5724CB2BA100C10032AF2 /* Constants.swift */, + 68C3549E54F158E6F1BF215E /* ResourceHelper.swift */, + B05FDB7E07CF3107D1D2C0CB /* SDKNotificationService.swift */, + 1A928177C42305FC6DA768BE /* ServiceLogger.swift */, + A9EEF592AC15F5122FE4839C /* String+SHA256.swift */, + 94B64D07DB5A75CA4E5809DF /* TaskProtocol.swift */, + B820DCA0F1919C03D6BA3896 /* LnurlPay.swift */, + 8BD8A8F87E52CF59156EC5B7 /* LnurlPayInfo.swift */, + 12304F0B1670756F9611DCE1 /* LnurlPayInvoice.swift */, + 6D92E330AE9E0FFA4F342038 /* SwapUpdated.swift */, + ); + name = BreezSDKLiquid; sourceTree = ""; }; 732A3D262C6CCF13007563A8 /* NotificationService */ = { @@ -193,6 +212,25 @@ path = NotificationService; sourceTree = ""; }; + 7E01A696FB05CBBA0BCC4F86 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 73A4C6CB2CA1905200F38394 /* breez_sdk_liquidFFI.xcframework */, + 3CE09830B5AA1194ABCBFAA9 /* Pods_NotificationService.framework */, + 3512672A4D419C343EE98C95 /* Pods_Runner.framework */, + E0937162EF1CF6AB9561B7E6 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 859CF8DB9DF068928BF5B359 /* flutter_breez_liquid-OnDemandResources */ = { + isa = PBXGroup; + children = ( + 7005A252391C0C0CD86B2DAC /* BreezSDKLiquid */, + ); + name = "flutter_breez_liquid-OnDemandResources"; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -214,7 +252,7 @@ 331C8082294A63A400263BE5 /* RunnerTests */, C3419851600CFDF0D267D1CB /* Pods */, C921E6B9B40EE48F3627E76B /* GoogleService-Info.plist */, - 285B6EBEBD4F0C7E41515D0A /* Frameworks */, + 7E01A696FB05CBBA0BCC4F86 /* Frameworks */, ); sourceTree = ""; }; @@ -244,39 +282,19 @@ path = Runner; sourceTree = ""; }; - A347CA4BBFBCFAC48E575412 /* BreezSDK */ = { - isa = PBXGroup; - children = ( - F937E02F522B34DA0603EE0C /* BreezSDK.swift */, - 3FCE86AB511842FD78C29C16 /* BreezSDKConnector.swift */, - BE49C1F5DD1913DD5BEAA00F /* Constants.swift */, - FF2B4C3B077B63A01FF73FC6 /* ResourceHelper.swift */, - 44631C1F894000A1C00B4B41 /* SDKNotificationService.swift */, - F10B8BD13646D7188373EBFA /* ServiceConfig.swift */, - 36136CA437BFC850907F553A /* ServiceLogger.swift */, - 941FBF81DE56E38CB9B607EF /* TaskProtocol.swift */, - 15FBC21547B00E119F1FE42E /* LnurlPay.swift */, - A91886188D7722C76D07717B /* LnurlPayInfo.swift */, - 36D0B41A3417E9CC03930119 /* LnurlPayInvoice.swift */, - ACD7135B1733C7A905A92BC5 /* ReceivePayment.swift */, - BCD162BC443C0AE50AE693BF /* RedeemSwap.swift */, - ); - name = BreezSDK; - sourceTree = ""; - }; C3419851600CFDF0D267D1CB /* Pods */ = { isa = PBXGroup; children = ( - 6ED43DD1619018FCC51A7E28 /* breez_sdk-OnDemandResources */, - C2E61D892244B37FD730BBE4 /* Pods-NotificationService.debug.xcconfig */, - 1716C2BF6131162D390D93A5 /* Pods-NotificationService.release.xcconfig */, - F3CDA02A2B9516E892C91FF1 /* Pods-NotificationService.profile.xcconfig */, - 3BA62FF80BBC75AD80E016C8 /* Pods-Runner.debug.xcconfig */, - BA1800BC5214E8D55214D607 /* Pods-Runner.release.xcconfig */, - 9C2A04A44FDB19A00EE94C39 /* Pods-Runner.profile.xcconfig */, - 307656AD6C1928A220DF8A3D /* Pods-RunnerTests.debug.xcconfig */, - A54E869D93DD243818730EC5 /* Pods-RunnerTests.release.xcconfig */, - 1C08D7501EA08FEEA635C1B5 /* Pods-RunnerTests.profile.xcconfig */, + 859CF8DB9DF068928BF5B359 /* flutter_breez_liquid-OnDemandResources */, + 9B8020850FF5EEDC264189B0 /* Pods-NotificationService.debug.xcconfig */, + AB82E2270AD8486FBE411041 /* Pods-NotificationService.release.xcconfig */, + 6BCF8D3BC5BE8834E9213954 /* Pods-NotificationService.profile.xcconfig */, + 98663859675A024C3E3A77BE /* Pods-Runner.debug.xcconfig */, + 8C8191A11058364B53A35B4A /* Pods-Runner.release.xcconfig */, + E7211525E34935B102E5EFDE /* Pods-Runner.profile.xcconfig */, + A5D0EE47AA4771041A1CBC55 /* Pods-RunnerTests.debug.xcconfig */, + DA2DB30BC09C4A357F1D46E9 /* Pods-RunnerTests.release.xcconfig */, + AA2D2688679C6C1E85062BDC /* Pods-RunnerTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -288,7 +306,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 3D810D9C8E07A0B389AEE2AA /* [CP] Check Pods Manifest.lock */, + 071C468E0040191B8B40D618 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, 3FD5F7911C380DE04B2EFF62 /* Frameworks */, @@ -307,7 +325,7 @@ isa = PBXNativeTarget; buildConfigurationList = 732A3D312C6CCF13007563A8 /* Build configuration list for PBXNativeTarget "NotificationService" */; buildPhases = ( - 098A740DF07CCF8A6B00A2F0 /* [CP] Check Pods Manifest.lock */, + 79C08E2A35A4AC93AD0FAA0A /* [CP] Check Pods Manifest.lock */, 732A3D212C6CCF13007563A8 /* Sources */, 732A3D222C6CCF13007563A8 /* Frameworks */, 732A3D232C6CCF13007563A8 /* Resources */, @@ -325,7 +343,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - C06796464B1FA798D170315F /* [CP] Check Pods Manifest.lock */, + 4AC7AD913861274B225E2CC2 /* [CP] Check Pods Manifest.lock */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 732A3D2D2C6CCF13007563A8 /* Embed Foundation Extensions */, 9740EEB61CF901F6004384FC /* Run Script */, @@ -333,8 +351,8 @@ 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 2116D48551372B4566A629D0 /* [CP] Embed Pods Frameworks */, - B664D544DB004045CD9C3B74 /* [CP] Copy Pods Resources */, + CCC109F8563E2C39607DD623 /* [CP] Embed Pods Frameworks */, + BA7490DF2282900BCD7F6E01 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -355,6 +373,7 @@ BuildIndependentTargetsInParallel = YES; KnownAssetTags = ( BreezSDK, + BreezSDKLiquid, ); LastSwiftUpdateCheck = 1520; LastUpgradeCheck = 1510; @@ -417,13 +436,25 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, BB6F2C501DC9CB40C2482FD1 /* GoogleService-Info.plist in Resources */, + 442AE910DC3589D0BD9C3F38 /* BreezSDKLiquid.swift in Resources */, + 22246727F178B1E17E673139 /* BreezSDKLiquidConnector.swift in Resources */, + BEFD2B173AD9A8F75F4C4E70 /* Constants.swift in Resources */, + 71047A5D4902C8ED77D1A08E /* ResourceHelper.swift in Resources */, + F5AB6D9DA4E6C7BB8D096EC1 /* SDKNotificationService.swift in Resources */, + C3850D9DB1F37D4536E0023E /* ServiceLogger.swift in Resources */, + C20CE275E425F859C7E6DE4C /* String+SHA256.swift in Resources */, + 5A1B8E788210285CFD84BDA9 /* TaskProtocol.swift in Resources */, + E2882E44B007EB2A2A3DA08E /* LnurlPay.swift in Resources */, + 619399E2500DF1F47AC77393 /* LnurlPayInfo.swift in Resources */, + A09F2C75439FD441CCB45C4B /* LnurlPayInvoice.swift in Resources */, + A5B7FE775C5DE85F5BA030AA /* SwapUpdated.swift in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 098A740DF07CCF8A6B00A2F0 /* [CP] Check Pods Manifest.lock */ = { + 071C468E0040191B8B40D618 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -438,47 +469,52 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NotificationService-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 2116D48551372B4566A629D0 /* [CP] Embed Pods Frameworks */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + name = "Thin Binary"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; }; - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 4AC7AD913861274B225E2CC2 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 3D810D9C8E07A0B389AEE2AA /* [CP] Check Pods Manifest.lock */ = { + 79C08E2A35A4AC93AD0FAA0A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -493,7 +529,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-NotificationService-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -515,7 +551,7 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - B664D544DB004045CD9C3B74 /* [CP] Copy Pods Resources */ = { + BA7490DF2282900BCD7F6E01 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -532,26 +568,21 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; showEnvVarsInLog = 0; }; - C06796464B1FA798D170315F /* [CP] Check Pods Manifest.lock */ = { + CCC109F8563E2C39607DD623 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -569,6 +600,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E81E0B282CA33D3400B1C606 /* BreezSDKLiquid.swift in Sources */, + E81E0B292CA33D3400B1C606 /* BreezSDKLiquidConnector.swift in Sources */, + E81E0B2A2CA33D3400B1C606 /* Constants.swift in Sources */, + E81E0B2B2CA33D3400B1C606 /* ResourceHelper.swift in Sources */, + E81E0B2C2CA33D3400B1C606 /* SDKNotificationService.swift in Sources */, + E81E0B2D2CA33D3400B1C606 /* ServiceLogger.swift in Sources */, + E81E0B2E2CA33D3400B1C606 /* String+SHA256.swift in Sources */, + E81E0B2F2CA33D3400B1C606 /* TaskProtocol.swift in Sources */, + E81E0B302CA33D3400B1C606 /* LnurlPay.swift in Sources */, + E81E0B312CA33D3400B1C606 /* LnurlPayInfo.swift in Sources */, + E81E0B322CA33D3400B1C606 /* LnurlPayInvoice.swift in Sources */, + E81E0B332CA33D3400B1C606 /* SwapUpdated.swift in Sources */, 732A3D282C6CCF13007563A8 /* NotificationService.swift in Sources */, 732A3D382C6CD974007563A8 /* KeyChainAccessGroupHelper.swift in Sources */, 732A3D372C6CD974007563A8 /* KeychainHelper.swift in Sources */, @@ -676,7 +719,7 @@ }; 249021D4217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9C2A04A44FDB19A00EE94C39 /* Pods-Runner.profile.xcconfig */; + baseConfigurationReference = E7211525E34935B102E5EFDE /* Pods-Runner.profile.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -706,7 +749,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 307656AD6C1928A220DF8A3D /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = A5D0EE47AA4771041A1CBC55 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -724,7 +767,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A54E869D93DD243818730EC5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = DA2DB30BC09C4A357F1D46E9 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -740,7 +783,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1C08D7501EA08FEEA635C1B5 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = AA2D2688679C6C1E85062BDC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -756,7 +799,7 @@ }; 732A3D2E2C6CCF13007563A8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C2E61D892244B37FD730BBE4 /* Pods-NotificationService.debug.xcconfig */; + baseConfigurationReference = 9B8020850FF5EEDC264189B0 /* Pods-NotificationService.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -798,7 +841,7 @@ }; 732A3D2F2C6CCF13007563A8 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1716C2BF6131162D390D93A5 /* Pods-NotificationService.release.xcconfig */; + baseConfigurationReference = AB82E2270AD8486FBE411041 /* Pods-NotificationService.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -806,11 +849,13 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = F7R2LZH3W5; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; @@ -828,6 +873,8 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.breez.liquid.lBreez.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "misty breez notification extension profile"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -837,7 +884,7 @@ }; 732A3D302C6CCF13007563A8 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F3CDA02A2B9516E892C91FF1 /* Pods-NotificationService.profile.xcconfig */; + baseConfigurationReference = 6BCF8D3BC5BE8834E9213954 /* Pods-NotificationService.profile.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -845,6 +892,7 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -990,7 +1038,7 @@ }; 97C147061CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3BA62FF80BBC75AD80E016C8 /* Pods-Runner.debug.xcconfig */; + baseConfigurationReference = 98663859675A024C3E3A77BE /* Pods-Runner.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -1021,7 +1069,7 @@ }; 97C147071CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BA1800BC5214E8D55214D607 /* Pods-Runner.release.xcconfig */; + baseConfigurationReference = 8C8191A11058364B53A35B4A /* Pods-Runner.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 92f0e5be..e5a16503 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -109,5 +109,7 @@ UIViewControllerBasedStatusBarAppearance + FirebaseAppDelegateProxyEnabled + diff --git a/lib/main/bootstrap.dart b/lib/main/bootstrap.dart index bf432371..2f003670 100644 --- a/lib/main/bootstrap.dart +++ b/lib/main/bootstrap.dart @@ -11,6 +11,7 @@ import 'package:hydrated_bloc/hydrated_bloc.dart'; import 'package:l_breez/cubit/cubit.dart'; // ignore: uri_does_not_exist import 'package:l_breez/firebase/firebase_options.dart'; +import 'package:l_breez/main/bootstrap_error_page.dart'; import 'package:l_breez/utils/date.dart'; import 'package:logging/logging.dart'; import 'package:path/path.dart' as p; @@ -32,27 +33,25 @@ Future bootstrap(AppBuilder builder) async { SystemChrome.setPreferredOrientations( [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown], ); + // iOS Extension requirement + if (defaultTargetPlatform == TargetPlatform.iOS) { + SharedPreferenceAppGroup.setAppGroup( + "group.F7R2LZH3W5.com.breez.liquid.lBreez", + ); + } + // Initialize library - await liquid_sdk.initialize(); - //initializeDateFormatting(Platform.localeName, null); + await _initializeLiquidSdk(); + final injector = ServiceInjector(); + final breezLogger = injector.breezLogger; + breezLogger.registerBreezSdkLiquidLogs(injector.liquidSDK); BreezDateUtils.setupLocales(); await Firebase.initializeApp( // ignore: undefined_identifier options: DefaultFirebaseOptions.currentPlatform, ); - final injector = ServiceInjector(); - var breezLogger = injector.breezLogger; - breezLogger.registerBreezSdkLiquidLogs(injector.liquidSDK); final appDir = await getApplicationDocumentsDirectory(); - - // iOS Extension requirement - if (defaultTargetPlatform == TargetPlatform.iOS) { - SharedPreferenceAppGroup.setAppGroup( - "group.F7R2LZH3W5.com.breez.liquid.lBreez", - ); - } - HydratedBloc.storage = await HydratedStorage.build( storageDirectory: Directory(p.join(appDir.path, "bloc_storage")), ); @@ -72,3 +71,12 @@ Future bootstrap(AppBuilder builder) async { } }); } + +Future _initializeLiquidSdk() async { + try { + await liquid_sdk.initialize(); + } catch (error, stackTrace) { + _log.severe("Failed to initialize Liquid SDK: $error", error, stackTrace); + runApp(BootstrapErrorPage(error: error, stackTrace: stackTrace)); + } +} diff --git a/lib/main/bootstrap_error_page.dart b/lib/main/bootstrap_error_page.dart new file mode 100644 index 00000000..8f356fd8 --- /dev/null +++ b/lib/main/bootstrap_error_page.dart @@ -0,0 +1,188 @@ +import 'dart:io'; + +import 'package:breez_translations/breez_translations_locales.dart'; +import 'package:flutter/material.dart'; +import 'package:l_breez/theme/src/theme.dart'; +import 'package:l_breez/theme/theme.dart'; +import 'package:l_breez/widgets/error_dialog.dart'; +import 'package:l_breez/widgets/single_button_bottom_bar.dart'; + +class BootstrapErrorPage extends StatefulWidget { + final Object error; + final StackTrace stackTrace; + + const BootstrapErrorPage({super.key, required this.error, required this.stackTrace}); + + @override + State createState() => _BootstrapErrorPageState(); +} + +class _BootstrapErrorPageState extends State { + final ScrollController _errorScrollController = ScrollController(); + final ScrollController _stackTraceScrollController = ScrollController(); + + @override + Widget build(BuildContext context) { + return PopScope( + canPop: false, + onPopInvoked: (bool didPop) async { + if (didPop) return; + + final texts = context.texts(); + final bool? shouldPop = await promptAreYouSure( + context, + texts.close_popup_title, + Text(texts.close_popup_message), + ); + if (shouldPop ?? false) exit(0); + }, + child: MaterialApp( + title: "Misty ${getSystemAppLocalizations().app_name}", + theme: breezLightTheme, + localizationsDelegates: localizationsDelegates(), + supportedLocales: supportedLocales(), + builder: (BuildContext context, Widget? child) { + const kMaxTitleTextScaleFactor = 1.3; + + return MediaQuery.withClampedTextScaling( + maxScaleFactor: kMaxTitleTextScaleFactor, + child: child!, + ); + }, + home: Scaffold( + appBar: AppBar(), + body: Center( + child: Padding( + padding: const EdgeInsets.only(left: 16.0, right: 16.0, bottom: 40.0), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.error_outline, color: breezLightTheme.iconTheme.color, size: 64), + Padding( + padding: const EdgeInsets.symmetric(vertical: 16.0), + child: Text( + "Failed to initialize Breez SDK - Liquid", + style: breezLightTheme.textTheme.headlineSmall?.copyWith(color: Colors.white), + textAlign: TextAlign.center, + ), + ), + Container( + width: double.infinity, + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: breezLightTheme.colorScheme.surface, + borderRadius: BorderRadius.circular(8), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Error:", + style: breezLightTheme.textTheme.labelLarge?.copyWith( + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 8), + Container( + constraints: const BoxConstraints( + minHeight: 80, + maxHeight: 120, + ), + child: Theme( + data: ThemeData(), + child: Scrollbar( + thumbVisibility: true, + trackVisibility: true, + controller: _errorScrollController, + child: SingleChildScrollView( + controller: _errorScrollController, + child: Column( + children: [ + Text( + widget.error.toString(), + style: const TextStyle( + fontSize: 14, + color: Colors.black54, + fontFamily: 'monospace', + ), + textAlign: TextAlign.left, + ), + ], + ), + ), + ), + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Container( + width: double.infinity, + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: breezLightTheme.colorScheme.surface, + borderRadius: BorderRadius.circular(8), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Stack Trace:", + style: breezLightTheme.textTheme.labelLarge?.copyWith( + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 8), + Container( + constraints: const BoxConstraints( + minHeight: 160, + maxHeight: 240, + ), + child: Theme( + data: ThemeData(), + child: Scrollbar( + controller: _stackTraceScrollController, + child: SingleChildScrollView( + controller: _stackTraceScrollController, + child: Column( + children: [ + Text( + widget.stackTrace.toString(), + style: const TextStyle( + fontSize: 14, + color: Colors.black54, + fontFamily: 'monospace', + ), + textAlign: TextAlign.left, + ), + ], + ), + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + bottomNavigationBar: SingleButtonBottomBar( + stickToBottom: true, + text: "EXIT", + onPressed: () { + exit(1); + }, + ), + ), + ), + ); + } +} diff --git a/packages/breez_logger/lib/src/breez_logger.dart b/packages/breez_logger/lib/src/breez_logger.dart index e3abfceb..671b300a 100644 --- a/packages/breez_logger/lib/src/breez_logger.dart +++ b/packages/breez_logger/lib/src/breez_logger.dart @@ -10,7 +10,7 @@ import 'package:flutter_breez_liquid/flutter_breez_liquid.dart' as liquid_sdk; import 'package:logging/logging.dart'; import 'package:share_plus/share_plus.dart'; -final _log = Logger("Logger"); +final _log = Logger("BreezLogger"); final _liquidSdkLog = Logger("BreezSdkLiquid"); class BreezLogger { @@ -26,41 +26,67 @@ class BreezLogger { }); } - AppConfig.instance().then((config) { - var appDir = Directory(config.sdkConfig.workingDir); - _pruneLogs(appDir); - final file = File("${_logDir(appDir)}/${DateTime.now().millisecondsSinceEpoch}.app.log"); + _createSessionLogFile(); - try { - file.createSync(recursive: true); - } catch (e) { - _log.severe("Failed to create log file", e); - return; - } - final sync = file.openWrite(mode: FileMode.append); - Logger.root.onRecord.listen((record) { - sync.writeln(_recordToString(record)); - }, onDone: () { - sync.flush(); - sync.close(); - }); + FlutterError.onError = (FlutterErrorDetails details) async { + FlutterError.presentError(details); + final name = details.context?.name ?? "FlutterError"; + final exception = details.exceptionAsString(); + _log.severe("$exception -- $name", details, details.stack); + }; - FlutterError.onError = (FlutterErrorDetails details) async { - FlutterError.presentError(details); - final name = details.context?.name ?? "FlutterError"; - final exception = details.exceptionAsString(); - _log.severe("$exception -- $name", details, details.stack); - }; - - DeviceInfoPlugin().deviceInfo.then((deviceInfo) { - _log.info("Device info:"); - deviceInfo.data.forEach((key, value) => _log.info("$key: $value")); - }, onError: (error) { - _log.severe("Failed to get device info", error); - }); + DeviceInfoPlugin().deviceInfo.then((deviceInfo) { + _log.info("Device info:"); + deviceInfo.data.forEach((key, value) => _log.info("$key: $value")); + }, onError: (error) { + _log.severe("Failed to get device info", error); }); } + void _createSessionLogFile() async { + try { + final config = await AppConfig.instance(); + final appDir = Directory(config.sdkConfig.workingDir); + + _pruneLogs(appDir); + + final logFile = File("${appDir.path}/logs/${DateTime.now().millisecondsSinceEpoch}.app.log"); + logFile.createSync(recursive: true); + + final sync = logFile.openWrite(mode: FileMode.append); + Logger.root.onRecord.listen( + (record) => sync.writeln(_recordToString(record)), + onDone: () async { + await sync.flush(); + await sync.close(); + }, + ); + } catch (e) { + _log.severe("Failed to create log file", e); + } + } + + void _pruneLogs(Directory appDir) { + final loggingFolder = Directory("${appDir.path}/logs/"); + if (!loggingFolder.existsSync()) return; + + // Get and sort log files by modified date + final logFiles = loggingFolder + .listSync(followLinks: false) + .whereType() + .where((file) => file.path.endsWith('.log')) + .toList() + ..sort((a, b) => a.statSync().modified.compareTo(b.statSync().modified)); + + // Delete all except the last 10 log files + if (logFiles.length > 10) { + final filesToDelete = logFiles.take(logFiles.length - 10); + for (var file in filesToDelete) { + file.deleteSync(); + } + } + } + void registerBreezSdkLiquidLogs(BreezSDKLiquid liquidSdk) { liquidSdk.logStream.listen((e) => _logLiquidSdkEntries(e, _liquidSdkLog)); } @@ -91,30 +117,6 @@ class BreezLogger { "${record.stackTrace != null ? "\n${record.stackTrace}" : ""}"; String _formatTime(DateTime time) => time.toUtc().toIso8601String(); - - String _logDir(Directory appDir) => "${appDir.path}/logs/"; - - void _pruneLogs(Directory appDir) { - final loggingFolder = Directory(_logDir(appDir)); - if (loggingFolder.existsSync()) { - // Get and sort log files by modified date - List filesToBePruned = loggingFolder - .listSync(followLinks: false) - .where((e) => e.path.endsWith('.log')) - .toList() - ..sort((l, r) => l.statSync().modified.compareTo(r.statSync().modified)); - // Delete all except last 10 logs - if (filesToBePruned.length > 10) { - filesToBePruned.removeRange( - filesToBePruned.length - 10, - filesToBePruned.length, - ); - for (var logFile in filesToBePruned) { - logFile.delete(); - } - } - } - } } void shareLog() async { diff --git a/packages/breez_logger/pubspec.lock b/packages/breez_logger/pubspec.lock index 0e162040..441f6be7 100644 --- a/packages/breez_logger/pubspec.lock +++ b/packages/breez_logger/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" app_group_directory: dependency: transitive description: @@ -207,10 +207,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -231,18 +231,18 @@ packages: dependency: transitive description: name: firebase_dynamic_links - sha256: ffcae75bfbb95a5fec87e6af8a9389d32f6aadd79220a2b76ef9e220e5284a87 + sha256: "090becd30b4cf2ba1d5d25d0162d60c32dc1a2390a0be7306e6104c3e36e1b39" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "6.0.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "74840d428d4ee5472461a2bfde57cfa3b273845474af78e80d24dae3694de456" + sha256: b802020cd5d3d6eed1182b743e55c3f47a11ebd57ad27adc0eb20f28375c7916 url: "https://pub.dev" source: hosted - version: "0.2.6+43" + version: "0.2.6+44" firebase_messaging: dependency: transitive description: @@ -255,18 +255,18 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "69671a0f1a40c7b7c46ad0283e6f34ca2a59a0362ca14a240a4ea01c46e8a521" + sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d url: "https://pub.dev" source: hosted - version: "4.5.45" + version: "4.5.46" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "6890111a9d01d7b13d0f6fe74850812c334e903d2c80a2d9356a3abb8c3a9e9a" + sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.9.2" firebase_notifications_client: dependency: "direct overridden" description: @@ -814,10 +814,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -838,10 +838,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: diff --git a/packages/breez_preferences/pubspec.lock b/packages/breez_preferences/pubspec.lock index c625ff2b..b2b5e779 100644 --- a/packages/breez_preferences/pubspec.lock +++ b/packages/breez_preferences/pubspec.lock @@ -196,10 +196,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" xdg_directories: dependency: transitive description: diff --git a/packages/breez_sdk_liquid/lib/src/breez_sdk_liquid.dart b/packages/breez_sdk_liquid/lib/src/breez_sdk_liquid.dart index 948222cd..69b58cbd 100644 --- a/packages/breez_sdk_liquid/lib/src/breez_sdk_liquid.dart +++ b/packages/breez_sdk_liquid/lib/src/breez_sdk_liquid.dart @@ -1,6 +1,8 @@ import 'dart:async'; import 'package:flutter_breez_liquid/flutter_breez_liquid.dart' as liquid_sdk; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; import 'package:rxdart/rxdart.dart'; class BreezSDKLiquid { @@ -68,7 +70,13 @@ class BreezSDKLiquid { /// /// Call once on your Dart entrypoint file, e.g.; `lib/main.dart`. void initializeLogStream() { - _breezLogStream ??= liquid_sdk.breezLogStream().asBroadcastStream(); + if (defaultTargetPlatform == TargetPlatform.android) { + _breezLogStream ??= const EventChannel('breez_sdk_liquid_logs') + .receiveBroadcastStream() + .map((log) => liquid_sdk.LogEntry(line: log["line"], level: log["level"])); + } else { + _breezLogStream ??= liquid_sdk.breezLogStream().asBroadcastStream(); + } } StreamSubscription? _breezEventsSubscription; diff --git a/packages/breez_sdk_liquid/pubspec.lock b/packages/breez_sdk_liquid/pubspec.lock index 9dedc1ac..dbefc958 100644 --- a/packages/breez_sdk_liquid/pubspec.lock +++ b/packages/breez_sdk_liquid/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" app_group_directory: dependency: "direct main" description: @@ -207,10 +207,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -231,18 +231,18 @@ packages: dependency: transitive description: name: firebase_dynamic_links - sha256: ffcae75bfbb95a5fec87e6af8a9389d32f6aadd79220a2b76ef9e220e5284a87 + sha256: "090becd30b4cf2ba1d5d25d0162d60c32dc1a2390a0be7306e6104c3e36e1b39" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "6.0.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "74840d428d4ee5472461a2bfde57cfa3b273845474af78e80d24dae3694de456" + sha256: b802020cd5d3d6eed1182b743e55c3f47a11ebd57ad27adc0eb20f28375c7916 url: "https://pub.dev" source: hosted - version: "0.2.6+43" + version: "0.2.6+44" firebase_messaging: dependency: transitive description: @@ -255,18 +255,18 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "69671a0f1a40c7b7c46ad0283e6f34ca2a59a0362ca14a240a4ea01c46e8a521" + sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d url: "https://pub.dev" source: hosted - version: "4.5.45" + version: "4.5.46" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "6890111a9d01d7b13d0f6fe74850812c334e903d2c80a2d9356a3abb8c3a9e9a" + sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.9.2" firebase_notifications_client: dependency: "direct overridden" description: @@ -814,10 +814,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -838,10 +838,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: diff --git a/packages/deep_link_client/pubspec.lock b/packages/deep_link_client/pubspec.lock index 66fe7087..49990e25 100644 --- a/packages/deep_link_client/pubspec.lock +++ b/packages/deep_link_client/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" async: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -85,18 +85,18 @@ packages: dependency: "direct main" description: name: firebase_dynamic_links - sha256: ffcae75bfbb95a5fec87e6af8a9389d32f6aadd79220a2b76ef9e220e5284a87 + sha256: "090becd30b4cf2ba1d5d25d0162d60c32dc1a2390a0be7306e6104c3e36e1b39" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "6.0.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "74840d428d4ee5472461a2bfde57cfa3b273845474af78e80d24dae3694de456" + sha256: b802020cd5d3d6eed1182b743e55c3f47a11ebd57ad27adc0eb20f28375c7916 url: "https://pub.dev" source: hosted - version: "0.2.6+43" + version: "0.2.6+44" flutter: dependency: transitive description: flutter @@ -265,10 +265,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" sdks: dart: ">=3.4.0 <4.0.0" flutter: ">=3.22.0" diff --git a/packages/device_client/pubspec.lock b/packages/device_client/pubspec.lock index c4464411..0ff15c25 100644 --- a/packages/device_client/pubspec.lock +++ b/packages/device_client/pubspec.lock @@ -388,10 +388,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -404,10 +404,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: diff --git a/packages/notifications_client/firebase_notifications_client/pubspec.lock b/packages/notifications_client/firebase_notifications_client/pubspec.lock index 800b0373..30f228a2 100644 --- a/packages/notifications_client/firebase_notifications_client/pubspec.lock +++ b/packages/notifications_client/firebase_notifications_client/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" async: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -93,18 +93,18 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "69671a0f1a40c7b7c46ad0283e6f34ca2a59a0362ca14a240a4ea01c46e8a521" + sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d url: "https://pub.dev" source: hosted - version: "4.5.45" + version: "4.5.46" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "6890111a9d01d7b13d0f6fe74850812c334e903d2c80a2d9356a3abb8c3a9e9a" + sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.9.2" flutter: dependency: transitive description: flutter @@ -273,10 +273,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" sdks: dart: ">=3.4.0 <4.0.0" flutter: ">=3.22.0" diff --git a/packages/sdk_connectivity_cubit/pubspec.lock b/packages/sdk_connectivity_cubit/pubspec.lock index 350322ac..1ba80838 100644 --- a/packages/sdk_connectivity_cubit/pubspec.lock +++ b/packages/sdk_connectivity_cubit/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" app_group_directory: dependency: transitive description: @@ -262,10 +262,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -286,18 +286,18 @@ packages: dependency: transitive description: name: firebase_dynamic_links - sha256: ffcae75bfbb95a5fec87e6af8a9389d32f6aadd79220a2b76ef9e220e5284a87 + sha256: "090becd30b4cf2ba1d5d25d0162d60c32dc1a2390a0be7306e6104c3e36e1b39" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "6.0.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "74840d428d4ee5472461a2bfde57cfa3b273845474af78e80d24dae3694de456" + sha256: b802020cd5d3d6eed1182b743e55c3f47a11ebd57ad27adc0eb20f28375c7916 url: "https://pub.dev" source: hosted - version: "0.2.6+43" + version: "0.2.6+44" firebase_messaging: dependency: transitive description: @@ -310,18 +310,18 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "69671a0f1a40c7b7c46ad0283e6f34ca2a59a0362ca14a240a4ea01c46e8a521" + sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d url: "https://pub.dev" source: hosted - version: "4.5.45" + version: "4.5.46" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "6890111a9d01d7b13d0f6fe74850812c334e903d2c80a2d9356a3abb8c3a9e9a" + sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.9.2" firebase_notifications_client: dependency: "direct overridden" description: @@ -934,10 +934,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -958,10 +958,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: diff --git a/packages/service_injector/pubspec.lock b/packages/service_injector/pubspec.lock index ad748d47..fff55a56 100644 --- a/packages/service_injector/pubspec.lock +++ b/packages/service_injector/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5fdcea390499dd26c808a3c662df5f4208d6bbc0643072eee94f1476249e2818" + sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" url: "https://pub.dev" source: hosted - version: "1.3.43" + version: "1.3.44" app_group_directory: dependency: transitive description: @@ -54,10 +54,10 @@ packages: description: path: "." ref: HEAD - resolved-ref: "27e4a7c762774cd057f06ef826f07bcaba658f25" + resolved-ref: "792f6c3c6a46e3747187c38cce259adb3ffb660b" url: "https://github.com/breez/breez-sdk-liquid-dart" source: git - version: "0.3.1-dev4" + version: "0.3.5-dev1" breez_logger: dependency: "direct main" description: @@ -216,10 +216,10 @@ packages: dependency: transitive description: name: firebase_core - sha256: c7de9354eb2cd8bfe8059e1112174c9a58beda7051807207306bc48283277cfb + sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.0" firebase_core_platform_interface: dependency: transitive description: @@ -240,18 +240,18 @@ packages: dependency: transitive description: name: firebase_dynamic_links - sha256: ffcae75bfbb95a5fec87e6af8a9389d32f6aadd79220a2b76ef9e220e5284a87 + sha256: "090becd30b4cf2ba1d5d25d0162d60c32dc1a2390a0be7306e6104c3e36e1b39" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "6.0.8" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "74840d428d4ee5472461a2bfde57cfa3b273845474af78e80d24dae3694de456" + sha256: b802020cd5d3d6eed1182b743e55c3f47a11ebd57ad27adc0eb20f28375c7916 url: "https://pub.dev" source: hosted - version: "0.2.6+43" + version: "0.2.6+44" firebase_messaging: dependency: transitive description: @@ -264,18 +264,18 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "69671a0f1a40c7b7c46ad0283e6f34ca2a59a0362ca14a240a4ea01c46e8a521" + sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d url: "https://pub.dev" source: hosted - version: "4.5.45" + version: "4.5.46" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "6890111a9d01d7b13d0f6fe74850812c334e903d2c80a2d9356a3abb8c3a9e9a" + sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 url: "https://pub.dev" source: hosted - version: "3.9.1" + version: "3.9.2" firebase_notifications_client: dependency: "direct main" description: @@ -301,10 +301,10 @@ packages: description: path: "." ref: HEAD - resolved-ref: "3ac92dca25d75fed7a1cc0cd702b6c0ca059b6d8" + resolved-ref: daff3da01ee0043afefbb8aff0842b7f37b5ab7a url: "https://github.com/breez/breez-sdk-liquid-flutter" source: git - version: "0.3.1-dev4" + version: "0.3.5-dev1" flutter_rust_bridge: dependency: transitive description: @@ -818,10 +818,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -842,10 +842,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: diff --git a/pubspec.lock b/pubspec.lock index 15475ce0..0cb4907c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1829,10 +1829,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_graphics: dependency: transitive description: