From 9169551a95d1292cab371cc064350991f060aa27 Mon Sep 17 00:00:00 2001 From: m Date: Tue, 14 May 2024 18:11:48 +0100 Subject: [PATCH] Use dylib as iOS framework. Use custom path for loading of iOS framework for monero.dart. Add script for generate iOS framework for monero wallet. --- .gitignore | 4 +++- ios/MoneroWallet.framework/Info.plist | Bin 0 -> 793 bytes ios/Runner.xcodeproj/project.pbxproj | 10 +++++----- lib/main.dart | 7 ++++++- scripts/ios/app_config.sh | 2 +- scripts/ios/gen_framework.sh | 16 ++++++++++++++++ 6 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 ios/MoneroWallet.framework/Info.plist create mode 100755 scripts/ios/gen_framework.sh diff --git a/.gitignore b/.gitignore index cbc6b9571..3590938dc 100644 --- a/.gitignore +++ b/.gitignore @@ -168,4 +168,6 @@ macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png macos/Runner/Configs/AppInfo.xcconfig # Monero.dart (Monero_C) -scripts/monero_c \ No newline at end of file +scripts/monero_c +# iOS generated framework bin +ios/MoneroWallet.framework/MoneroWallet \ No newline at end of file diff --git a/ios/MoneroWallet.framework/Info.plist b/ios/MoneroWallet.framework/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..8858589f7070c754a01b0519387f9cab5f664005 GIT binary patch literal 793 zcmZXQ&rcIU6vtUcNFuadk3vEj@Mp#?9$l6SH&kckVuTD5sjMYb$}%;&g-9bW<~Q zZM}D^YevHoE&4RdtOSg=OldOi)#x7O!nLX6S7?U`$CO6nT8(<$D3gq+BC&RuLrZ$} z+R}_NCw^OacJCKcO2$~3Si7V{jeR%FrsAx=BRs!9QTILObWRro*A2_G6_4zi(o{?q zoVL)I<%d#;xBpMnSX|G)pjP0MZQfgPRoE`$)H9`YwNRnY1Lo0IxFoaaDsjm+HkkGv_d;rn^AA8S~!N+h|T!EDJ4$U?sLt)zkO#Du`Hc+9O4IFXu{|T z6m>O=!l9n16V9pMWbRJ*6kT;$&Km0Cf>O(<`HZSmsPjavWft<8Otuj>8EeJ*x~|H~ z;Y@>-dtgb|mt@71W-MXL#C189!&_uRSLS@rmMu=4j;xx>;q5B%?4|IRh)DH_w(tcP z)~+X?7WL`geF;lo^fcAg#e7D|5(); final rootKey = GlobalKey(); final RouteObserver> routeObserver = RouteObserver>(); Future main() async { + if (Platform.isIOS) { + monero_dart.libPath = "MoneroWallet.framework/MoneroWallet"; + } + bool isAppRunning = false; await runZonedGuarded(() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/scripts/ios/app_config.sh b/scripts/ios/app_config.sh index 6286af6a5..c8aa5623e 100755 --- a/scripts/ios/app_config.sh +++ b/scripts/ios/app_config.sh @@ -9,7 +9,7 @@ if [ -z "$APP_IOS_TYPE" ]; then echo "Please set APP_IOS_TYPE" exit 1 fi - +./gen_framework.sh cd .. # go to scipts ./gen_android_manifest.sh cd .. # go to root diff --git a/scripts/ios/gen_framework.sh b/scripts/ios/gen_framework.sh new file mode 100755 index 000000000..74fc67842 --- /dev/null +++ b/scripts/ios/gen_framework.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Assume we are in scripts/ios +IOS_DIR="$(pwd)/../../ios" +DYLIB_NAME="monero_libwallet2_api_c.dylib" +DYLIB_LINK_PATH="${IOS_DIR}/${DYLIB_NAME}" +FRWK_DIR="${IOS_DIR}/MoneroWallet.framework" + +if [ ! -f $DYLIB_LINK_PATH ]; then + echo "Dylib is not found by the link: ${DYLIB_LINK_PATH}" + exit 0 +fi + +cd $FRWK_DIR # go to iOS framework dir +lipo -create $DYLIB_LINK_PATH -output MoneroWallet + +echo "Generated ${FRWK_DIR}"