From 16e09aff8a665d19d76576f005081c7b21e5cf2c Mon Sep 17 00:00:00 2001 From: Erdem Yerebasmaz Date: Wed, 3 Jul 2024 18:49:00 +0300 Subject: [PATCH] Attempt to load breez liquid library via ExternalLibrary.process() if it fails to load (#357) process() resolves any symbol in a library currently loaded with global visibility. --- packages/dart/lib/breez_liquid.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/dart/lib/breez_liquid.dart b/packages/dart/lib/breez_liquid.dart index 38ca8b7..3b2d07d 100644 --- a/packages/dart/lib/breez_liquid.dart +++ b/packages/dart/lib/breez_liquid.dart @@ -6,12 +6,23 @@ export 'src/model.dart'; export 'src/error.dart'; export 'src/bindings/duplicates.dart'; +import 'dart:io'; + import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'src/frb_generated.dart'; typedef BreezLiquid = RustLibApi; typedef BreezLiquidImpl = RustLibApiImpl; +const libName = 'breez_liquid_sdk'; + Future initialize({ExternalLibrary? dylib}) { + if (dylib == null && (Platform.isIOS || Platform.isMacOS)) { + try { + dylib = ExternalLibrary.open("$libName.framework/$libName"); + } catch (e) { + dylib = ExternalLibrary.process(iKnowHowToUseIt: true); + } + } return RustLib.init(externalLibrary: dylib); }