diff --git a/.gitignore b/.gitignore index fa76fd072..57cbf7fb2 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,6 @@ proto # Google google-services.json + +# iOS +/ios/Pods diff --git a/README.md b/README.md index 55ab54004..cc75406ba 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,9 @@ Do you like React Native, Java or Lightning? Come and help out! ## Build Steps -- Install [Node](https://nodejs.org), [Yarn](https://classic.yarnpkg.com/), [Android Studio + Android SDK (including NDK)](https://developer.android.com/studio/) +### Android + +- Install [Node](https://nodejs.org), [Yarn](https://classic.yarnpkg.com/) and [Android Studio + Android SDK (including NDK)](https://developer.android.com/studio/) - If needed, install an emulated android device inside Android Studio - Download lnd binary from [blixt-lndmobile-releases](https://github.com/BlixtWallet/blixt-lndmobile-releases/releases) and put it in `android/lndmobile`. Alternatively build lnd for Android by following the steps in [build-android-aar.md](build-android-aar.md) - Get the tor sub-module: `git submodule update --init` @@ -51,7 +53,28 @@ Do you like React Native, Java or Lightning? Come and help out! To start the application: - Run: `yarn start-metro` -- Run: `yarn mainnet-debug` or `yarn testnet-debug` +- Run: `yarn android:mainnet-debug` or `yarn android:testnet-debug` + +### iOS + +_The iPhone/iOS version is still work in progress and is not yet stable nor fully working._ + +To build the iOS version, macOS is required. You also need an Apple Developer account, although you do not need to be enrolled in the Developer Program. + +- Install [XCode](https://developer.apple.com/xcode/), [Node](https://nodejs.org) and [Yarn](https://classic.yarnpkg.com/) +- Install Node packages: `yarn` +- Generate proto files: `yarn gen-proto` +- Install CocoaPods libs: `cd ios && pod install` +- Setup team signing: + - Open ios/BlixtWallet/BlixtWallet.xcworkspace with XCode + - Login with your Apple Developer account if XCode asks you to + - Click on BlixtWallet in the left column + - Click on the Signing & Capabilities tab + - Choose your Team in the dropdown and choose a new unique Bundle Identifier (cannot be the same as the ones released on the App Store). Do this for every configuration + +To start the application: +- Run: `yarn start-metro` +- Run: `yarn ios:fakelnd-debug` ## Commit and Code-Style diff --git a/android/app/build.gradle b/android/app/build.gradle index 644413946..3e9af120a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -79,7 +79,7 @@ import com.android.build.OutputFile */ project.ext.react = [ - entryFile: "index.ts", + entryFile: "index.js", enableHermes: true, // clean and rebuild if changing ] diff --git a/android/app/src/main/assets/fonts/Feather.ttf b/android/app/src/main/assets/fonts/Feather.ttf index 852c7135a..a3c58c506 100644 Binary files a/android/app/src/main/assets/fonts/Feather.ttf and b/android/app/src/main/assets/fonts/Feather.ttf differ diff --git a/android/app/src/main/assets/fonts/IBMPlexSans-Medium.ttf b/android/app/src/main/assets/fonts/IBMPlexSans-Medium.ttf new file mode 100644 index 000000000..b278201ec Binary files /dev/null and b/android/app/src/main/assets/fonts/IBMPlexSans-Medium.ttf differ diff --git a/android/app/src/main/assets/fonts/IBMPlexSans-Regular.ttf b/android/app/src/main/assets/fonts/IBMPlexSans-Regular.ttf new file mode 100644 index 000000000..3b16bfd91 Binary files /dev/null and b/android/app/src/main/assets/fonts/IBMPlexSans-Regular.ttf differ diff --git a/android/app/src/main/assets/fonts/MaterialIcons.ttf b/android/app/src/main/assets/fonts/MaterialIcons.ttf index 7015564ad..e50801b3b 100644 Binary files a/android/app/src/main/assets/fonts/MaterialIcons.ttf and b/android/app/src/main/assets/fonts/MaterialIcons.ttf differ diff --git a/android/app/src/main/java/com/blixtwallet/LndMobileService.java b/android/app/src/main/java/com/blixtwallet/LndMobileService.java index d2f17d1fd..83f032140 100644 --- a/android/app/src/main/java/com/blixtwallet/LndMobileService.java +++ b/android/app/src/main/java/com/blixtwallet/LndMobileService.java @@ -226,6 +226,7 @@ public void handleMessage(Message msg) { // when the RPC ready callback // from LndMobile's start is called, // not when the InitWallet RPC call is done + // TODO(hsjoberg): document this more clearly unlockWalletRequest = request; ArrayList seed = bundle.getStringArrayList("seed"); diff --git a/assets/fonts/IBMPlexSans-Medium.ttf b/assets/fonts/IBMPlexSans-Medium.ttf new file mode 100644 index 000000000..b278201ec Binary files /dev/null and b/assets/fonts/IBMPlexSans-Medium.ttf differ diff --git a/assets/fonts/IBMPlexSans-Regular.ttf b/assets/fonts/IBMPlexSans-Regular.ttf new file mode 100644 index 000000000..3b16bfd91 Binary files /dev/null and b/assets/fonts/IBMPlexSans-Regular.ttf differ diff --git a/build-tor b/build-tor index 5d02906a4..ab99cd935 100755 --- a/build-tor +++ b/build-tor @@ -2,4 +2,4 @@ cd tor ./gradlew install ./gradlew :universal:build ./gradlew :android:build -./gradlew :android:publishToMaven \ No newline at end of file +./gradlew :android:publishToMavenLocal diff --git a/index.ts b/index.js similarity index 100% rename from index.ts rename to index.js diff --git a/ios/BlixtWallet-tvOS/Info.plist b/ios/BlixtWallet-tvOS/Info.plist index 2fb6a11c2..ecbd496be 100644 --- a/ios/BlixtWallet-tvOS/Info.plist +++ b/ios/BlixtWallet-tvOS/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -22,6 +22,19 @@ 1 LSRequiresIPhoneOS + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities @@ -36,19 +49,5 @@ UIViewControllerBasedStatusBarAppearance - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - diff --git a/ios/BlixtWallet-tvOSTests/Info.plist b/ios/BlixtWallet-tvOSTests/Info.plist index 886825ccc..ba72822e8 100644 --- a/ios/BlixtWallet-tvOSTests/Info.plist +++ b/ios/BlixtWallet-tvOSTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/ios/BlixtWallet.xcodeproj/project.pbxproj b/ios/BlixtWallet.xcodeproj/project.pbxproj index 27867d238..8c61ace8c 100644 --- a/ios/BlixtWallet.xcodeproj/project.pbxproj +++ b/ios/BlixtWallet.xcodeproj/project.pbxproj @@ -5,106 +5,26 @@ }; objectVersion = 46; objects = { + /* Begin PBXBuildFile section */ - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; 00E356F31AD99517003FC87E /* BlixtWalletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BlixtWalletTests.m */; }; - 11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; }; 2DCD954D1E0B4F2C00145EB5 /* BlixtWalletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BlixtWalletTests.m */; }; - 2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; - ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; }; - ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; }; - 6BCFA3D862AC484FB93A0A11 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A5E60D8E77444249BBC37932 /* AntDesign.ttf */; }; - 258617F423D040F78B149C6C /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D6985BBC714F403AA21758B7 /* Entypo.ttf */; }; - 19C047FF95D849CC834E0502 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E20F78A2E29D472EB08466AF /* EvilIcons.ttf */; }; - D6FBAB41115C4913BB38E981 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 63AE28216C6944AF92BDFE36 /* Feather.ttf */; }; - 5CA9306702E940E5957F7E6E /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 232E4EB922F543ED9CB805DE /* FontAwesome.ttf */; }; - C4969CA50EC3447898A9AB5F /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EEF847D1F0C94996AF898BBC /* FontAwesome5_Brands.ttf */; }; - 4236BB92F2FB43C9A57A66F3 /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9B1BA625E3DB4564BA3F9E93 /* FontAwesome5_Regular.ttf */; }; - 11D889F9F67747F7BBC9BA11 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B435794CFED540CF9475F07F /* FontAwesome5_Solid.ttf */; }; - AB7DBBBCE6EE498BAAFDCA96 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 869C972DF8BE4225A4199E6E /* Foundation.ttf */; }; - 30BD2728420647F0ABDDE9C4 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DE616D07978F4298991C4DA2 /* Ionicons.ttf */; }; - 1E99BBEE07B048B5B82DF6C1 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8DF5A4301B2A4369AC501E85 /* MaterialCommunityIcons.ttf */; }; - ED2157E9C29A4B579267CE07 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4D08AAD3EA1748709ABD19B7 /* MaterialIcons.ttf */; }; - 3776D6A1F09C48E092B31397 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6B5FA0FC9A15448DA445E1FD /* Octicons.ttf */; }; - FCDA1538CAB7481A9887678E /* Roboto_medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0AB1924C83894EDA8D0A7215 /* Roboto_medium.ttf */; }; - 8FC3B5362B00448A88BCFA7E /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 86A2FC7C997E428380612AEE /* Roboto.ttf */; }; - 6B0400163BAD4BD0A1F6E3E5 /* rubicon-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 414647DAE69640738264157E /* rubicon-icon-font.ttf */; }; - CFA73C097DD64D1C808166CF /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 785430B83E9F4496819A1EE4 /* SimpleLineIcons.ttf */; }; - 24A1104E5BAF49E3BB99A1EC /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A10DDCB137C14DAFB2EABC1C /* Zocial.ttf */; }; - A14A22CD7962466EA3C0E1F2 /* libRNCamera.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B699ED7474AE4259AC6F7551 /* libRNCamera.a */; }; - 8F5C59F485294DE78C4682AD /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84AF629C7AF94F1D9891B9F4 /* libRNSVG.a */; }; - 9B8DB826E9AA4AD098650CF1 /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 864C077F658945F2B9423169 /* libRNSVG-tvOS.a */; }; - 7DED7AFB4E164378A797A5B0 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 925B9B0240A840D094850571 /* libBVLinearGradient.a */; }; - 53C7915F2CED4D8BBB4A5A15 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C8C15941A7AF4A4BAB3119FD /* libRNGestureHandler.a */; }; - D6C37E91B4E2488CBD443379 /* libRNGestureHandler-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E1903D292C34490BB7DDA93 /* libRNGestureHandler-tvOS.a */; }; - D25E413E5B6E436CBFF4D631 /* libSQLite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6D21F4E1E094CC8B2D81A25 /* libSQLite.a */; }; - 2DC18CD4E39D424FA35511F6 /* libRNCAsyncStorage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 03902926BD4742BBB000E2D6 /* libRNCAsyncStorage.a */; }; - 990AD1B6BDCB4CA4B25803E9 /* libRNBlur.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EF3D7DA5D16D497CA7BB44D1 /* libRNBlur.a */; }; - 58AE113C7B5C46A595B5857B /* libSajjadBlurOverlay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 62D1885A2FEF40CABD314FE9 /* libSajjadBlurOverlay.a */; }; + 42CC1768B4D790644A596D64 /* libPods-BlixtWallet-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 706E38B37BF971CD94E774DF /* libPods-BlixtWallet-tvOSTests.a */; }; + 5C58E665BA0A0B64DE960DCB /* libPods-BlixtWallet-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CFC488B9CB00B9AB0D8FDE59 /* libPods-BlixtWallet-tvOS.a */; }; + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; + B77E06202F5CCA2EF5A26E97 /* libPods-BlixtWallet-BlixtWalletTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 457694BE08363A5757587B12 /* libPods-BlixtWallet-BlixtWalletTests.a */; }; + BA12DD7C6C3D42969E297EAE /* IBMPlexSans-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 53E703C0F141473C8564E7EA /* IBMPlexSans-Regular.ttf */; }; + C22E6DD819CB41F69AADA37A /* IBMPlexSans-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D57823EDB09B4CD1998E77F2 /* IBMPlexSans-Medium.ttf */; }; + CC4F84C39523CF90E4DA5819 /* libPods-BlixtWallet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 24A62E03C64FF473C7843187 /* libPods-BlixtWallet.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTActionSheet; - }; - 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTGeolocation; - }; - 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B511DB1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -112,27 +32,6 @@ remoteGlobalIDString = 13B07F861A680F5B00A75B9A; remoteInfo = BlixtWallet; }; - 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTSettings; - }; - 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3C86DF461ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; - 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; - remoteInfo = React; - }; 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -140,276 +39,63 @@ remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; remoteInfo = "BlixtWallet-tvOS"; }; - 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = ADD01A681E09402E00F6D226; - remoteInfo = "RCTBlob-tvOS"; - }; - 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; - remoteInfo = fishhook; - }; - 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; - remoteInfo = "fishhook-tvOS"; - }; - 2DF0FFDE2056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BDC1FC498900052F4D5; - remoteInfo = jsinspector; - }; - 2DF0FFE02056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5; - remoteInfo = "jsinspector-tvOS"; - }; - 2DF0FFE22056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; - remoteInfo = "third-party"; - }; - 2DF0FFE42056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; - remoteInfo = "third-party-tvOS"; - }; - 2DF0FFE62056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7E881E25C6D100323FB7; - remoteInfo = "double-conversion"; - }; - 2DF0FFE82056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D621EBD27B9005632C8; - remoteInfo = "double-conversion-tvOS"; - }; - 2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F3131F5F2E4B0010BF04; - remoteInfo = privatedata; - }; - 2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04; - remoteInfo = "privatedata-tvOS"; - }; - 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; - remoteInfo = "RCTImage-tvOS"; - }; - 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28471D9B043800D4039D; - remoteInfo = "RCTLinking-tvOS"; - }; - 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28541D9B044C00D4039D; - remoteInfo = "RCTNetwork-tvOS"; - }; - 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28611D9B046600D4039D; - remoteInfo = "RCTSettings-tvOS"; - }; - 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A287B1D9B048500D4039D; - remoteInfo = "RCTText-tvOS"; - }; - 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28881D9B049200D4039D; - remoteInfo = "RCTWebSocket-tvOS"; - }; - 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28131D9B038B00D4039D; - remoteInfo = "React-tvOS"; - }; - 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C059A1DE3340900C268FA; - remoteInfo = yoga; - }; - 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C06751DE3340C00C268FA; - remoteInfo = "yoga-tvOS"; - }; - 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; - remoteInfo = cxxreact; - }; - 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; - remoteInfo = "cxxreact-tvOS"; - }; - 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; - remoteInfo = jschelpers; - }; - 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; - remoteInfo = "jschelpers-tvOS"; - }; - 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTAnimation; - }; - 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28201D9B03D100D4039D; - remoteInfo = "RCTAnimation-tvOS"; - }; - 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTLinking; - }; - 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5119B1A9E6C1200147676; - remoteInfo = RCTText; - }; - ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 358F4ED71D1E81A9004DF814; - remoteInfo = RCTBlob; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 00E356EE1AD99517003FC87E /* BlixtWalletTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlixtWalletTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* BlixtWalletTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BlixtWalletTests.m; sourceTree = ""; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* BlixtWallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BlixtWallet.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 066BFFB353CCBD85A528256A /* Pods-BlixtWallet-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.debug.xcconfig"; sourceTree = ""; }; + 10BC2269580B18F702C7DBFA /* Pods-BlixtWallet.releaseregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.releaseregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.releaseregtest.xcconfig"; sourceTree = ""; }; + 115F60A62F2ACA07D8C93522 /* Pods-BlixtWallet.releasefakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.releasefakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.releasefakelnd.xcconfig"; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* Blixt Wallet Debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Blixt Wallet Debug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = BlixtWallet/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = BlixtWallet/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BlixtWallet/Images.xcassets; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BlixtWallet/Images.xcassets; sourceTree = SOURCE_ROOT; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BlixtWallet/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = BlixtWallet/main.m; sourceTree = ""; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + 1575F4AEEE77591610698556 /* Pods-BlixtWallet-BlixtWalletTests.debugfakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.debugfakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.debugfakelnd.xcconfig"; sourceTree = ""; }; + 1BF9C37DDFECED4FEB42102D /* Pods-BlixtWallet-BlixtWalletTests.releasefakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.releasefakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.releasefakelnd.xcconfig"; sourceTree = ""; }; + 1D85700D17488384A1AE7C09 /* Pods-BlixtWallet.debugregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.debugregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.debugregtest.xcconfig"; sourceTree = ""; }; + 222CBE7135085C8DC16AF2BF /* Pods-BlixtWallet-tvOSTests.debugtestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.debugtestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.debugtestnet.xcconfig"; sourceTree = ""; }; + 24A62E03C64FF473C7843187 /* libPods-BlixtWallet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlixtWallet.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 258F1BA819B086F0517CCF61 /* Pods-BlixtWallet-tvOS.releasefakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.releasefakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.releasefakelnd.xcconfig"; sourceTree = ""; }; 2D02E47B1E0B4A5D006451C7 /* BlixtWallet-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BlixtWallet-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E4901E0B4A5D006451C7 /* BlixtWallet-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BlixtWallet-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; + 457694BE08363A5757587B12 /* libPods-BlixtWallet-BlixtWalletTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlixtWallet-BlixtWalletTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 49871026719D77C310827B47 /* Pods-BlixtWallet-tvOSTests.releasetestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.releasetestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.releasetestnet.xcconfig"; sourceTree = ""; }; + 51FEA3B5F5E91ADECAF81AF4 /* Pods-BlixtWallet.debugtestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.debugtestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.debugtestnet.xcconfig"; sourceTree = ""; }; + 53E703C0F141473C8564E7EA /* IBMPlexSans-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "IBMPlexSans-Regular.ttf"; path = "../assets/fonts/IBMPlexSans-Regular.ttf"; sourceTree = ""; }; + 542C9ECE0553F656BFC79606 /* Pods-BlixtWallet-BlixtWalletTests.debugregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.debugregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.debugregtest.xcconfig"; sourceTree = ""; }; + 563779FB362F9F7CC16F1FCB /* Pods-BlixtWallet-tvOS.releaseregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.releaseregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.releaseregtest.xcconfig"; sourceTree = ""; }; + 5737833BCB603FAB9176767B /* Pods-BlixtWallet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.debug.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.debug.xcconfig"; sourceTree = ""; }; + 6158EE7F43BEC16FB039A493 /* Pods-BlixtWallet-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.debug.xcconfig"; sourceTree = ""; }; + 6569DA346704D3414FB6E0B3 /* Pods-BlixtWallet-tvOSTests.debugfakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.debugfakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.debugfakelnd.xcconfig"; sourceTree = ""; }; + 6699621AC3CDCB77C5CB4B39 /* Pods-BlixtWallet-tvOSTests.releaseregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.releaseregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.releaseregtest.xcconfig"; sourceTree = ""; }; + 6F21675F737F23140EE8373E /* Pods-BlixtWallet-BlixtWalletTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.release.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.release.xcconfig"; sourceTree = ""; }; + 706E38B37BF971CD94E774DF /* libPods-BlixtWallet-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlixtWallet-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7F8DF590825EC1BAC7E0ABE5 /* Pods-BlixtWallet-BlixtWalletTests.releasetestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.releasetestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.releasetestnet.xcconfig"; sourceTree = ""; }; + 7FB0EDCFC05DD4E258EB4698 /* Pods-BlixtWallet-BlixtWalletTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.debug.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.debug.xcconfig"; sourceTree = ""; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = BlixtWallet/LaunchScreen.storyboard; sourceTree = ""; }; + 8499C4474A53BD58C6813CE2 /* Pods-BlixtWallet-tvOSTests.debugregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.debugregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.debugregtest.xcconfig"; sourceTree = ""; }; + 8C232B9EDF2253DE1374D60E /* Pods-BlixtWallet-tvOSTests.releasefakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.releasefakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.releasefakelnd.xcconfig"; sourceTree = ""; }; + 998ADD6FA79FB1F2808716D5 /* Pods-BlixtWallet-tvOS.debugregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.debugregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.debugregtest.xcconfig"; sourceTree = ""; }; + AE57B87104E34C850CC995D7 /* Pods-BlixtWallet.debugfakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.debugfakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.debugfakelnd.xcconfig"; sourceTree = ""; }; + BCF5A8A005FCD3DCB7CEB565 /* Pods-BlixtWallet-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOSTests/Pods-BlixtWallet-tvOSTests.release.xcconfig"; sourceTree = ""; }; + C132F37DCBE159303BCD7902 /* Pods-BlixtWallet-tvOS.debugfakelnd.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.debugfakelnd.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.debugfakelnd.xcconfig"; sourceTree = ""; }; + C410974135376A18E1B2404A /* Pods-BlixtWallet-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.release.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.release.xcconfig"; sourceTree = ""; }; + CAAB4E5D47A9A21CFEB062E7 /* Pods-BlixtWallet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.release.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.release.xcconfig"; sourceTree = ""; }; + CC85FC242576522B00C376A9 /* BlixtWallet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = BlixtWallet.entitlements; path = BlixtWallet/BlixtWallet.entitlements; sourceTree = ""; }; + CFC488B9CB00B9AB0D8FDE59 /* libPods-BlixtWallet-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BlixtWallet-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + D57823EDB09B4CD1998E77F2 /* IBMPlexSans-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "IBMPlexSans-Medium.ttf"; path = "../assets/fonts/IBMPlexSans-Medium.ttf"; sourceTree = ""; }; + D64B150F528503028AA4B961 /* Pods-BlixtWallet-tvOS.debugtestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.debugtestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.debugtestnet.xcconfig"; sourceTree = ""; }; + DC5C60C16BB07650A497820A /* Pods-BlixtWallet-BlixtWalletTests.debugtestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.debugtestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.debugtestnet.xcconfig"; sourceTree = ""; }; + EA2D85B8E85EE977BE93539A /* Pods-BlixtWallet-BlixtWalletTests.releaseregtest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-BlixtWalletTests.releaseregtest.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests.releaseregtest.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; - A5E60D8E77444249BBC37932 /* AntDesign.ttf */ = {isa = PBXFileReference; name = "AntDesign.ttf"; path = "../node_modules/native-base/Fonts/AntDesign.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - D6985BBC714F403AA21758B7 /* Entypo.ttf */ = {isa = PBXFileReference; name = "Entypo.ttf"; path = "../node_modules/native-base/Fonts/Entypo.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - E20F78A2E29D472EB08466AF /* EvilIcons.ttf */ = {isa = PBXFileReference; name = "EvilIcons.ttf"; path = "../node_modules/native-base/Fonts/EvilIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 63AE28216C6944AF92BDFE36 /* Feather.ttf */ = {isa = PBXFileReference; name = "Feather.ttf"; path = "../node_modules/native-base/Fonts/Feather.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 232E4EB922F543ED9CB805DE /* FontAwesome.ttf */ = {isa = PBXFileReference; name = "FontAwesome.ttf"; path = "../node_modules/native-base/Fonts/FontAwesome.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - EEF847D1F0C94996AF898BBC /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Brands.ttf"; path = "../node_modules/native-base/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 9B1BA625E3DB4564BA3F9E93 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Regular.ttf"; path = "../node_modules/native-base/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - B435794CFED540CF9475F07F /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Solid.ttf"; path = "../node_modules/native-base/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 869C972DF8BE4225A4199E6E /* Foundation.ttf */ = {isa = PBXFileReference; name = "Foundation.ttf"; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - DE616D07978F4298991C4DA2 /* Ionicons.ttf */ = {isa = PBXFileReference; name = "Ionicons.ttf"; path = "../node_modules/native-base/Fonts/Ionicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 8DF5A4301B2A4369AC501E85 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; name = "MaterialCommunityIcons.ttf"; path = "../node_modules/native-base/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 4D08AAD3EA1748709ABD19B7 /* MaterialIcons.ttf */ = {isa = PBXFileReference; name = "MaterialIcons.ttf"; path = "../node_modules/native-base/Fonts/MaterialIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 6B5FA0FC9A15448DA445E1FD /* Octicons.ttf */ = {isa = PBXFileReference; name = "Octicons.ttf"; path = "../node_modules/native-base/Fonts/Octicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 0AB1924C83894EDA8D0A7215 /* Roboto_medium.ttf */ = {isa = PBXFileReference; name = "Roboto_medium.ttf"; path = "../node_modules/native-base/Fonts/Roboto_medium.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 86A2FC7C997E428380612AEE /* Roboto.ttf */ = {isa = PBXFileReference; name = "Roboto.ttf"; path = "../node_modules/native-base/Fonts/Roboto.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 414647DAE69640738264157E /* rubicon-icon-font.ttf */ = {isa = PBXFileReference; name = "rubicon-icon-font.ttf"; path = "../node_modules/native-base/Fonts/rubicon-icon-font.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 785430B83E9F4496819A1EE4 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; name = "SimpleLineIcons.ttf"; path = "../node_modules/native-base/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - A10DDCB137C14DAFB2EABC1C /* Zocial.ttf */ = {isa = PBXFileReference; name = "Zocial.ttf"; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; - 4CBA905A704442CAA4E83FDD /* RNCamera.xcodeproj */ = {isa = PBXFileReference; name = "RNCamera.xcodeproj"; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - B699ED7474AE4259AC6F7551 /* libRNCamera.a */ = {isa = PBXFileReference; name = "libRNCamera.a"; path = "libRNCamera.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - FFE88D4B0499492DAFB408C7 /* RNSVG.xcodeproj */ = {isa = PBXFileReference; name = "RNSVG.xcodeproj"; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 84AF629C7AF94F1D9891B9F4 /* libRNSVG.a */ = {isa = PBXFileReference; name = "libRNSVG.a"; path = "libRNSVG.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 864C077F658945F2B9423169 /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; name = "libRNSVG-tvOS.a"; path = "libRNSVG-tvOS.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 0F339D930FE94467800F11DB /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; name = "BVLinearGradient.xcodeproj"; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 925B9B0240A840D094850571 /* libBVLinearGradient.a */ = {isa = PBXFileReference; name = "libBVLinearGradient.a"; path = "libBVLinearGradient.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - D2740324B4F64D5DB98DA6B3 /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; name = "RNGestureHandler.xcodeproj"; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - C8C15941A7AF4A4BAB3119FD /* libRNGestureHandler.a */ = {isa = PBXFileReference; name = "libRNGestureHandler.a"; path = "libRNGestureHandler.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 4E1903D292C34490BB7DDA93 /* libRNGestureHandler-tvOS.a */ = {isa = PBXFileReference; name = "libRNGestureHandler-tvOS.a"; path = "libRNGestureHandler-tvOS.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - FA8AAA83B00B414980BA19C3 /* SQLite.xcodeproj */ = {isa = PBXFileReference; name = "SQLite.xcodeproj"; path = "../node_modules/react-native-sqlite-storage/src/ios/SQLite.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - A6D21F4E1E094CC8B2D81A25 /* libSQLite.a */ = {isa = PBXFileReference; name = "libSQLite.a"; path = "libSQLite.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 2F2799E32755484B8F506FF1 /* RNCAsyncStorage.xcodeproj */ = {isa = PBXFileReference; name = "RNCAsyncStorage.xcodeproj"; path = "../node_modules/@react-native-community/async-storage/ios/RNCAsyncStorage.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 03902926BD4742BBB000E2D6 /* libRNCAsyncStorage.a */ = {isa = PBXFileReference; name = "libRNCAsyncStorage.a"; path = "libRNCAsyncStorage.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 8E46721B0CCE463C9709FA28 /* RNBlur.xcodeproj */ = {isa = PBXFileReference; name = "RNBlur.xcodeproj"; path = "../node_modules/@react-native-community/blur/ios/RNBlur.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - EF3D7DA5D16D497CA7BB44D1 /* libRNBlur.a */ = {isa = PBXFileReference; name = "libRNBlur.a"; path = "libRNBlur.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; - 073691901B024BC98B734B9D /* SajjadBlurOverlay.xcodeproj */ = {isa = PBXFileReference; name = "SajjadBlurOverlay.xcodeproj"; path = "../node_modules/react-native-blur-overlay/ios/SajjadBlurOverlay.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; - 62D1885A2FEF40CABD314FE9 /* libSajjadBlurOverlay.a */ = {isa = PBXFileReference; name = "libSajjadBlurOverlay.a"; path = "libSajjadBlurOverlay.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; + F6E17F247928E43EEE8EE19A /* Pods-BlixtWallet-tvOS.releasetestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet-tvOS.releasetestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet-tvOS/Pods-BlixtWallet-tvOS.releasetestnet.xcconfig"; sourceTree = ""; }; + FF05AEC3BC653B06C3B00AAB /* Pods-BlixtWallet.releasetestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.releasetestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.releasetestnet.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -417,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, + B77E06202F5CCA2EF5A26E97 /* libPods-BlixtWallet-BlixtWalletTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -425,27 +111,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */, - ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */, - 11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */, - 146834051AC3E58100842450 /* libReact.a in Frameworks */, - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - A14A22CD7962466EA3C0E1F2 /* libRNCamera.a in Frameworks */, - 8F5C59F485294DE78C4682AD /* libRNSVG.a in Frameworks */, - 7DED7AFB4E164378A797A5B0 /* libBVLinearGradient.a in Frameworks */, - 53C7915F2CED4D8BBB4A5A15 /* libRNGestureHandler.a in Frameworks */, - D25E413E5B6E436CBFF4D631 /* libSQLite.a in Frameworks */, - 2DC18CD4E39D424FA35511F6 /* libRNCAsyncStorage.a in Frameworks */, - 990AD1B6BDCB4CA4B25803E9 /* libRNBlur.a in Frameworks */, - 58AE113C7B5C46A595B5857B /* libSajjadBlurOverlay.a in Frameworks */, + CC4F84C39523CF90E4DA5819 /* libPods-BlixtWallet.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -453,17 +119,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */, - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */, - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, - 9B8DB826E9AA4AD098650CF1 /* libRNSVG-tvOS.a in Frameworks */, - D6C37E91B4E2488CBD443379 /* libRNGestureHandler-tvOS.a in Frameworks */, + 5C58E665BA0A0B64DE960DCB /* libPods-BlixtWallet-tvOS.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -471,55 +127,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */, + 42CC1768B4D790644A596D64 /* libPods-BlixtWallet-tvOSTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 00C302A81ABCB8CE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302B61ABCB90400DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302BC1ABCB91800DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302D41ABCB9D200DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302E01ABCB9EE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, - ); - name = Products; - sourceTree = ""; - }; 00E356EF1AD99517003FC87E /* BlixtWalletTests */ = { isa = PBXGroup; children = ( @@ -537,127 +151,80 @@ name = "Supporting Files"; sourceTree = ""; }; - 139105B71AF99BAD00B5F7CC /* Products */ = { - isa = PBXGroup; - children = ( - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 139FDEE71B06529A00C62182 /* Products */ = { - isa = PBXGroup; - children = ( - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, - 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */, - 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; 13B07FAE1A68108700A75B9A /* BlixtWallet */ = { isa = PBXGroup; children = ( + CC85FC242576522B00C376A9 /* BlixtWallet.entitlements */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.m */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, ); name = BlixtWallet; sourceTree = ""; }; - 146834001AC3E56700842450 /* Products */ = { - isa = PBXGroup; - children = ( - 146834041AC3E56700842450 /* libReact.a */, - 3DAD3EA31DF850E9000B6D8A /* libReact.a */, - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, - 2DF0FFDF2056DD460020B375 /* libjsinspector.a */, - 2DF0FFE12056DD460020B375 /* libjsinspector-tvOS.a */, - 2DF0FFE32056DD460020B375 /* libthird-party.a */, - 2DF0FFE52056DD460020B375 /* libthird-party.a */, - 2DF0FFE72056DD460020B375 /* libdouble-conversion.a */, - 2DF0FFE92056DD460020B375 /* libdouble-conversion.a */, - 2DF0FFEB2056DD460020B375 /* libprivatedata.a */, - 2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, ED2971642150620600B7C4FE /* JavaScriptCore.framework */, - 2D16E6891FA4F8E400B85C8A /* libReact.a */, + 24A62E03C64FF473C7843187 /* libPods-BlixtWallet.a */, + 457694BE08363A5757587B12 /* libPods-BlixtWallet-BlixtWalletTests.a */, + CFC488B9CB00B9AB0D8FDE59 /* libPods-BlixtWallet-tvOS.a */, + 706E38B37BF971CD94E774DF /* libPods-BlixtWallet-tvOSTests.a */, ); name = Frameworks; sourceTree = ""; }; - 5E91572E1DD0AC6500FF2AA8 /* Products */ = { - isa = PBXGroup; - children = ( - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */, - ); - name = Products; - sourceTree = ""; - }; - 78C398B11ACF4ADC00677621 /* Products */ = { + 69F8B45E8C3DB4911D266392 /* Pods */ = { isa = PBXGroup; children = ( - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, + 5737833BCB603FAB9176767B /* Pods-BlixtWallet.debug.xcconfig */, + CAAB4E5D47A9A21CFEB062E7 /* Pods-BlixtWallet.release.xcconfig */, + 7FB0EDCFC05DD4E258EB4698 /* Pods-BlixtWallet-BlixtWalletTests.debug.xcconfig */, + 6F21675F737F23140EE8373E /* Pods-BlixtWallet-BlixtWalletTests.release.xcconfig */, + 6158EE7F43BEC16FB039A493 /* Pods-BlixtWallet-tvOS.debug.xcconfig */, + C410974135376A18E1B2404A /* Pods-BlixtWallet-tvOS.release.xcconfig */, + 066BFFB353CCBD85A528256A /* Pods-BlixtWallet-tvOSTests.debug.xcconfig */, + BCF5A8A005FCD3DCB7CEB565 /* Pods-BlixtWallet-tvOSTests.release.xcconfig */, + 51FEA3B5F5E91ADECAF81AF4 /* Pods-BlixtWallet.debugtestnet.xcconfig */, + FF05AEC3BC653B06C3B00AAB /* Pods-BlixtWallet.releasetestnet.xcconfig */, + DC5C60C16BB07650A497820A /* Pods-BlixtWallet-BlixtWalletTests.debugtestnet.xcconfig */, + 7F8DF590825EC1BAC7E0ABE5 /* Pods-BlixtWallet-BlixtWalletTests.releasetestnet.xcconfig */, + D64B150F528503028AA4B961 /* Pods-BlixtWallet-tvOS.debugtestnet.xcconfig */, + F6E17F247928E43EEE8EE19A /* Pods-BlixtWallet-tvOS.releasetestnet.xcconfig */, + 222CBE7135085C8DC16AF2BF /* Pods-BlixtWallet-tvOSTests.debugtestnet.xcconfig */, + 49871026719D77C310827B47 /* Pods-BlixtWallet-tvOSTests.releasetestnet.xcconfig */, + AE57B87104E34C850CC995D7 /* Pods-BlixtWallet.debugfakelnd.xcconfig */, + 115F60A62F2ACA07D8C93522 /* Pods-BlixtWallet.releasefakelnd.xcconfig */, + 1575F4AEEE77591610698556 /* Pods-BlixtWallet-BlixtWalletTests.debugfakelnd.xcconfig */, + 1BF9C37DDFECED4FEB42102D /* Pods-BlixtWallet-BlixtWalletTests.releasefakelnd.xcconfig */, + C132F37DCBE159303BCD7902 /* Pods-BlixtWallet-tvOS.debugfakelnd.xcconfig */, + 258F1BA819B086F0517CCF61 /* Pods-BlixtWallet-tvOS.releasefakelnd.xcconfig */, + 6569DA346704D3414FB6E0B3 /* Pods-BlixtWallet-tvOSTests.debugfakelnd.xcconfig */, + 8C232B9EDF2253DE1374D60E /* Pods-BlixtWallet-tvOSTests.releasefakelnd.xcconfig */, + 1D85700D17488384A1AE7C09 /* Pods-BlixtWallet.debugregtest.xcconfig */, + 10BC2269580B18F702C7DBFA /* Pods-BlixtWallet.releaseregtest.xcconfig */, + 542C9ECE0553F656BFC79606 /* Pods-BlixtWallet-BlixtWalletTests.debugregtest.xcconfig */, + EA2D85B8E85EE977BE93539A /* Pods-BlixtWallet-BlixtWalletTests.releaseregtest.xcconfig */, + 998ADD6FA79FB1F2808716D5 /* Pods-BlixtWallet-tvOS.debugregtest.xcconfig */, + 563779FB362F9F7CC16F1FCB /* Pods-BlixtWallet-tvOS.releaseregtest.xcconfig */, + 8499C4474A53BD58C6813CE2 /* Pods-BlixtWallet-tvOSTests.debugregtest.xcconfig */, + 6699621AC3CDCB77C5CB4B39 /* Pods-BlixtWallet-tvOSTests.releaseregtest.xcconfig */, ); - name = Products; + path = Pods; sourceTree = ""; }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, - 146833FF1AC3E56700842450 /* React.xcodeproj */, - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, - ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */, - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - 4CBA905A704442CAA4E83FDD /* RNCamera.xcodeproj */, - FFE88D4B0499492DAFB408C7 /* RNSVG.xcodeproj */, - 0F339D930FE94467800F11DB /* BVLinearGradient.xcodeproj */, - D2740324B4F64D5DB98DA6B3 /* RNGestureHandler.xcodeproj */, - FA8AAA83B00B414980BA19C3 /* SQLite.xcodeproj */, - 2F2799E32755484B8F506FF1 /* RNCAsyncStorage.xcodeproj */, - 8E46721B0CCE463C9709FA28 /* RNBlur.xcodeproj */, - 073691901B024BC98B734B9D /* SajjadBlurOverlay.xcodeproj */, ); name = Libraries; sourceTree = ""; }; - 832341B11AAA6A8300B99B32 /* Products */ = { - isa = PBXGroup; - children = ( - 832341B51AAA6A8300B99B32 /* libRCTText.a */, - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( @@ -666,7 +233,8 @@ 00E356EF1AD99517003FC87E /* BlixtWalletTests */, 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, - D89093DB4E004A04B6E3BB20 /* Resources */, + 69F8B45E8C3DB4911D266392 /* Pods */, + 83E845AA2D0E4C2C9A8C9CEB /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -676,7 +244,7 @@ 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; children = ( - 13B07F961A680F5B00A75B9A /* BlixtWallet.app */, + 13B07F961A680F5B00A75B9A /* Blixt Wallet Debug.app */, 00E356EE1AD99517003FC87E /* BlixtWalletTests.xctest */, 2D02E47B1E0B4A5D006451C7 /* BlixtWallet-tvOS.app */, 2D02E4901E0B4A5D006451C7 /* BlixtWallet-tvOSTests.xctest */, @@ -684,40 +252,14 @@ name = Products; sourceTree = ""; }; - ADBDB9201DFEBF0600ED6528 /* Products */ = { + 83E845AA2D0E4C2C9A8C9CEB /* Resources */ = { isa = PBXGroup; children = ( - ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */, - 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - D89093DB4E004A04B6E3BB20 /* Resources */ = { - isa = "PBXGroup"; - children = ( - A5E60D8E77444249BBC37932 /* AntDesign.ttf */, - D6985BBC714F403AA21758B7 /* Entypo.ttf */, - E20F78A2E29D472EB08466AF /* EvilIcons.ttf */, - 63AE28216C6944AF92BDFE36 /* Feather.ttf */, - 232E4EB922F543ED9CB805DE /* FontAwesome.ttf */, - EEF847D1F0C94996AF898BBC /* FontAwesome5_Brands.ttf */, - 9B1BA625E3DB4564BA3F9E93 /* FontAwesome5_Regular.ttf */, - B435794CFED540CF9475F07F /* FontAwesome5_Solid.ttf */, - 869C972DF8BE4225A4199E6E /* Foundation.ttf */, - DE616D07978F4298991C4DA2 /* Ionicons.ttf */, - 8DF5A4301B2A4369AC501E85 /* MaterialCommunityIcons.ttf */, - 4D08AAD3EA1748709ABD19B7 /* MaterialIcons.ttf */, - 6B5FA0FC9A15448DA445E1FD /* Octicons.ttf */, - 0AB1924C83894EDA8D0A7215 /* Roboto_medium.ttf */, - 86A2FC7C997E428380612AEE /* Roboto.ttf */, - 414647DAE69640738264157E /* rubicon-icon-font.ttf */, - 785430B83E9F4496819A1EE4 /* SimpleLineIcons.ttf */, - A10DDCB137C14DAFB2EABC1C /* Zocial.ttf */, + D57823EDB09B4CD1998E77F2 /* IBMPlexSans-Medium.ttf */, + 53E703C0F141473C8564E7EA /* IBMPlexSans-Regular.ttf */, ); name = Resources; sourceTree = ""; - path = ""; }; /* End PBXGroup section */ @@ -726,9 +268,11 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BlixtWalletTests" */; buildPhases = ( + 0CC1A99624A13FD70C96784B /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, + C9D10AF5132BEBDCCB1DA350 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -744,24 +288,29 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BlixtWallet" */; buildPhases = ( + F2ED6716E152F2B02FDAF10E /* [CP] Check Pods Manifest.lock */, + FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + B903BDF2FD994B783A85B72F /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = BlixtWallet; - productName = "Hello World"; - productReference = 13B07F961A680F5B00A75B9A /* BlixtWallet.app */; + productName = BlixtWallet; + productReference = 13B07F961A680F5B00A75B9A /* Blixt Wallet Debug.app */; productType = "com.apple.product-type.application"; }; 2D02E47A1E0B4A5D006451C7 /* BlixtWallet-tvOS */ = { isa = PBXNativeTarget; buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlixtWallet-tvOS" */; buildPhases = ( + 193937838D234E93829520C8 /* [CP] Check Pods Manifest.lock */, + FD10A7F122414F3F0027D42C /* Start Packager */, 2D02E4771E0B4A5D006451C7 /* Sources */, 2D02E4781E0B4A5D006451C7 /* Frameworks */, 2D02E4791E0B4A5D006451C7 /* Resources */, @@ -780,6 +329,7 @@ isa = PBXNativeTarget; buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlixtWallet-tvOSTests" */; buildPhases = ( + ECF376E0E08430929914CFFC /* [CP] Check Pods Manifest.lock */, 2D02E48C1E0B4A5D006451C7 /* Sources */, 2D02E48D1E0B4A5D006451C7 /* Frameworks */, 2D02E48E1E0B4A5D006451C7 /* Resources */, @@ -800,13 +350,16 @@ 83CBB9F71A601CBA00E9B192 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 940; - ORGANIZATIONNAME = Facebook; + LastUpgradeCheck = 1130; TargetAttributes = { 00E356ED1AD99517003FC87E = { CreatedOnToolsVersion = 6.2; TestTargetID = 13B07F861A680F5B00A75B9A; }; + 13B07F861A680F5B00A75B9A = { + DevelopmentTeam = AT26Z24V2Q; + LastSwiftMigration = 1120; + }; 2D02E47A1E0B4A5D006451C7 = { CreatedOnToolsVersion = 8.2.1; ProvisioningStyle = Automatic; @@ -820,7 +373,7 @@ }; buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "BlixtWallet" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -829,56 +382,6 @@ mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; - ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - }, - { - ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; - ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - }, - { - ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */; - ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - }, - { - ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; - ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - }, - { - ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; - ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - }, - { - ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; - ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - }, - { - ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; - ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - }, - { - ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; - ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - }, - { - ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; - ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - }, - { - ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; - ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - }, - { - ProductGroup = 139FDEE71B06529A00C62182 /* Products */; - ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - }, - { - ProductGroup = 146834001AC3E56700842450 /* Products */; - ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; - }, - ); projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* BlixtWallet */, @@ -889,268 +392,6 @@ }; /* End PBXProject section */ -/* Begin PBXReferenceProxy section */ - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTActionSheet.a; - remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGeolocation.a; - remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTImage.a; - remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTNetwork.a; - remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVibration.a; - remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTSettings.a; - remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWebSocket.a; - remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 146834041AC3E56700842450 /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTBlob-tvOS.a"; - remoteRef = 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libfishhook.a; - remoteRef = 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libfishhook-tvOS.a"; - remoteRef = 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFDF2056DD460020B375 /* libjsinspector.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsinspector.a; - remoteRef = 2DF0FFDE2056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFE12056DD460020B375 /* libjsinspector-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsinspector-tvOS.a"; - remoteRef = 2DF0FFE02056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFE32056DD460020B375 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = 2DF0FFE22056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFE52056DD460020B375 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = 2DF0FFE42056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFE72056DD460020B375 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = 2DF0FFE62056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFE92056DD460020B375 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = 2DF0FFE82056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFEB2056DD460020B375 /* libprivatedata.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libprivatedata.a; - remoteRef = 2DF0FFEA2056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2DF0FFED2056DD460020B375 /* libprivatedata-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libprivatedata-tvOS.a"; - remoteRef = 2DF0FFEC2056DD460020B375 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTImage-tvOS.a"; - remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTLinking-tvOS.a"; - remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTNetwork-tvOS.a"; - remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTSettings-tvOS.a"; - remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTText-tvOS.a"; - remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTWebSocket-tvOS.a"; - remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTLinking.a; - remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTText.a; - remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTBlob.a; - remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - /* Begin PBXResourcesBuildPhase section */ 00E356EC1AD99517003FC87E /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -1163,26 +404,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - 6BCFA3D862AC484FB93A0A11 /* AntDesign.ttf in Resources */, - 258617F423D040F78B149C6C /* Entypo.ttf in Resources */, - 19C047FF95D849CC834E0502 /* EvilIcons.ttf in Resources */, - D6FBAB41115C4913BB38E981 /* Feather.ttf in Resources */, - 5CA9306702E940E5957F7E6E /* FontAwesome.ttf in Resources */, - C4969CA50EC3447898A9AB5F /* FontAwesome5_Brands.ttf in Resources */, - 4236BB92F2FB43C9A57A66F3 /* FontAwesome5_Regular.ttf in Resources */, - 11D889F9F67747F7BBC9BA11 /* FontAwesome5_Solid.ttf in Resources */, - AB7DBBBCE6EE498BAAFDCA96 /* Foundation.ttf in Resources */, - 30BD2728420647F0ABDDE9C4 /* Ionicons.ttf in Resources */, - 1E99BBEE07B048B5B82DF6C1 /* MaterialCommunityIcons.ttf in Resources */, - ED2157E9C29A4B579267CE07 /* MaterialIcons.ttf in Resources */, - 3776D6A1F09C48E092B31397 /* Octicons.ttf in Resources */, - FCDA1538CAB7481A9887678E /* Roboto_medium.ttf in Resources */, - 8FC3B5362B00448A88BCFA7E /* Roboto.ttf in Resources */, - 6B0400163BAD4BD0A1F6E3E5 /* rubicon-icon-font.ttf in Resources */, - CFA73C097DD64D1C808166CF /* SimpleLineIcons.ttf in Resources */, - 24A1104E5BAF49E3BB99A1EC /* Zocial.ttf in Resources */, + C22E6DD819CB41F69AADA37A /* IBMPlexSans-Medium.ttf in Resources */, + BA12DD7C6C3D42969E297EAE /* IBMPlexSans-Regular.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1216,7 +441,51 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + }; + 0CC1A99624A13FD70C96784B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-BlixtWallet-BlixtWalletTests-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; + }; + 193937838D234E93829520C8 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-BlixtWallet-tvOS-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; }; 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { isa = PBXShellScriptBuildPhase; @@ -1232,6 +501,192 @@ shellPath = /bin/sh; shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; }; + B903BDF2FD994B783A85B72F /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet-resources.sh", + "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + C9D10AF5132BEBDCCB1DA350 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests-resources.sh", + "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BlixtWallet-BlixtWalletTests/Pods-BlixtWallet-BlixtWalletTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + ECF376E0E08430929914CFFC /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-BlixtWallet-tvOSTests-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; + }; + F2ED6716E152F2B02FDAF10E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-BlixtWallet-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; + }; + FD10A7F022414F080027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; + FD10A7F122414F3F0027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1284,21 +739,10 @@ }; /* End PBXTargetDependency section */ -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = BlixtWallet; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7FB0EDCFC05DD4E258EB4698 /* Pods-BlixtWallet-BlixtWalletTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -1306,90 +750,52 @@ "$(inherited)", ); INFOPLIST_FILE = BlixtWalletTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; OTHER_LDFLAGS = ( "-ObjC", "-lc++", + "$(inherited)", ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Debug; }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6F21675F737F23140EE8373E /* Pods-BlixtWallet-BlixtWalletTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; INFOPLIST_FILE = BlixtWalletTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; OTHER_LDFLAGS = ( "-ObjC", "-lc++", + "$(inherited)", ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Release; }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5737833BCB603FAB9176767B /* Pods-BlixtWallet.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = mainnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = NO; + DEBUG = true; + DEVELOPMENT_TEAM = AT26Z24V2Q; + ENABLE_BITCODE = NO; + FLAVOR = ""; INFOPLIST_FILE = BlixtWallet/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( @@ -1397,28 +803,26 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = BlixtWallet; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Debug2"; + PRODUCT_NAME = "Blixt Wallet Debug"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Debug; }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CAAB4E5D47A9A21CFEB062E7 /* Pods-BlixtWallet.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = mainnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; CURRENT_PROJECT_VERSION = 1; + DEBUG = false; + DEVELOPMENT_TEAM = AT26Z24V2Q; + FLAVOR = ""; INFOPLIST_FILE = BlixtWallet/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( @@ -1426,25 +830,16 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = BlixtWallet; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet"; + PRODUCT_NAME = "Blixt Wallet"; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Release; }; 2D02E4971E0B4A5E006451C7 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6158EE7F43BEC16FB039A493 /* Pods-BlixtWallet-tvOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -1458,43 +853,21 @@ INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlixtWallet-tvOS"; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); + TVOS_DEPLOYMENT_TARGET = 10.0; }; name = Debug; }; 2D02E4981E0B4A5E006451C7 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = C410974135376A18E1B2404A /* Pods-BlixtWallet-tvOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -1508,43 +881,21 @@ INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlixtWallet-tvOS"; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); + TVOS_DEPLOYMENT_TARGET = 10.0; }; name = Release; }; 2D02E4991E0B4A5E006451C7 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 066BFFB353CCBD85A528256A /* Pods-BlixtWallet-tvOSTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1557,43 +908,21 @@ INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlixtWallet-tvOSTests"; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; TVOS_DEPLOYMENT_TARGET = 10.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Debug; }; 2D02E49A1E0B4A5E006451C7 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = BCF5A8A005FCD3DCB7CEB565 /* Pods-BlixtWallet-tvOSTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -1606,38 +935,15 @@ INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlixtWallet-tvOSTests"; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; TVOS_DEPLOYMENT_TARGET = 10.1; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - "\"$(SRCROOT)/$(TARGET_NAME)\"", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-sqlite-storage/src/ios", - "$(SRCROOT)/../node_modules/@react-native-community/async-storage/ios", - "$(SRCROOT)/../node_modules/@react-native-community/blur/ios", - "$(SRCROOT)/../node_modules/react-native-blur-overlay/ios", - ); }; name = Release; }; @@ -1645,6 +951,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1687,7 +994,13 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1698,6 +1011,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1733,13 +1047,979 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; name = Release; }; + CC3C4F482578374900A85542 /* DebugTestnet */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = DebugTestnet; + }; + CC3C4F492578374900A85542 /* DebugTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 51FEA3B5F5E91ADECAF81AF4 /* Pods-BlixtWallet.debugtestnet.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = regtest; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = true; + DEVELOPMENT_TEAM = AT26Z24V2Q; + ENABLE_BITCODE = NO; + FLAVOR = ""; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "Blixt Wallet Testnet Debug"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = DebugTestnet; + }; + CC3C4F4A2578374900A85542 /* DebugTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC5C60C16BB07650A497820A /* Pods-BlixtWallet-BlixtWalletTests.debugtestnet.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = DebugTestnet; + }; + CC3C4F4B2578374900A85542 /* DebugTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D64B150F528503028AA4B961 /* Pods-BlixtWallet-tvOS.debugtestnet.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = DebugTestnet; + }; + CC3C4F4C2578374900A85542 /* DebugTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 222CBE7135085C8DC16AF2BF /* Pods-BlixtWallet-tvOSTests.debugtestnet.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = DebugTestnet; + }; + CC3C4F4D2578375200A85542 /* ReleaseTestnet */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseTestnet; + }; + CC3C4F4E2578375200A85542 /* ReleaseTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FF05AEC3BC653B06C3B00AAB /* Pods-BlixtWallet.releasetestnet.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = testnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = false; + DEVELOPMENT_TEAM = AT26Z24V2Q; + FLAVOR = ""; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Regtest"; + PRODUCT_NAME = "Blixt Wallet Testnet"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = ReleaseTestnet; + }; + CC3C4F4F2578375200A85542 /* ReleaseTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7F8DF590825EC1BAC7E0ABE5 /* Pods-BlixtWallet-BlixtWalletTests.releasetestnet.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = ReleaseTestnet; + }; + CC3C4F502578375200A85542 /* ReleaseTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F6E17F247928E43EEE8EE19A /* Pods-BlixtWallet-tvOS.releasetestnet.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = ReleaseTestnet; + }; + CC3C4F512578375200A85542 /* ReleaseTestnet */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 49871026719D77C310827B47 /* Pods-BlixtWallet-tvOSTests.releasetestnet.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = ReleaseTestnet; + }; + CC422F7A2578FB3100ED683A /* DebugRegtest */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = DebugRegtest; + }; + CC422F7B2578FB3100ED683A /* DebugRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D85700D17488384A1AE7C09 /* Pods-BlixtWallet.debugregtest.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = mainnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = true; + DEVELOPMENT_TEAM = AT26Z24V2Q; + ENABLE_BITCODE = NO; + FLAVOR = fakelnd; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Regtest-Debug"; + PRODUCT_NAME = "Blixt Wallet Regtest Debug"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = DebugRegtest; + }; + CC422F7C2578FB3100ED683A /* DebugRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 542C9ECE0553F656BFC79606 /* Pods-BlixtWallet-BlixtWalletTests.debugregtest.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = DebugRegtest; + }; + CC422F7D2578FB3100ED683A /* DebugRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 998ADD6FA79FB1F2808716D5 /* Pods-BlixtWallet-tvOS.debugregtest.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = DebugRegtest; + }; + CC422F7E2578FB3100ED683A /* DebugRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8499C4474A53BD58C6813CE2 /* Pods-BlixtWallet-tvOSTests.debugregtest.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = DebugRegtest; + }; + CC422F7F2578FB3900ED683A /* ReleaseRegtest */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseRegtest; + }; + CC422F802578FB3900ED683A /* ReleaseRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 10BC2269580B18F702C7DBFA /* Pods-BlixtWallet.releaseregtest.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = regtest; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = false; + DEVELOPMENT_TEAM = AT26Z24V2Q; + FLAVOR = fakelnd; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Fakelnd"; + PRODUCT_NAME = "Blixt Wallet Regtest"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = ReleaseRegtest; + }; + CC422F812578FB3900ED683A /* ReleaseRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EA2D85B8E85EE977BE93539A /* Pods-BlixtWallet-BlixtWalletTests.releaseregtest.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = ReleaseRegtest; + }; + CC422F822578FB3900ED683A /* ReleaseRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 563779FB362F9F7CC16F1FCB /* Pods-BlixtWallet-tvOS.releaseregtest.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = ReleaseRegtest; + }; + CC422F832578FB3900ED683A /* ReleaseRegtest */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6699621AC3CDCB77C5CB4B39 /* Pods-BlixtWallet-tvOSTests.releaseregtest.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = ReleaseRegtest; + }; + CCFBC1562578658C0044EFBF /* DebugFakelnd */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = DebugFakelnd; + }; + CCFBC1572578658C0044EFBF /* DebugFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE57B87104E34C850CC995D7 /* Pods-BlixtWallet.debugfakelnd.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = mainnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = true; + DEVELOPMENT_TEAM = AT26Z24V2Q; + ENABLE_BITCODE = NO; + FLAVOR = fakelnd; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Fakelnd-Debug"; + PRODUCT_NAME = "Blixt Wallet Fakelnd Debug"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = DebugFakelnd; + }; + CCFBC1582578658C0044EFBF /* DebugFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1575F4AEEE77591610698556 /* Pods-BlixtWallet-BlixtWalletTests.debugfakelnd.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = DebugFakelnd; + }; + CCFBC1592578658C0044EFBF /* DebugFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C132F37DCBE159303BCD7902 /* Pods-BlixtWallet-tvOS.debugfakelnd.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = DebugFakelnd; + }; + CCFBC15A2578658C0044EFBF /* DebugFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6569DA346704D3414FB6E0B3 /* Pods-BlixtWallet-tvOSTests.debugfakelnd.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = DebugFakelnd; + }; + CCFBC15B257865960044EFBF /* ReleaseFakelnd */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseFakelnd; + }; + CCFBC15C257865960044EFBF /* ReleaseFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 115F60A62F2ACA07D8C93522 /* Pods-BlixtWallet.releasefakelnd.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CHAIN = mainnet; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = BlixtWallet/BlixtWallet.entitlements; + CURRENT_PROJECT_VERSION = 1; + DEBUG = false; + DEVELOPMENT_TEAM = AT26Z24V2Q; + FLAVOR = fakelnd; + INFOPLIST_FILE = BlixtWallet/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.Blixt-Wallet-Fakelnd"; + PRODUCT_NAME = "Blixt Wallet Fakelnd"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = ReleaseFakelnd; + }; + CCFBC15D257865960044EFBF /* ReleaseFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1BF9C37DDFECED4FEB42102D /* Pods-BlixtWallet-BlixtWalletTests.releasefakelnd.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = BlixtWalletTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet.app/BlixtWallet"; + }; + name = ReleaseFakelnd; + }; + CCFBC15E257865960044EFBF /* ReleaseFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 258F1BA819B086F0517CCF61 /* Pods-BlixtWallet-tvOS.releasefakelnd.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = ReleaseFakelnd; + }; + CCFBC15F257865960044EFBF /* ReleaseFakelnd */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8C232B9EDF2253DE1374D60E /* Pods-BlixtWallet-tvOSTests.releasefakelnd.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "BlixtWallet-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.BlixtWallet-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlixtWallet-tvOS.app/BlixtWallet-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = ReleaseFakelnd; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1747,7 +2027,13 @@ isa = XCConfigurationList; buildConfigurations = ( 00E356F61AD99517003FC87E /* Debug */, + CC3C4F4A2578374900A85542 /* DebugTestnet */, + CCFBC1582578658C0044EFBF /* DebugFakelnd */, + CC422F7C2578FB3100ED683A /* DebugRegtest */, 00E356F71AD99517003FC87E /* Release */, + CC3C4F4F2578375200A85542 /* ReleaseTestnet */, + CCFBC15D257865960044EFBF /* ReleaseFakelnd */, + CC422F812578FB3900ED683A /* ReleaseRegtest */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1756,7 +2042,13 @@ isa = XCConfigurationList; buildConfigurations = ( 13B07F941A680F5B00A75B9A /* Debug */, + CC3C4F492578374900A85542 /* DebugTestnet */, + CCFBC1572578658C0044EFBF /* DebugFakelnd */, + CC422F7B2578FB3100ED683A /* DebugRegtest */, 13B07F951A680F5B00A75B9A /* Release */, + CC3C4F4E2578375200A85542 /* ReleaseTestnet */, + CCFBC15C257865960044EFBF /* ReleaseFakelnd */, + CC422F802578FB3900ED683A /* ReleaseRegtest */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1765,7 +2057,13 @@ isa = XCConfigurationList; buildConfigurations = ( 2D02E4971E0B4A5E006451C7 /* Debug */, + CC3C4F4B2578374900A85542 /* DebugTestnet */, + CCFBC1592578658C0044EFBF /* DebugFakelnd */, + CC422F7D2578FB3100ED683A /* DebugRegtest */, 2D02E4981E0B4A5E006451C7 /* Release */, + CC3C4F502578375200A85542 /* ReleaseTestnet */, + CCFBC15E257865960044EFBF /* ReleaseFakelnd */, + CC422F822578FB3900ED683A /* ReleaseRegtest */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1774,7 +2072,13 @@ isa = XCConfigurationList; buildConfigurations = ( 2D02E4991E0B4A5E006451C7 /* Debug */, + CC3C4F4C2578374900A85542 /* DebugTestnet */, + CCFBC15A2578658C0044EFBF /* DebugFakelnd */, + CC422F7E2578FB3100ED683A /* DebugRegtest */, 2D02E49A1E0B4A5E006451C7 /* Release */, + CC3C4F512578375200A85542 /* ReleaseTestnet */, + CCFBC15F257865960044EFBF /* ReleaseFakelnd */, + CC422F832578FB3900ED683A /* ReleaseRegtest */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1783,7 +2087,13 @@ isa = XCConfigurationList; buildConfigurations = ( 83CBBA201A601CBA00E9B192 /* Debug */, + CC3C4F482578374900A85542 /* DebugTestnet */, + CCFBC1562578658C0044EFBF /* DebugFakelnd */, + CC422F7A2578FB3100ED683A /* DebugRegtest */, 83CBBA211A601CBA00E9B192 /* Release */, + CC3C4F4D2578375200A85542 /* ReleaseTestnet */, + CCFBC15B257865960044EFBF /* ReleaseFakelnd */, + CC422F7F2578FB3900ED683A /* ReleaseRegtest */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWallet-tvOS.xcscheme b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWallet-tvOS.xcscheme index 67debf3d7..72fb71672 100644 --- a/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWallet-tvOS.xcscheme +++ b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWallet-tvOS.xcscheme @@ -1,25 +1,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletFakelnd.xcscheme b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletFakelnd.xcscheme new file mode 100644 index 000000000..42c18d2a5 --- /dev/null +++ b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletFakelnd.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletRegtest.xcscheme b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletRegtest.xcscheme new file mode 100644 index 000000000..7e99a05f4 --- /dev/null +++ b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletRegtest.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletTestnet.xcscheme b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletTestnet.xcscheme new file mode 100644 index 000000000..6f4baaa72 --- /dev/null +++ b/ios/BlixtWallet.xcodeproj/xcshareddata/xcschemes/BlixtWalletTestnet.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/BlixtWallet.xcworkspace/contents.xcworkspacedata b/ios/BlixtWallet.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..9cb4e0f37 --- /dev/null +++ b/ios/BlixtWallet.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/BlixtWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/BlixtWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/ios/BlixtWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/BlixtWallet/AppDelegate.h b/ios/BlixtWallet/AppDelegate.h index 2726d5e13..ad5007b5a 100644 --- a/ios/BlixtWallet/AppDelegate.h +++ b/ios/BlixtWallet/AppDelegate.h @@ -1,14 +1,8 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - #import #import +#import -@interface AppDelegate : UIResponder +@interface AppDelegate : UIResponder @property (nonatomic, strong) UIWindow *window; diff --git a/ios/BlixtWallet/AppDelegate.m b/ios/BlixtWallet/AppDelegate.m index 5c435b45e..807a2596e 100644 --- a/ios/BlixtWallet/AppDelegate.m +++ b/ios/BlixtWallet/AppDelegate.m @@ -1,32 +1,58 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - #import "AppDelegate.h" #import #import #import +#ifdef FB_SONARKIT_ENABLED +#import +#import +#import +#import +#import +#import + +static void InitializeFlipper(UIApplication *application) { + FlipperClient *client = [FlipperClient sharedClient]; + SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; + [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; + [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; + [client addPlugin:[FlipperKitReactPlugin new]]; + [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; + [client start]; +} +#endif + +// @react-native-community/push-notification-ios +#import +#import + @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { +#ifdef FB_SONARKIT_ENABLED + InitializeFlipper(application); +#endif + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"BlixtWallet" initialProperties:nil]; - - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; + + // 0.08 0.09 0.08 matches #151314 (dark from color profile) + rootView.backgroundColor = [[UIColor alloc] initWithRed:0.08f green:0.07f blue:0.08f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [UIViewController new]; rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; + + // @react-native-community/push-notification-ios + // Define UNUserNotificationCenter + UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; + center.delegate = self; return YES; } @@ -39,4 +65,36 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge #endif } +// @react-native-community/push-notification-ios +// Required for the register event. +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken +{ + [RNCPushNotificationIOS didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; +} +// Required for the notification event. You must call the completion handler after handling the remote notification. +- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo +fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler +{ + [RNCPushNotificationIOS didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; +} +// Required for the registrationError event. +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error +{ + [RNCPushNotificationIOS didFailToRegisterForRemoteNotificationsWithError:error]; +} +// Required for localNotification event +- (void)userNotificationCenter:(UNUserNotificationCenter *)center +didReceiveNotificationResponse:(UNNotificationResponse *)response + withCompletionHandler:(void (^)(void))completionHandler +{ + [RNCPushNotificationIOS didReceiveNotificationResponse:response]; +} + + +//Called when a notification is delivered to a foreground app. +-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler +{ + completionHandler(UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge); +} + @end diff --git a/ios/BlixtWallet/Base.lproj/LaunchScreen.xib b/ios/BlixtWallet/Base.lproj/LaunchScreen.xib deleted file mode 100644 index d5a0afabe..000000000 --- a/ios/BlixtWallet/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/BlixtWallet/BlixtWallet.entitlements b/ios/BlixtWallet/BlixtWallet.entitlements new file mode 100644 index 000000000..903def2af --- /dev/null +++ b/ios/BlixtWallet/BlixtWallet.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/Contents.json index 81213230d..8df2a7a12 100644 --- a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,46 +1,55 @@ { "images" : [ { + "filename" : "blixt-wallet-60-20@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "20x20" }, { + "filename" : "blixt-wallet-60-20@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "20x20" }, { + "filename" : "blixt-wallet-60-29@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "29x29" }, { + "filename" : "blixt-wallet-60-29@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "29x29" }, { + "filename" : "blixt-wallet-60-40@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "40x40" }, { + "filename" : "blixt-wallet-60-40@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "40x40" }, { + "filename" : "blixt-wallet-60-60@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "60x60" }, { + "filename" : "blixt-wallet-60-60@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "60x60" }, { + "filename" : "blixt-wallet-60-1024.png", "idiom" : "ios-marketing", "scale" : "1x", "size" : "1024x1024" diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-1024.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-1024.png new file mode 100644 index 000000000..604c2512d Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-1024.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@2x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@2x.png new file mode 100644 index 000000000..db6e6ef5e Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@2x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@3x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@3x.png new file mode 100644 index 000000000..92eace293 Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-20@3x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@2x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@2x.png new file mode 100644 index 000000000..fbd57296d Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@2x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@3x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@3x.png new file mode 100644 index 000000000..2da19d5e5 Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-29@3x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@2x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@2x.png new file mode 100644 index 000000000..986d4d51b Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@2x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@3x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@3x.png new file mode 100644 index 000000000..566209407 Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-40@3x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@2x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@2x.png new file mode 100644 index 000000000..566209407 Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@2x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@3x.png b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@3x.png new file mode 100644 index 000000000..f9891b42d Binary files /dev/null and b/ios/BlixtWallet/Images.xcassets/AppIcon.appiconset/blixt-wallet-60-60@3x.png differ diff --git a/ios/BlixtWallet/Images.xcassets/Contents.json b/ios/BlixtWallet/Images.xcassets/Contents.json index 2d92bd53f..73c00596a 100644 --- a/ios/BlixtWallet/Images.xcassets/Contents.json +++ b/ios/BlixtWallet/Images.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/ios/BlixtWallet/Info.plist b/ios/BlixtWallet/Info.plist index 0041b685b..b897fc2db 100644 --- a/ios/BlixtWallet/Info.plist +++ b/ios/BlixtWallet/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - Blixt Wallet + $(PRODUCT_NAME) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -22,24 +22,18 @@ ???? CFBundleVersion 1 - LSRequiresIPhoneOS - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities + CHAIN + $(CHAIN) + CONFIGURATION + $(CONFIGURATION) + FLAVOR + $(FLAVOR) + LSApplicationQueriesSchemes - armv7 + lightning - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - + LSRequiresIPhoneOS + NSAppTransportSecurity NSAllowsArbitraryLoads @@ -53,8 +47,20 @@ + NSCameraUsageDescription + Scan QR codes for invoices + DEBUG + $(DEBUG) + NSLocationWhenInUseUsageDescription + Locally save location of where a transaction was made + NSLocationUsageDescription + Locally save location of where a transaction was made + SCHEME + $(SCHEME) UIAppFonts + IBMPlexSans-Medium.ttf + IBMPlexSans-Regular.ttf AntDesign.ttf Entypo.ttf EvilIcons.ttf @@ -63,16 +69,28 @@ FontAwesome5_Brands.ttf FontAwesome5_Regular.ttf FontAwesome5_Solid.ttf + Fontisto.ttf Foundation.ttf Ionicons.ttf MaterialCommunityIcons.ttf MaterialIcons.ttf Octicons.ttf - Roboto_medium.ttf - Roboto.ttf - rubicon-icon-font.ttf SimpleLineIcons.ttf Zocial.ttf + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + diff --git a/ios/BlixtWallet/LaunchScreen.storyboard b/ios/BlixtWallet/LaunchScreen.storyboard new file mode 100644 index 000000000..55037bd9b --- /dev/null +++ b/ios/BlixtWallet/LaunchScreen.storyboard @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/BlixtWallet/main.m b/ios/BlixtWallet/main.m index c316cf816..b1df44b95 100644 --- a/ios/BlixtWallet/main.m +++ b/ios/BlixtWallet/main.m @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - #import #import "AppDelegate.h" diff --git a/ios/BlixtWalletTests/BlixtWalletTests.m b/ios/BlixtWalletTests/BlixtWalletTests.m index fa5a036fb..52baca360 100644 --- a/ios/BlixtWalletTests/BlixtWalletTests.m +++ b/ios/BlixtWalletTests/BlixtWalletTests.m @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - #import #import @@ -12,7 +5,7 @@ #import #define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" +#define TEXT_TO_LOOK_FOR @"Welcome to React" @interface BlixtWalletTests : XCTestCase @@ -40,11 +33,13 @@ - (void)testRendersWelcomeScreen BOOL foundElement = NO; __block NSString *redboxError = nil; +#ifdef DEBUG RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { if (level >= RCTLogLevelError) { redboxError = message; } }); +#endif while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; @@ -58,7 +53,9 @@ - (void)testRendersWelcomeScreen }]; } +#ifdef DEBUG RCTSetLogFunction(RCTDefaultLogFunction); +#endif XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 000000000..ca7ee067a --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,47 @@ +require_relative '../node_modules/react-native/scripts/react_native_pods' +require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' + +platform :ios, '10.0' + +project 'BlixtWallet', + 'DebugTestnet' => :debug, + 'ReleaseTestnet' => :release, + 'DebugFakelnd' => :debug, + 'ReleaseFakelnd' => :release, + 'DebugRegtest' => :debug, + 'ReleaseRegtest' => :release, + 'Debug' => :debug, + 'Release' => :release + +target 'BlixtWallet' do + config = use_native_modules! + + use_react_native!(:path => config["reactNativePath"]) + + # react-native-permissions + permissions_path = '../node_modules/react-native-permissions/ios' + pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse" + + target 'BlixtWalletTests' do + inherit! :complete + # Pods for testing + end + + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable these next few lines. + use_flipper! + post_install do |installer| + flipper_post_install(installer) + end +end + +target 'BlixtWallet-tvOS' do + # Pods for BlixtWallet-tvOS + + target 'BlixtWallet-tvOSTests' do + inherit! :search_paths + # Pods for testing + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 000000000..0c188c5bc --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,666 @@ +PODS: + - AppAuth (1.4.0): + - AppAuth/Core (= 1.4.0) + - AppAuth/ExternalUserAgent (= 1.4.0) + - AppAuth/Core (1.4.0) + - AppAuth/ExternalUserAgent (1.4.0) + - boost-for-react-native (1.63.0) + - BVLinearGradient (2.5.6): + - React + - CocoaAsyncSocket (7.6.4) + - CocoaLibEvent (1.0.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.63.3) + - FBReactNativeSpec (0.63.3): + - Folly (= 2020.01.13.00) + - RCTRequired (= 0.63.3) + - RCTTypeSafety (= 0.63.3) + - React-Core (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - Flipper (0.54.0): + - Flipper-Folly (~> 2.2) + - Flipper-RSocket (~> 1.1) + - Flipper-DoubleConversion (1.1.7) + - Flipper-Folly (2.3.0): + - boost-for-react-native + - CocoaLibEvent (~> 1.0) + - Flipper-DoubleConversion + - Flipper-Glog + - OpenSSL-Universal (= 1.0.2.20) + - Flipper-Glog (0.3.6) + - Flipper-PeerTalk (0.0.4) + - Flipper-RSocket (1.1.0): + - Flipper-Folly (~> 2.2) + - FlipperKit (0.54.0): + - FlipperKit/Core (= 0.54.0) + - FlipperKit/Core (0.54.0): + - Flipper (~> 0.54.0) + - FlipperKit/CppBridge + - FlipperKit/FBCxxFollyDynamicConvert + - FlipperKit/FBDefines + - FlipperKit/FKPortForwarding + - FlipperKit/CppBridge (0.54.0): + - Flipper (~> 0.54.0) + - FlipperKit/FBCxxFollyDynamicConvert (0.54.0): + - Flipper-Folly (~> 2.2) + - FlipperKit/FBDefines (0.54.0) + - FlipperKit/FKPortForwarding (0.54.0): + - CocoaAsyncSocket (~> 7.6) + - Flipper-PeerTalk (~> 0.0.4) + - FlipperKit/FlipperKitHighlightOverlay (0.54.0) + - FlipperKit/FlipperKitLayoutPlugin (0.54.0): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutTextSearchable + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutTextSearchable (0.54.0) + - FlipperKit/FlipperKitNetworkPlugin (0.54.0): + - FlipperKit/Core + - FlipperKit/FlipperKitReactPlugin (0.54.0): + - FlipperKit/Core + - FlipperKit/FlipperKitUserDefaultsPlugin (0.54.0): + - FlipperKit/Core + - FlipperKit/SKIOSNetworkPlugin (0.54.0): + - FlipperKit/Core + - FlipperKit/FlipperKitNetworkPlugin + - Folly (2020.01.13.00): + - boost-for-react-native + - DoubleConversion + - Folly/Default (= 2020.01.13.00) + - glog + - Folly/Default (2020.01.13.00): + - boost-for-react-native + - DoubleConversion + - glog + - glog (0.3.5) + - GoogleSignIn (5.0.2): + - AppAuth (~> 1.2) + - GTMAppAuth (~> 1.0) + - GTMSessionFetcher/Core (~> 1.1) + - GTMAppAuth (1.1.0): + - AppAuth/Core (~> 1.4) + - GTMSessionFetcher (~> 1.4) + - GTMSessionFetcher (1.5.0): + - GTMSessionFetcher/Full (= 1.5.0) + - GTMSessionFetcher/Core (1.5.0) + - GTMSessionFetcher/Full (1.5.0): + - GTMSessionFetcher/Core (= 1.5.0) + - OpenSSL-Universal (1.0.2.20): + - OpenSSL-Universal/Static (= 1.0.2.20) + - OpenSSL-Universal/Static (1.0.2.20) + - Permission-LocationWhenInUse (3.0.0): + - RNPermissions + - RCTRequired (0.63.3) + - RCTTypeSafety (0.63.3): + - FBLazyVector (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTRequired (= 0.63.3) + - React-Core (= 0.63.3) + - React (0.63.3): + - React-Core (= 0.63.3) + - React-Core/DevSupport (= 0.63.3) + - React-Core/RCTWebSocket (= 0.63.3) + - React-RCTActionSheet (= 0.63.3) + - React-RCTAnimation (= 0.63.3) + - React-RCTBlob (= 0.63.3) + - React-RCTImage (= 0.63.3) + - React-RCTLinking (= 0.63.3) + - React-RCTNetwork (= 0.63.3) + - React-RCTSettings (= 0.63.3) + - React-RCTText (= 0.63.3) + - React-RCTVibration (= 0.63.3) + - React-callinvoker (0.63.3) + - React-Core (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default (= 0.63.3) + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/CoreModulesHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/Default (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/DevSupport (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default (= 0.63.3) + - React-Core/RCTWebSocket (= 0.63.3) + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - React-jsinspector (= 0.63.3) + - Yoga + - React-Core/RCTActionSheetHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTAnimationHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTBlobHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTImageHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTLinkingHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTNetworkHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTSettingsHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTTextHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTVibrationHeaders (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-Core/RCTWebSocket (0.63.3): + - Folly (= 2020.01.13.00) + - glog + - React-Core/Default (= 0.63.3) + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsiexecutor (= 0.63.3) + - Yoga + - React-CoreModules (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.63.3) + - React-Core/CoreModulesHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - React-RCTImage (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-cxxreact (0.63.3): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2020.01.13.00) + - glog + - React-callinvoker (= 0.63.3) + - React-jsinspector (= 0.63.3) + - React-jsi (0.63.3): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2020.01.13.00) + - glog + - React-jsi/Default (= 0.63.3) + - React-jsi/Default (0.63.3): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2020.01.13.00) + - glog + - React-jsiexecutor (0.63.3): + - DoubleConversion + - Folly (= 2020.01.13.00) + - glog + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - React-jsinspector (0.63.3) + - react-native-build-config (0.3.2): + - React + - react-native-camera (3.40.0): + - React-Core + - react-native-camera/RCT (= 3.40.0) + - react-native-camera/RN (= 3.40.0) + - react-native-camera/RCT (3.40.0): + - React-Core + - react-native-camera/RN (3.40.0): + - React-Core + - react-native-document-picker (4.1.0): + - React-Core + - react-native-fingerprint-scanner (6.0.0): + - React + - react-native-geolocation (2.0.2): + - React + - react-native-maps (0.27.1): + - React + - react-native-safe-area-context (3.1.9): + - React-Core + - react-native-slider (3.0.3): + - React + - react-native-sqlite-storage (5.0.0): + - React + - react-native-webview (10.10.2): + - React-Core + - React-RCTActionSheet (0.63.3): + - React-Core/RCTActionSheetHeaders (= 0.63.3) + - React-RCTAnimation (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.63.3) + - React-Core/RCTAnimationHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTBlob (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - React-Core/RCTBlobHeaders (= 0.63.3) + - React-Core/RCTWebSocket (= 0.63.3) + - React-jsi (= 0.63.3) + - React-RCTNetwork (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTImage (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.63.3) + - React-Core/RCTImageHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - React-RCTNetwork (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTLinking (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - React-Core/RCTLinkingHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTNetwork (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.63.3) + - React-Core/RCTNetworkHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTSettings (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.63.3) + - React-Core/RCTSettingsHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - React-RCTText (0.63.3): + - React-Core/RCTTextHeaders (= 0.63.3) + - React-RCTVibration (0.63.3): + - FBReactNativeSpec (= 0.63.3) + - Folly (= 2020.01.13.00) + - React-Core/RCTVibrationHeaders (= 0.63.3) + - React-jsi (= 0.63.3) + - ReactCommon/turbomodule/core (= 0.63.3) + - ReactCommon/turbomodule/core (0.63.3): + - DoubleConversion + - Folly (= 2020.01.13.00) + - glog + - React-callinvoker (= 0.63.3) + - React-Core (= 0.63.3) + - React-cxxreact (= 0.63.3) + - React-jsi (= 0.63.3) + - RNCAsyncStorage (1.12.1): + - React-Core + - RNCClipboard (1.5.1): + - React-Core + - RNCMaskedView (0.1.10): + - React + - RNCPushNotificationIOS (1.8.0): + - React-Core + - RNFS (2.16.6): + - React + - RNGestureHandler (1.9.0): + - React-Core + - RNGoogleSignin (5.0.0): + - GoogleSignIn (~> 5.0.0) + - React-Core + - RNKeychain (4.0.5): + - React + - RNPermissions (3.0.0): + - React-Core + - RNReactNativeHapticFeedback (1.11.0): + - React-Core + - RNReanimated (1.13.2): + - React-Core + - RNScreens (2.15.0): + - React-Core + - RNSecureRandom (1.0.0): + - React + - RNSound (0.11.0): + - React + - RNSound/Core (= 0.11.0) + - RNSound/Core (0.11.0): + - React + - RNSVG (12.1.0): + - React + - RNVectorIcons (7.1.0): + - React + - Yoga (1.14.0) + - YogaKit (1.18.1): + - Yoga (~> 1.14) + +DEPENDENCIES: + - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) + - Flipper (~> 0.54.0) + - Flipper-DoubleConversion (= 1.1.7) + - Flipper-Folly (~> 2.2) + - Flipper-Glog (= 0.3.6) + - Flipper-PeerTalk (~> 0.0.4) + - Flipper-RSocket (~> 1.1) + - FlipperKit (~> 0.54.0) + - FlipperKit/Core (~> 0.54.0) + - FlipperKit/CppBridge (~> 0.54.0) + - FlipperKit/FBCxxFollyDynamicConvert (~> 0.54.0) + - FlipperKit/FBDefines (~> 0.54.0) + - FlipperKit/FKPortForwarding (~> 0.54.0) + - FlipperKit/FlipperKitHighlightOverlay (~> 0.54.0) + - FlipperKit/FlipperKitLayoutPlugin (~> 0.54.0) + - FlipperKit/FlipperKitLayoutTextSearchable (~> 0.54.0) + - FlipperKit/FlipperKitNetworkPlugin (~> 0.54.0) + - FlipperKit/FlipperKitReactPlugin (~> 0.54.0) + - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.54.0) + - FlipperKit/SKIOSNetworkPlugin (~> 0.54.0) + - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - Permission-LocationWhenInUse (from `../node_modules/react-native-permissions/ios/LocationWhenInUse`) + - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/DevSupport (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) + - react-native-build-config (from `../node_modules/react-native-build-config`) + - react-native-camera (from `../node_modules/react-native-camera`) + - react-native-document-picker (from `../node_modules/react-native-document-picker`) + - react-native-fingerprint-scanner (from `../node_modules/react-native-fingerprint-scanner`) + - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" + - react-native-maps (from `../node_modules/react-native-maps`) + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - "react-native-slider (from `../node_modules/@react-native-community/slider`)" + - react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`) + - react-native-webview (from `../node_modules/react-native-webview`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" + - "RNCClipboard (from `../node_modules/@react-native-community/clipboard`)" + - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" + - "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)" + - RNFS (from `../node_modules/react-native-fs`) + - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) + - "RNGoogleSignin (from `../node_modules/@react-native-community/google-signin`)" + - RNKeychain (from `../node_modules/react-native-keychain`) + - RNPermissions (from `../node_modules/react-native-permissions`) + - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) + - RNReanimated (from `../node_modules/react-native-reanimated`) + - RNScreens (from `../node_modules/react-native-screens`) + - RNSecureRandom (from `../node_modules/react-native-securerandom`) + - RNSound (from `../node_modules/react-native-sound`) + - RNSVG (from `../node_modules/react-native-svg`) + - RNVectorIcons (from `../node_modules/react-native-vector-icons`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - AppAuth + - boost-for-react-native + - CocoaAsyncSocket + - CocoaLibEvent + - Flipper + - Flipper-DoubleConversion + - Flipper-Folly + - Flipper-Glog + - Flipper-PeerTalk + - Flipper-RSocket + - FlipperKit + - GoogleSignIn + - GTMAppAuth + - GTMSessionFetcher + - OpenSSL-Universal + - YogaKit + +EXTERNAL SOURCES: + BVLinearGradient: + :path: "../node_modules/react-native-linear-gradient" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + FBReactNativeSpec: + :path: "../node_modules/react-native/Libraries/FBReactNativeSpec" + Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + Permission-LocationWhenInUse: + :path: "../node_modules/react-native-permissions/ios/LocationWhenInUse" + RCTRequired: + :path: "../node_modules/react-native/Libraries/RCTRequired" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector" + react-native-build-config: + :path: "../node_modules/react-native-build-config" + react-native-camera: + :path: "../node_modules/react-native-camera" + react-native-document-picker: + :path: "../node_modules/react-native-document-picker" + react-native-fingerprint-scanner: + :path: "../node_modules/react-native-fingerprint-scanner" + react-native-geolocation: + :path: "../node_modules/@react-native-community/geolocation" + react-native-maps: + :path: "../node_modules/react-native-maps" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + react-native-slider: + :path: "../node_modules/@react-native-community/slider" + react-native-sqlite-storage: + :path: "../node_modules/react-native-sqlite-storage" + react-native-webview: + :path: "../node_modules/react-native-webview" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNCAsyncStorage: + :path: "../node_modules/@react-native-community/async-storage" + RNCClipboard: + :path: "../node_modules/@react-native-community/clipboard" + RNCMaskedView: + :path: "../node_modules/@react-native-community/masked-view" + RNCPushNotificationIOS: + :path: "../node_modules/@react-native-community/push-notification-ios" + RNFS: + :path: "../node_modules/react-native-fs" + RNGestureHandler: + :path: "../node_modules/react-native-gesture-handler" + RNGoogleSignin: + :path: "../node_modules/@react-native-community/google-signin" + RNKeychain: + :path: "../node_modules/react-native-keychain" + RNPermissions: + :path: "../node_modules/react-native-permissions" + RNReactNativeHapticFeedback: + :path: "../node_modules/react-native-haptic-feedback" + RNReanimated: + :path: "../node_modules/react-native-reanimated" + RNScreens: + :path: "../node_modules/react-native-screens" + RNSecureRandom: + :path: "../node_modules/react-native-securerandom" + RNSound: + :path: "../node_modules/react-native-sound" + RNSVG: + :path: "../node_modules/react-native-svg" + RNVectorIcons: + :path: "../node_modules/react-native-vector-icons" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7 + boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c + BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872 + CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845 + CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f + DoubleConversion: cde416483dac037923206447da6e1454df403714 + FBLazyVector: 878b59e31113e289e275165efbe4b54fa614d43d + FBReactNativeSpec: 7da9338acfb98d4ef9e5536805a0704572d33c2f + Flipper: be611d4b742d8c87fbae2ca5f44603a02539e365 + Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 + Flipper-Folly: e4493b013c02d9347d5e0cb4d128680239f6c78a + Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 + Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 + Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7 + FlipperKit: ab353d41aea8aae2ea6daaf813e67496642f3d7d + Folly: b73c3869541e86821df3c387eb0af5f65addfab4 + glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3 + GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213 + GTMAppAuth: 197a8dabfea5d665224aa00d17f164fc2248dab9 + GTMSessionFetcher: b3503b20a988c4e20cc189aa798fd18220133f52 + OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd + Permission-LocationWhenInUse: e2b8c40ce0f3675a521f26787ab47ebb9bace503 + RCTRequired: 48884c74035a0b5b76dbb7a998bd93bcfc5f2047 + RCTTypeSafety: edf4b618033c2f1c5b7bc3d90d8e085ed95ba2ab + React: f36e90f3ceb976546e97df3403e37d226f79d0e3 + React-callinvoker: 18874f621eb96625df7a24a7dc8d6e07391affcd + React-Core: ac3d816b8e3493970153f4aaf0cff18af0bb95e6 + React-CoreModules: 4016d3a4e518bcfc4f5a51252b5a05692ca6f0e1 + React-cxxreact: ffc9129013b87cb36cf3f30a86695a3c397b0f99 + React-jsi: df07aa95b39c5be3e41199921509bfa929ed2b9d + React-jsiexecutor: b56c03e61c0dd5f5801255f2160a815f4a53d451 + React-jsinspector: 8e68ffbfe23880d3ee9bafa8be2777f60b25cbe2 + react-native-build-config: 1130ad8668ca251b65e95e002b5b8f308a96726f + react-native-camera: 35854c4f764a4a6cf61c1c3525888b92f0fe4b31 + react-native-document-picker: d870e0a41510b241d5b764e7a2b5ccf129af7967 + react-native-fingerprint-scanner: ac6656f18c8e45a7459302b84da41a44ad96dbbe + react-native-geolocation: c956aeb136625c23e0dce0467664af2c437888c9 + react-native-maps: f4b89da81626ad7f151a8bfcb79733295d31ce5c + react-native-safe-area-context: b6e0e284002381d2ff29fa4fff42b4d8282e3c94 + react-native-slider: e99fc201cefe81270fc9d81714a7a0f5e566b168 + react-native-sqlite-storage: 418ef4afc5e6df6ce3574c4617e5f0b65cffde55 + react-native-webview: 0aa2cde4ee7e3e1c5fffdf64dbce9c709aa18155 + React-RCTActionSheet: 53ea72699698b0b47a6421cb1c8b4ab215a774aa + React-RCTAnimation: 1befece0b5183c22ae01b966f5583f42e69a83c2 + React-RCTBlob: 0b284339cbe4b15705a05e2313a51c6d8b51fa40 + React-RCTImage: d1756599ebd4dc2cb19d1682fe67c6b976658387 + React-RCTLinking: 9af0a51c6d6a4dd1674daadafffc6d03033a6d18 + React-RCTNetwork: 332c83929cc5eae0b3bbca4add1d668e1fc18bda + React-RCTSettings: d6953772cfd55f2c68ad72b7ef29efc7ec49f773 + React-RCTText: 65a6de06a7389098ce24340d1d3556015c38f746 + React-RCTVibration: 8e9fb25724a0805107fc1acc9075e26f814df454 + ReactCommon: 4167844018c9ed375cc01a843e9ee564399e53c3 + RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398 + RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 + RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f + RNCPushNotificationIOS: 61a7c72bd1ebad3568025957d001e0f0e7b32191 + RNFS: 2bd9eb49dc82fa9676382f0585b992c424cd59df + RNGestureHandler: 9b7e605a741412e20e13c512738a31bd1611759b + RNGoogleSignin: ad866d4c4af2651e36801dd3b7771d7715353499 + RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5 + RNPermissions: 99dd8d4a30ff13509b949ca63cd1f69edc461775 + RNReactNativeHapticFeedback: 653a8c126a0f5e88ce15ffe280b3ff37e1fbb285 + RNReanimated: e03f7425cb7a38dcf1b644d680d1bfc91c3337ad + RNScreens: 2ad555d4d9fa10b91bb765ca07fe9b29d59573f0 + RNSecureRandom: 0dcee021fdb3d50cd5cee5db0ebf583c42f5af0e + RNSound: da030221e6ac7e8290c6b43f2b5f2133a8e225b0 + RNSVG: ce9d996113475209013317e48b05c21ee988d42e + RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59 + Yoga: 7d13633d129fd179e01b8953d38d47be90db185a + YogaKit: f782866e155069a2cca2517aafea43200b01fd5a + +PODFILE CHECKSUM: afb16583a79febb8d0f0fca06f053e4f8c05ed07 + +COCOAPODS: 1.10.0 diff --git a/jestSetup.js b/jestSetup.js index be6f818b0..f94922969 100644 --- a/jestSetup.js +++ b/jestSetup.js @@ -7,12 +7,13 @@ jest.mock("react-native-push-notification", () => require("./mocks/react-native- jest.mock("react-native-keychain", () => require("./mocks/react-native-keychain")); jest.mock("react-native-securerandom", () => require("./mocks/react-native-securerandom")); jest.mock("react-native-fingerprint-scanner", () => require("./mocks/react-native-fingerprint-scanner")); -jest.mock("@react-native-community/react-native-clipboard", () => require("./mocks/@react-native-community/react-native-clipboard")); +jest.mock("@react-native-community/clipboard", () => require("./mocks/@react-native-community/clipboard")); jest.mock("@react-native-community/masked-view", () => require("./mocks/@react-native-community/masked-view")); jest.mock("@react-native-community/google-signin", () => require("./mocks/@react-native-community/google-signin")); jest.mock("react-native-fs", () => require("./mocks/react-native-fs")); jest.mock("react-native-document-picker", () => require("./mocks/react-native-document-picker")); jest.mock("@react-native-community/geolocation", () => require("./mocks/@react-native-community/geolocation")); +jest.mock("react-native-permissions", () => require("./mocks/react-native-permissions")); jest.mock("./src/lndmobile/index", () => require("./mocks/lndmobile/index")); jest.mock("./src/lndmobile/wallet", () => require("./mocks/lndmobile/wallet")); @@ -21,6 +22,8 @@ jest.mock("./src/lndmobile/onchain", () => require("./mocks/lndmobile/onchain")) jest.mock("./src/lndmobile/autopilot", () => require("./mocks/lndmobile/autopilot")); jest.mock("./src/lndmobile/scheduled-sync", () => require("./mocks/lndmobile/scheduled-sync")); +jest.mock("./src/utils/constants.ts", () => require("./mocks/utils/constants")); + const ReactNative = require("react-native"); ReactNative.NativeModules.LndMobile = {}; ReactNative.NativeModules.LndMobile.log = jest.fn(); diff --git a/mocks/react-native-permissions.ts b/mocks/react-native-permissions.ts new file mode 100644 index 000000000..2145616d4 --- /dev/null +++ b/mocks/react-native-permissions.ts @@ -0,0 +1,66 @@ +import { PERMISSIONS, RESULTS } from "react-native-permissions"; + +export const openLimitedPhotoLibraryPicker = jest.fn(async () => {}); +export const openSettings = jest.fn(async () => {}); +export const check = jest.fn(async (permission) => RESULTS.GRANTED); +export const request = jest.fn(async (permission) => RESULTS.GRANTED); +export const checkLocationAccuracy = jest.fn(async () => 'full'); +export const requestLocationAccuracy = jest.fn(async (options) => 'full'); + +const notificationOptions = ['alert', 'badge', 'sound', 'carPlay', 'criticalAlert', 'provisional']; + +const notificationSettings = { + alert: true, + badge: true, + sound: true, + carPlay: true, + criticalAlert: true, + provisional: true, + lockScreen: true, + notificationCenter: true, +}; + +export const checkNotifications = jest.fn(async () => ({ + status: RESULTS.GRANTED, + settings: notificationSettings, +})); + +export const requestNotifications = jest.fn(async (options) => ({ + status: RESULTS.GRANTED, + settings: options + .filter((option) => notificationOptions.includes(option)) + .reduce((acc, option) => ({...acc, [option]: true}), { + lockScreen: true, + notificationCenter: true, + }), +})); + +export const checkMultiple = jest.fn(async (permissions) => + permissions.reduce((acc, permission) => ({ + ...acc, + [permission]: RESULTS.GRANTED, + })), +); + +export const requestMultiple = jest.fn(async (permissions) => + permissions.reduce((acc, permission) => ({ + ...acc, + [permission]: RESULTS.GRANTED, + })), +); + +export default { + PERMISSIONS, + RESULTS, + + check, + checkLocationAccuracy, + checkMultiple, + checkNotifications, + openLimitedPhotoLibraryPicker, + openSettings, + request, + requestLocationAccuracy, + requestMultiple, + requestNotifications, +}; \ No newline at end of file diff --git a/mocks/utils/constants.ts b/mocks/utils/constants.ts new file mode 100644 index 000000000..d64aa6c9f --- /dev/null +++ b/mocks/utils/constants.ts @@ -0,0 +1,8 @@ +export const TLV_RECORD_NAME = 128100; +export const MAX_SAT_INVOICE = 4294967; + +export const GITHUB_REPO_URL = "https://github.com/hsjoberg/blixt-wallet"; +export const HAMPUS_EMAIL = "mailto:hampus.sjoberg💩protonmail.com".replace("💩", "@"); +export const TELEGRAM = "https://t.me/blixtwallet"; + +export const PLATFORM = "android"; \ No newline at end of file diff --git a/native-base-theme/components/Button.js b/native-base-theme/components/Button.js index e7e26e492..535c727c7 100644 --- a/native-base-theme/components/Button.js +++ b/native-base-theme/components/Button.js @@ -315,7 +315,8 @@ export default (variables /* : * */ = variable) => { color: variables.inverseTextColor, fontSize: variables.buttonTextSize, paddingHorizontal: 16, - backgroundColor: 'transparent' + backgroundColor: 'transparent', + textTransform: 'uppercase', }, 'NativeBase.Icon': { diff --git a/native-base-theme/components/Footer.js b/native-base-theme/components/Footer.js index ba07c0744..db5da45a4 100644 --- a/native-base-theme/components/Footer.js +++ b/native-base-theme/components/Footer.js @@ -103,11 +103,11 @@ export default (variables /* : * */ = variable) => { justifyContent: 'center', borderTopWidth: platform === PLATFORM.IOS && platformStyle !== PLATFORM.MATERIAL - ? variables.borderWidth + ? undefined : undefined, borderColor: platform === PLATFORM.IOS && platformStyle !== PLATFORM.MATERIAL - ? '#cbcbcb' + ? undefined : undefined, height: variables.footerHeight, paddingBottom: variables.footerPaddingBottom, diff --git a/native-base-theme/variables/commonColor.js b/native-base-theme/variables/commonColor.js index 95f5310d2..9e5831819 100644 --- a/native-base-theme/variables/commonColor.js +++ b/native-base-theme/variables/commonColor.js @@ -16,7 +16,7 @@ export const blixtTheme = { green: "#1c8c27", fontMedium: "IBMPlexSans-Medium", - fontRegular: "IBMPlexSans-Regular" + fontRegular: Platform.OS === "android" ? "IBMPlexSans-Regular" : "IBMPlexSans", } export const PLATFORM = { @@ -327,30 +327,30 @@ export default { // Blixt customization: - buttonFontFamily: platform === PLATFORM.IOS ? 'System' : blixtTheme.fontMedium, + buttonFontFamily: platform === PLATFORM.IOS ? blixtTheme.fontMedium : blixtTheme.fontMedium, buttonDisabledBg: color(blixtTheme.gray).lighten(0.3).hex(), cardDefaultBg: blixtTheme.gray, cardBorderColor: "transparent", - CheckboxRadius: platform === "ios" ? 13 : 7, + CheckboxRadius: platform === "ios" ? 7 : 7, CheckboxBorderWidth: platform === "ios" ? 1 : 1, CheckboxPaddingLeft: platform === "ios" ? 4 : 4, - CheckboxIconMarginTop: platform === "ios" ? undefined : 1.5, - CheckboxFontSize: platform === "ios" ? 23 / 0.9 : 16, + CheckboxIconMarginTop: platform === "ios" ? -1 : 1.5, + CheckboxFontSize: platform === "ios" ? 16 : 16, checkboxBgColor: blixtTheme.primary, checkboxTickColor: blixtTheme.light, checkboxDefaultColor: "transparent", // Upstream doesn't seem to set this by default - brandPrimary: platform === "ios" ? "#007aff" : blixtTheme.primary, + brandPrimary: platform === "ios" ? blixtTheme.primary : blixtTheme.primary, containerBgColor: blixtTheme.dark, - fontFamily: platform === "ios" ? "System" : blixtTheme.fontRegular, + fontFamily: platform === "ios" ? blixtTheme.fontRegular : blixtTheme.fontRegular, - footerDefaultBg: platform === "ios" ? "#F8F8F8" : blixtTheme.gray, + footerDefaultBg: platform === "ios" ? blixtTheme.gray : blixtTheme.gray, blixtFooterBorderColor: color(blixtTheme.gray).darken(0.12).hex(), //! @@ -364,15 +364,17 @@ export default { textColor: blixtTheme.light, inverseTextColor: blixtTheme.light, - titleFontfamily: platform === "ios" ? "System" : blixtTheme.fontRegular, + titleFontfamily: platform === "ios" ? blixtTheme.fontRegular : blixtTheme.fontRegular, subtitleColor: platform === "ios" ? "#000" : blixtTheme.light, titleFontColor: platform === "ios" ? "#000" : blixtTheme.light, - tabBarTextColor: platform === "ios" ? "#737373" : blixtTheme.light, + tabBarTextColor: platform === "ios" ? blixtTheme.light : blixtTheme.light, DefaultFontSize: 15, fontSizeBase: 14, + + listBtnUnderlayColor: color(blixtTheme.gray).lighten(0.2).hex(), }; export const blixtFooterBorderColor = color(blixtTheme.gray).darken(0.12).hex(); diff --git a/package.json b/package.json index e8b25ff64..48351b5ac 100644 --- a/package.json +++ b/package.json @@ -10,16 +10,24 @@ "test-update-snapshot": "jest --silent --roots tests --updateSnapshot", "gen-proto": "pbjs -t static-module -w es6 --force-long -o proto/proto.js proto/rpc.proto proto/walletunlocker.proto proto/autopilotrpc/autopilot.proto proto/walletrpc/walletkit.proto proto/signrpc/signer.proto proto/routerrpc/router.proto proto/invoicesrpc/invoices.proto && pbts -o proto/proto.d.ts proto/proto.js", "build-tor-lib": "./build-tor", - "regtest-debug": "npx react-native run-android --variant chainregtestNormalDebug --appIdSuffix regtest.debug", - "testnet-debug": "react-native run-android --variant chaintestnetNormalDebug --appIdSuffix testnet.debug", - "testnet": "react-native run-android --variant chaintestnetNormalRelease --appIdSuffix testnet", - "mainnet-debug": "react-native run-android --variant chainmainnetNormalDebug --appIdSuffix debug", - "mainnet": "react-native run-android --variant chainmainnetNormalRelease", - "mainnet-experiment1-debug": "react-native run-android --variant chainmainnetExperiment1Debug --appIdSuffix experiment1.debug", - "mainnet-fakelnd-debug": "react-native run-android --variant chainmainnetFakelndDebug --appIdSuffix fakelnd.debug", - "bundle-release": "cd android && ./gradlew clean && ./gradlew bundleChainmainnetNormalRelease && ./gradlew bundleChaintestnetNormalRelease", - "lnd-fake": "sed -i 's/\\.\\.\\/lndmobile\\/\\([a-z]*\\)/\\.\\.\\/lndmobile\\/fake\\/\\1/' src/state/LndMobileInjection.ts", - "lnd-real": "sed -i 's/\\.\\.\\/lndmobile\\/fake\\/\\([a-z]*\\)/\\.\\.\\/lndmobile\\/\\1/' src/state/LndMobileInjection.ts" + "android:regtest-debug": "react-native run-android --variant chainregtestNormalDebug --appIdSuffix regtest.debug", + "android:regtest": "react-native run-android --variant chainregtestNormalRelease --appIdSuffix regtest", + "android:testnet-debug": "react-native run-android --variant chaintestnetNormalDebug --appIdSuffix testnet.debug", + "android:testnet": "react-native run-android --variant chaintestnetNormalRelease --appIdSuffix testnet", + "android:mainnet-debug": "react-native run-android --variant chainmainnetNormalDebug --appIdSuffix debug", + "android:mainnet": "react-native run-android --variant chainmainnetNormalRelease", + "android:mainnet-experiment1-debug": "react-native run-android --variant chainmainnetExperiment1Debug --appIdSuffix experiment1.debug", + "android:mainnet-fakelnd": "react-native run-android --variant chainmainnetFakelndRelease --appIdSuffix fakelnd", + "android:mainnet-fakelnd-debug": "react-native run-android --variant chainmainnetFakelndDebug --appIdSuffix fakelnd.debug", + "android:bundle-release": "cd android && ./gradlew clean && ./gradlew bundleChainmainnetNormalRelease && ./gradlew bundleChaintestnetNormalRelease", + "ios:regtest-debug": "react-native run-ios --scheme BlixtWalletRegtest --configuration DebugRegtest", + "ios:regtest": "react-native run-ios --scheme BlixtWalletRegtest --configuration Regtest", + "ios:testnet-debug": "react-native run-ios --scheme BlixtWalletTestnet --configuration DebugTestnet", + "ios:testnet": "react-native run-ios --scheme BlixtWalletTestnet --configuration ReleaseTestnet", + "ios:mainnet-debug": "react-native run-ios --scheme BlixtWallet --configuration Release", + "ios:mainnet": "react-native run-android --variant chainmainnetNormalRelease", + "ios:mainnet-fakelnd": "react-native run-ios --scheme BlixtWalletFakelnd --configuration ReleaseFakelnd", + "ios:mainnet-fakelnd-debug": "react-native run-ios --scheme BlixtWalletFakelnd --configuration DebugFakelnd" }, "dependencies": { "@react-native-community/async-storage": "1.12.1", @@ -27,7 +35,7 @@ "@react-native-community/geolocation": "^2.0.2", "@react-native-community/google-signin": "5.0.0", "@react-native-community/masked-view": "0.1.10", - "@react-native-community/react-native-clipboard": "^1.0.1", + "@react-native-community/push-notification-ios": "^1.8.0", "@react-native-community/slider": "3.0.3", "@react-navigation/bottom-tabs": "5.11.2", "@react-navigation/material-bottom-tabs": "5.3.10", @@ -35,6 +43,7 @@ "@react-navigation/native": "5.8.10", "@react-navigation/stack": "5.12.8", "@types/aes-js": "^3.1.1", + "@types/react-native-vector-icons": "^6.4.6", "@types/sha.js": "^2.4.0", "aes-js": "^3.1.2", "base64-js": "1.5.1", @@ -61,7 +70,8 @@ "react-native-enhanced-popup-menu": "^0.7.0", "react-native-fingerprint-scanner": "6.0.0", "react-native-fs": "2.16.6", - "react-native-gesture-handler": "1.8.0", + "react-native-gesture-handler": "1.9.0", + "react-native-haptic-feedback": "^1.11.0", "react-native-image-slider-box": "^1.0.12", "react-native-keychain": "4.0.5", "react-native-linear-gradient": "2.5.6", @@ -69,6 +79,7 @@ "react-native-material-menu": "^1.1.3", "react-native-modal": "11.5.6", "react-native-paper": "4.4.0", + "react-native-permissions": "^3.0.0", "react-native-progress": "^4.1.2", "react-native-push-notification": "5.0.1", "react-native-qrcode-svg": "6.0.6", @@ -78,8 +89,10 @@ "react-native-securerandom": "1.0.0", "react-native-sound": "^0.11.0", "react-native-sqlite-storage": "5.0.0", + "react-native-status-bar-height": "^2.6.0", "react-native-svg": "12.1.0", "react-native-tab-view": "2.15.2", + "react-native-vector-icons": "^7.1.0", "react-native-webln": "0.1.10", "react-native-webview": "10.10.2", "secp256k1": "4.0.2", diff --git a/react-native.config.js b/react-native.config.js new file mode 100644 index 000000000..4b31d765f --- /dev/null +++ b/react-native.config.js @@ -0,0 +1,8 @@ +module.exports = { + project: { + ios: {}, + android: {}, + }, + dependencies: {}, + assets: ["./assets/fonts/"], +} \ No newline at end of file diff --git a/src/Main.tsx b/src/Main.tsx index c5e19e8f2..37438013e 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -30,6 +30,7 @@ import { blixtTheme } from "../native-base-theme/variables/commonColor"; import Container from "./components/Container"; import useStackNavigationOptions from "./hooks/useStackNavigationOptions"; import { navigator } from "./utils/navigation"; +import { PLATFORM } from "./utils/constants"; const RootStack = createStackNavigator(); @@ -146,9 +147,8 @@ export default function Main() { const screenOptions: StackNavigationOptions = { ...useStackNavigationOptions(), - gestureEnabled: true, + gestureEnabled: false, gestureDirection: "horizontal", - gestureResponseDistance: { horizontal: 0 }, gestureVelocityImpact: 1.9, }; @@ -182,11 +182,14 @@ export default function Main() { return ( - + @@ -195,6 +198,7 @@ export default function Main() { diff --git a/src/components/Form.tsx b/src/components/Form.tsx index bd71b88dc..56b9aa179 100644 --- a/src/components/Form.tsx +++ b/src/components/Form.tsx @@ -1,8 +1,9 @@ import React, { ReactNode } from "react"; -import { StyleSheet, KeyboardAvoidingView, StyleProp, ViewStyle } from "react-native"; +import { StyleSheet, KeyboardAvoidingView, StyleProp, ViewStyle, InputAccessoryView } from "react-native"; import { View, Item, Text, Label, Icon } from "native-base"; import { blixtTheme } from "../../native-base-theme/variables/commonColor"; import { MathPad, IMathPadProps } from "../components/MathPad"; +import { PLATFORM } from "../utils/constants"; export interface IFormItem { title: string | null; @@ -51,13 +52,18 @@ export default function Form({ buttons, items, style, noticeText, mathPadProps } {buttons.map((button, i) => { return ( 0 ? 6 : 0, padding: 16, }}>{button}); })} - {mathPadProps && + {PLATFORM === "android" && mathPadProps && } + {PLATFORM === "ios" && + + + + } ); } @@ -76,7 +82,8 @@ const styles = StyleSheet.create({ width: 105, }, buttonContainer: { - marginBottom: 2, + marginHorizontal: 2, + marginBottom: 10, }, error: { marginTop: 22, diff --git a/src/components/GoBackIcon.tsx b/src/components/GoBackIcon.tsx new file mode 100644 index 000000000..84a99d5aa --- /dev/null +++ b/src/components/GoBackIcon.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import { getStatusBarHeight } from "react-native-status-bar-height"; +import { useNavigation } from "@react-navigation/native"; +import { Icon } from "native-base"; +import { View, TouchableWithoutFeedback, Text } from "react-native"; + +export default function GoBackIcon() { + const navigation = useNavigation(); + + // return ( + // + // ) + + + return ( + navigation.goBack()} + /> + ); +} \ No newline at end of file diff --git a/src/components/MathPad.tsx b/src/components/MathPad.tsx index 6a699e00d..c8fdaa80f 100644 --- a/src/components/MathPad.tsx +++ b/src/components/MathPad.tsx @@ -1,9 +1,10 @@ import React, { useLayoutEffect } from "react"; -import { StyleSheet, LayoutAnimation, Animated } from "react-native"; +import { StyleSheet, LayoutAnimation, Animated, Keyboard } from "react-native"; import { createAnimatableComponent } from "react-native-animatable"; import { Button, Text } from "native-base"; import { blixtTheme } from "../../native-base-theme/variables/commonColor"; +import { PLATFORM } from "../utils/constants"; const AnimatedButton = createAnimatableComponent(Button); @@ -20,7 +21,9 @@ export interface IMathPadProps { export function MathPad({ visible, onAddPress, onSubPress, onMulPress, onDivPress, onParenthesisLeftPress, onParenthesisRightPress, onEqualSignPress }: IMathPadProps) { useLayoutEffect(() => { // if (visible === true) { - LayoutAnimation.configureNext(LayoutAnimation.create(90, 'easeInEaseOut', 'opacity')); + if (PLATFORM === "android") { + LayoutAnimation.configureNext(LayoutAnimation.create(90, 'easeInEaseOut', 'opacity')); + } // LayoutAnimation.configureNext({ // duration: 0, // create: { @@ -81,6 +84,12 @@ export function MathPad({ visible, onAddPress, onSubPress, onMulPress, onDivPres = + + {PLATFORM === "ios" && + Keyboard.dismiss()} style={mathPadStyles.button}> + Done + + } ) } @@ -90,11 +99,12 @@ const mathPadStyles = StyleSheet.create({ marginBottom: 0, marginLeft: 5, marginRight: 5, - height: 35, + height: PLATFORM === "android" ? 35 : 32, backgroundColor: blixtTheme.lightGray }, buttonText: { - fontFamily: "monospace", + fontFamily: PLATFORM === "android" ? "monospace" : undefined, letterSpacing: 0, + fontSize: PLATFORM === "android" ? undefined : 10, } }) \ No newline at end of file diff --git a/src/components/Pincode.tsx b/src/components/Pincode.tsx index 82b611cad..136da1a31 100644 --- a/src/components/Pincode.tsx +++ b/src/components/Pincode.tsx @@ -4,10 +4,17 @@ import { View, Text, Button, Icon } from "native-base"; import color from "color"; import * as Animatable from "react-native-animatable"; import Container from "../components/Container"; +import ReactNativeHapticFeedback from "react-native-haptic-feedback"; import { blixtTheme } from "../../native-base-theme/variables/commonColor"; import { smallScreen } from "../utils/device"; +import { PLATFORM } from "../utils/constants"; + +const hapticFeedbackOptions: ReactNativeHapticFeedback.HapticOptions = { + enableVibrateFallback: false, + ignoreAndroidSystemSettings: false, +}; export interface IPincode { textAction: string; @@ -24,7 +31,12 @@ export default function Pincode({ onTryCode, textAction }: IPincode) { } return code; }); - Vibration.vibrate(32); + + if (PLATFORM === "android") { + Vibration.vibrate(32); + } else if (PLATFORM === "ios") { + ReactNativeHapticFeedback.trigger("impactLight", hapticFeedbackOptions); + } }; const onBackspacePress = () => { @@ -33,12 +45,20 @@ export default function Pincode({ onTryCode, textAction }: IPincode) { tmp.pop(); return tmp; }); - Vibration.vibrate(32); + if (PLATFORM === "android") { + Vibration.vibrate(32); + } else if (PLATFORM === "ios") { + ReactNativeHapticFeedback.trigger("impactLight", hapticFeedbackOptions); + } }; const onClearPress = () => { setCode([]); - Vibration.vibrate(35); + if (PLATFORM === "android") { + Vibration.vibrate(35); + } else if (PLATFORM === "ios") { + ReactNativeHapticFeedback.trigger("impactLight", hapticFeedbackOptions); + } }; useEffect(() => { @@ -46,7 +66,11 @@ export default function Pincode({ onTryCode, textAction }: IPincode) { (async () => { if (!await onTryCode(code.join(""))) { setTimeout(() => pincodeText!.current!.shake!(950), 1); - Vibration.vibrate(300); + if (PLATFORM === "android") { + Vibration.vibrate(300); + } else if (PLATFORM === "ios") { + Vibration.vibrate(300); + } } setCode([]); })(); @@ -128,7 +152,7 @@ const style = StyleSheet.create({ }, pincodeInputText: { textAlign: "center", - fontSize: 35, + fontSize: PLATFORM === "android" ? 35 : 24, lineHeight: 44, letterSpacing: 4, }, diff --git a/src/hooks/useStackNavigationOptions.ts b/src/hooks/useStackNavigationOptions.ts index 6393fa909..b200ff28d 100644 --- a/src/hooks/useStackNavigationOptions.ts +++ b/src/hooks/useStackNavigationOptions.ts @@ -30,6 +30,7 @@ export default function useStackNavigationOptions(): StackNavigationOptions { headerStyle: { backgroundColor: Chain === "mainnet" ? blixtTheme.primary : Color(blixtTheme.lightGray).darken(0.30).hex(), elevation: 0, + shadowColor: "transparent", }, headerTitleStyle: { color: blixtTheme.light diff --git a/src/lndmobile/fake/index.ts b/src/lndmobile/fake/index.ts index 75c7987d8..9d3bd8617 100644 --- a/src/lndmobile/fake/index.ts +++ b/src/lndmobile/fake/index.ts @@ -78,7 +78,29 @@ export const getNodeInfo = async (pubKey: string): Promise => { /** * @throws */ +let getInfoCount = 0; export const getInfo = async (): Promise => { + if (getInfoCount++ < 1) { + const response = lnrpc.GetInfoResponse.create({ + uris: [], + chains: [{ + chain: "bitcoin", + network: "testnet", + }], + identityPubkey: "02b5380da0919e32b13c1a21c1c85000eed0ba9a9309fc6849d72230d43088ae1d", + alias: "02b5380da0919e32b13c", + numPeers: 3, + blockHeight: 1572555, + blockHash: "000000000000006cb43faa5c615e45419f48e9d94d77c1bab8a28018cf2db6ef", + syncedToChain: false, + syncedToGraph: false, + testnet: true, + bestHeaderTimestamp: Long.fromNumber(1564940232), + version: "0.7.1-beta commit=v0.7.1-beta-rc1-10-g3760f29f5e758b2865b756604333ca22cf23e90b", + features: {}, + }); + return response; + } const response = lnrpc.GetInfoResponse.create({ uris: [], chains: [{ diff --git a/src/lndmobile/index.ts b/src/lndmobile/index.ts index e1b31fea5..2a9cebdbf 100644 --- a/src/lndmobile/index.ts +++ b/src/lndmobile/index.ts @@ -371,7 +371,7 @@ export const addInvoice = async (amount: number, memo: string, expiry: number = * @throws */ export const cancelInvoice = async (paymentHash: string): Promise => { - const response = await sendCommand({ + const response = await sendCommand({ request: invoicesrpc.CancelInvoiceMsg, response: invoicesrpc.CancelInvoiceResp, method: "InvoicesCancelInvoice", diff --git a/src/react-native-clipboard.d.ts b/src/react-native-clipboard.d.ts deleted file mode 100644 index fbce1b2ca..000000000 --- a/src/react-native-clipboard.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -// TODO remove once available upstream - -declare module "@react-native-community/react-native-clipboard" { - export interface ClipboardStatic { - /** - * Get content of string type - */ - getString(): Promise; - - /** - * Set content of string type. - * @param content Clipboard content - */ - setString(content: string): void; - } - - const Clipboard: ClipboardStatic; - - export default Clipboard; -} diff --git a/src/react-native-realtimeblur/index.tsx b/src/react-native-realtimeblur/index.android.tsx similarity index 100% rename from src/react-native-realtimeblur/index.tsx rename to src/react-native-realtimeblur/index.android.tsx diff --git a/src/react-native-realtimeblur/index.ios.tsx b/src/react-native-realtimeblur/index.ios.tsx new file mode 100644 index 000000000..0f909686d --- /dev/null +++ b/src/react-native-realtimeblur/index.ios.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import RCTRealTimeBlur from "./RCTRealTimeBlur"; +import { View, ViewProps } from "react-native"; + +interface IRealTimeBlurProps extends ViewProps { + overlayColor?: string; + blurRadius?: number; + downsampleFactor?: number; + children: any; +} +export default function RealTimeBlur(props: IRealTimeBlurProps) { + return ( + <> + + + {props.children} + + + + ) +} \ No newline at end of file diff --git a/src/state/Channel.ts b/src/state/Channel.ts index ced3165b9..952fbf931 100644 --- a/src/state/Channel.ts +++ b/src/state/Channel.ts @@ -139,7 +139,7 @@ export const channel: IChannelModel = { } getStoreActions().notificationManager.localNotification({ message, importance: "high" }); } catch (e) { - log.e("Push notification failed: ", e.message); + log.e("Push notification failed: ", [e.message]); } } } diff --git a/src/state/Lightning.ts b/src/state/Lightning.ts index b379f4468..522179594 100644 --- a/src/state/Lightning.ts +++ b/src/state/Lightning.ts @@ -10,6 +10,7 @@ import { getItemObject, StorageItem, setItemObject, getItem } from "../storage/a import { toast, timeout } from "../utils"; import { Chain } from "../utils/build"; import { getWalletPassword } from "../storage/keystore"; +import { PLATFORM } from "../utils/constants"; import logger from "./../utils/log"; const log = logger("Lightning"); @@ -174,11 +175,12 @@ export const lightning: ILightningModel = { dispatch.onChain.initialize(), dispatch.transaction.checkOpenTransactions(), dispatch.scheduledSync.initialize(), - dispatch.blixtLsp.initialize(), ]); await dispatch.notificationManager.initialize(); await dispatch.clipboardManager.initialize(); - await dispatch.androidDeeplinkManager.initialize(); + if (PLATFORM === "android") { + await dispatch.androidDeeplinkManager.initialize(); + } } catch (e) { toast(e.message, 0, "danger", "OK"); return; diff --git a/src/state/NotificationManager.ts b/src/state/NotificationManager.ts index 694f47c67..3c5f5e902 100644 --- a/src/state/NotificationManager.ts +++ b/src/state/NotificationManager.ts @@ -1,9 +1,11 @@ -import { Action, action, Thunk, thunk } from "easy-peasy"; +import { Thunk, thunk } from "easy-peasy"; import PushNotification, { PushNotificationObject } from "react-native-push-notification"; -import logger from "./../utils/log"; import { navigate } from "../utils/navigation"; -import { IStoreModel } from "."; +import { IStoreModel } from "./index"; + +import logger from "./../utils/log"; +import { PLATFORM } from "../utils/constants"; const log = logger("NotificationManager"); interface ILocalNotificationPayload { @@ -21,6 +23,15 @@ export const notificationManager: INotificationManagerModel = { initialize: thunk(async () => { log.d("Initializing"); + if (PLATFORM === "ios") { + const permissions = await PushNotification.requestPermissions(["alert", "sound", "badge"]); + + if(!permissions.alert) { + log.w("Didn't get permissions to send push notifications."); + return; + } + } + PushNotification.configure({ requestPermissions: false, onNotification: ((notification) => { @@ -38,7 +49,7 @@ export const notificationManager: INotificationManagerModel = { }); }), - localNotification: thunk((state, { message, importance }, { getStoreState }) => { + localNotification: thunk((_, { message, importance }, { getStoreState }) => { if (getStoreState().settings.pushNotificationsEnabled) { PushNotification.localNotification({ message, diff --git a/src/state/ScheduledSync.ts b/src/state/ScheduledSync.ts index 22b74b6dd..a3abc3796 100644 --- a/src/state/ScheduledSync.ts +++ b/src/state/ScheduledSync.ts @@ -2,7 +2,8 @@ import { NativeModules } from "react-native" import { Action, action, Thunk, thunk, computed, Computed } from "easy-peasy"; import { StorageItem, getItemObject } from "../storage/app"; import { WorkInfo } from "../lndmobile/scheduled-sync"; -import { IStoreInjections } from "./store.ts"; +import { IStoreInjections } from "./store"; +import { PLATFORM } from "../utils/constants"; import logger from "./../utils/log"; const log = logger("ScheduledSync"); @@ -27,10 +28,19 @@ export interface IScheduledSyncModel { export const scheduledSync: IScheduledSyncModel = { initialize: thunk(async (actions) => { + if (PLATFORM !== "android") { + log.w("initialize(): Platform does not support scheduled sync yet"); + return; + } await actions.retrieveSyncInfo(); }), retrieveSyncInfo: thunk(async (actions, _, { injections }) => { + if (PLATFORM !== "android") { + log.w("retrieveSyncInfo(): Platform does not support scheduled sync yet"); + return; + } + try { actions.setLastScheduledSync(await getItemObject(StorageItem.lastScheduledSync)); actions.setLastScheduledSyncAttempt(await getItemObject(StorageItem.lastScheduledSyncAttempt)); @@ -41,6 +51,11 @@ export const scheduledSync: IScheduledSyncModel = { }), setSyncEnabled: thunk(async (actions, enabled) => { + if (PLATFORM !== "android") { + log.w("setSyncEnabled(): Platform does not support scheduled sync yet"); + return; + } + enabled ? await LndMobileScheduledSync.setupScheduledSyncWork() : await LndMobileScheduledSync.removeScheduledSyncWork(); @@ -54,5 +69,5 @@ export const scheduledSync: IScheduledSyncModel = { syncEnabled: computed((store) => ["BLOCKED", "ENQUEUED", "FAILED", "RUNNING", "SUCCEEDED"].includes(store.workInfo!)), lastScheduledSync: 0, lastScheduledSyncAttempt: 0, - workInfo: null, + workInfo: "WORK_NOT_EXIST", }; diff --git a/src/state/Send.ts b/src/state/Send.ts index 4911bb745..32ae58b52 100644 --- a/src/state/Send.ts +++ b/src/state/Send.ts @@ -1,3 +1,4 @@ +import ReactNativePermissions from "react-native-permissions"; import { Action, action, Thunk, thunk } from "easy-peasy"; import * as Bech32 from "bech32"; import Long from "long"; @@ -9,10 +10,11 @@ import { lnrpc } from "../../proto/proto"; import { valueFiat } from "../utils/bitcoin-units"; import { LnBech32Prefix } from "../utils/build"; import { getGeolocation, hexToUint8Array } from "../utils"; - -import logger from "./../utils/log"; import { ILNUrlPayResponse } from "./LNURL"; import { identifyService } from "../utils/lightning-services"; +import { PLATFORM } from "../utils/constants"; + +import logger from "./../utils/log"; const log = logger("Send"); type PaymentRequest = string; @@ -207,6 +209,16 @@ export const send: ISendModel = { if (getStoreState().settings.transactionGeolocationEnabled) { try { log.d("Syncing geolocation for transaction"); + if (PLATFORM === "ios") { + if (await ReactNativePermissions.check(ReactNativePermissions.PERMISSIONS.IOS.LOCATION_WHEN_IN_USE) === "denied") { + log.d("Requesting geolocation permission"); + const r = await ReactNativePermissions.request(ReactNativePermissions.PERMISSIONS.IOS.LOCATION_WHEN_IN_USE); + if (r !== "granted") { + throw new Error(`Got "${r}" when requesting Geolocation permission`); + } + } + } + const coords = await getGeolocation(); transaction.locationLong = coords.longitude; transaction.locationLat = coords.latitude; @@ -325,6 +337,16 @@ export const send: ISendModel = { if (getStoreState().settings.transactionGeolocationEnabled) { try { log.d("Syncing geolocation for transaction"); + if (PLATFORM === "ios") { + if (await ReactNativePermissions.check(ReactNativePermissions.PERMISSIONS.IOS.LOCATION_WHEN_IN_USE) === "denied") { + log.d("Requesting geolocation permission"); + const r = await ReactNativePermissions.request(ReactNativePermissions.PERMISSIONS.IOS.LOCATION_WHEN_IN_USE); + if (r !== "granted") { + throw new Error(`Got "${r}" when requesting Geolocation permission`); + } + } + } + const coords = await getGeolocation(); transaction.locationLong = coords.longitude; transaction.locationLat = coords.latitude; diff --git a/src/state/index.ts b/src/state/index.ts index 1fb29bd0e..21a4579eb 100644 --- a/src/state/index.ts +++ b/src/state/index.ts @@ -21,7 +21,7 @@ import { IGoogleModel, google } from "./Google"; import { IGoogleDriveBackupModel, googleDriveBackup } from "./GoogleDriveBackup"; import { IWebLNModel, webln } from "./WebLN"; import { IAndroidDeeplinkManager, androidDeeplinkManager } from "./AndroidDeeplinkManager"; -import { INotificationManagerModel, notificationManager} from "./NotificationManager"; +import { INotificationManagerModel, notificationManager } from "./NotificationManager"; import { ILightNameModel, lightName } from "./LightName"; import { ELndMobileStatusCodes } from "../lndmobile/index"; @@ -31,6 +31,7 @@ import { clearTransactions } from "../storage/database/transaction"; import { appMigration } from "../migration/app-migration"; import { timeout } from "../utils"; import { setWalletPassword, getItem } from "../storage/keystore"; +import { PLATFORM } from "../utils/constants"; import logger from "./../utils/log"; const log = logger("Store"); @@ -151,8 +152,10 @@ export const model: IStoreModel = { dispatch.fiat.getRate(); await dispatch.settings.initialize(); await dispatch.security.initialize(); - await dispatch.google.initialize(); - await dispatch.googleDriveBackup.initialize(); + if (PLATFORM === "android") { + await dispatch.google.initialize(); + await dispatch.googleDriveBackup.initialize(); + } await dispatch.transaction.getTransactions(); await dispatch.channel.setupCachedBalance(); log.d("Done starting up stores"); diff --git a/src/utils/build.ts b/src/utils/build.ts index bb02338a0..1749b2315 100644 --- a/src/utils/build.ts +++ b/src/utils/build.ts @@ -1,11 +1,12 @@ import BuildConfig from "react-native-build-config"; +import { PLATFORM } from "./constants"; -export const Flavor: string = BuildConfig.FLAVOR_custom; -export const Debug: boolean = BuildConfig.DEBUG; -export const VersionCode: number = BuildConfig.VERSION_CODE; -export const BuildType: string = BuildConfig.BUILD_TYPE; -export const ApplicationId: string = BuildConfig.APPLICATION_ID; -export const VersionName: string = BuildConfig.VERSION_NAME; +export const Flavor: string = PLATFORM === "android" ? BuildConfig.FLAVOR_custom : BuildConfig.FLAVOR; +export const Debug: boolean = PLATFORM === "android" ? BuildConfig.DEBUG : BuildConfig.DEBUG === "true"; +export const VersionCode: number = PLATFORM === "android" ? BuildConfig.VERSION_CODE : 1; +export const BuildType: string = PLATFORM === "android" ? BuildConfig.BUILD_TYPE : "BuildType"; +export const ApplicationId: string = PLATFORM === "android" ? BuildConfig.APPLICATION_ID : BuildConfig.CFBundleIdentifier; +export const VersionName: string = PLATFORM === "android" ? BuildConfig.VERSION_NAME : ""; export const IsHermes: boolean = global.HermesInternal != null; export const Chain: "mainnet" | "testnet" | "regtest" = BuildConfig.CHAIN; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index dffa7c1e7..d205710e8 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,6 +1,10 @@ +import { Platform } from "react-native"; + export const TLV_RECORD_NAME = 128100; export const MAX_SAT_INVOICE = 4294967; export const GITHUB_REPO_URL = "https://github.com/hsjoberg/blixt-wallet"; export const HAMPUS_EMAIL = "mailto:hampus.sjoberg💩protonmail.com".replace("💩", "@"); export const TELEGRAM = "https://t.me/blixtwallet"; + +export const PLATFORM = Platform.OS; \ No newline at end of file diff --git a/src/utils/log.ts b/src/utils/log.ts index fe4256d50..48865774c 100644 --- a/src/utils/log.ts +++ b/src/utils/log.ts @@ -1,6 +1,7 @@ import { NativeModules } from "react-native"; import { Debug } from "./build"; +import { PLATFORM } from "./constants"; const log = (tag?: string) => { tag = tag ?? ""; @@ -10,7 +11,9 @@ const log = (tag?: string) => { if (Debug) { const msg = fixMessage(message, data); console.debug(`${tag}: ${msg}`); - NativeModules.LndMobile.log("v", tag, msg); + if (PLATFORM === "android") { + NativeModules.LndMobile.log("v", tag, msg); + } } }, @@ -18,26 +21,34 @@ const log = (tag?: string) => { if (Debug) { const msg = fixMessage(message, data); console.debug(`${tag}: ${msg}`); - NativeModules.LndMobile.log("d", tag, msg); + if (PLATFORM === "android") { + NativeModules.LndMobile.log("d", tag, msg); + } } }, i: (message: string, data: any[] = []) => { const msg = fixMessage(message, data); console.log(`${tag}: ${msg}`); - NativeModules.LndMobile.log("i", tag, msg); + if (PLATFORM === "android") { + NativeModules.LndMobile.log("i", tag, msg); + } }, w: (message: string, data: any[] = []) => { const msg = fixMessage(message, data); console.warn(`${tag}: ${msg}`); - NativeModules.LndMobile.log("w", tag, msg); + if (PLATFORM === "android") { + NativeModules.LndMobile.log("w", tag, msg); + } }, e: (message: string, data: any[] = []) => { const msg = fixMessage(message, data); console.error(`${tag}: ${msg}`); - NativeModules.LndMobile.log("e", tag, msg); + if (PLATFORM === "android") { + NativeModules.LndMobile.log("e", tag, msg); + } }, }; }; diff --git a/src/utils/push-notification.ts b/src/utils/push-notification.ts index e212c9bfa..511dd884e 100644 --- a/src/utils/push-notification.ts +++ b/src/utils/push-notification.ts @@ -1,12 +1,5 @@ import PushNotification, { PushNotificationObject } from "react-native-push-notification"; -PushNotification.configure({ - onNotification: function(notification) { - console.log("NOTIFICATION:", notification); - }, - requestPermissions: false -}); - export const localNotification = (message: string, importance: PushNotificationObject["importance"] = "default"): void => { PushNotification.localNotification({ message, diff --git a/src/windows/CameraFullscreen.tsx b/src/windows/CameraFullscreen.tsx index a061c2f71..5749cf1ed 100644 --- a/src/windows/CameraFullscreen.tsx +++ b/src/windows/CameraFullscreen.tsx @@ -1,9 +1,12 @@ import React, { useState } from "react"; -import { StatusBar } from "react-native"; +import { Platform, StatusBar } from "react-native"; + import Camera from "../components/Camera"; import BarcodeMask from "../components/BarCodeMask"; import { smallScreen } from "../utils/device"; import { blixtTheme } from "../../native-base-theme/variables/commonColor"; +import GoBackIcon from "../components/GoBackIcon"; +import { PLATFORM } from "../utils/constants"; type onReadCallback = (address: string) => void; @@ -29,12 +32,17 @@ export default function CameraFullscreen({ navigation, route }: any) { }} onNotAuthorized={() => setTimeout(() => navigation.pop(), 1)} > - + <> + + {PLATFORM === "ios" && + + } + ); diff --git a/src/windows/Help.tsx b/src/windows/Help.tsx index ce687d5d8..dfe384b34 100644 --- a/src/windows/Help.tsx +++ b/src/windows/Help.tsx @@ -1,6 +1,6 @@ import React from "react"; import { StyleSheet, Linking } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Body, Card, Text, CardItem, H1, Toast, View, Button } from "native-base"; import { useStoreState } from "../state/store"; diff --git a/src/windows/HelperWindows/SelectList.tsx b/src/windows/HelperWindows/SelectList.tsx new file mode 100644 index 000000000..745457ab3 --- /dev/null +++ b/src/windows/HelperWindows/SelectList.tsx @@ -0,0 +1,87 @@ +import React, { useLayoutEffect, useState } from "react"; +import { Header, Icon, Input, Item, ListItem, Text } from "native-base"; +import Container from "../../components/Container"; +import { FlatList, View } from "react-native"; +import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; +import { StackNavigationProp } from "@react-navigation/stack"; +import { RouteProp } from "@react-navigation/native"; + +type onPickCallback = (address: string) => void; + +export interface ISelectListNavigationProps { + title: string; + onPick: (address: T) => void; + data: { title: string, value: T }[]; + searchEnabled?: boolean; +} + +type IFakeStack = { + SelectList: ISelectListNavigationProps; +} + +export interface ISelectListProps { + navigation: StackNavigationProp, "SelectList">; + route: RouteProp, "SelectList">; +} + +export default function({ navigation, route }: ISelectListProps) { + const title = route?.params?.title ?? ""; + const onPick = route?.params?.onPick ?? (() => {}); + const data = route?.params?.data ?? []; + const searchEnabled = route?.params?.searchEnabled ?? false; + + useLayoutEffect(() => { + navigation.setOptions({ + headerTitle: title, + headerShown: true, + }); + }, [navigation]); + + const [searchText, setSearchText] = useState(""); // No debouncer necessary + + return ( + + {/* Replace with react-navigation search bar when possible */} + {/* https://github.com/react-navigation/search-layout/pull/20 */} + {searchEnabled && +
+ + setSearchText(text)} + autoCorrect={false} + /> + + +
+ } + + { + return ( + title.toUpperCase().includes(searchText.toUpperCase()) || + value.toUpperCase().includes(searchText.toUpperCase()) + ); + })} + renderItem={({ item }) => ( + { + onPick(item.value); + navigation.pop(); + }}> + {item.title} + + )} + keyExtractor={(item) => item.value} + /> + +
+ ) +} \ No newline at end of file diff --git a/src/windows/InitProcess/DEV_Commands.tsx b/src/windows/InitProcess/DEV_Commands.tsx index 797b8bd69..38efdd5a2 100644 --- a/src/windows/InitProcess/DEV_Commands.tsx +++ b/src/windows/InitProcess/DEV_Commands.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { StyleSheet, StatusBar, NativeModules, ScrollView, DeviceEventEmitter } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Text, Button, Toast, Input, View, Container } from "native-base"; import Long from "long"; import { StackNavigationProp } from "@react-navigation/stack"; @@ -31,6 +31,7 @@ import secp256k1 from "secp256k1"; import { Hash as sha256Hash, HMAC as sha256HMAC } from "fast-sha256"; import { bytesToString, bytesToHexString } from "../../utils"; import { ILightningServices } from "../../utils/lightning-services"; +import { localNotification } from "../../utils/push-notification"; @@ -63,17 +64,13 @@ export default function DEV_Commands({ navigation, continueCallback }: IProps) { /> - - - - + Random: + + + Security: diff --git a/src/windows/LNURL/PayRequest.tsx b/src/windows/LNURL/PayRequest.tsx index fd7d4f13b..43fa9618a 100644 --- a/src/windows/LNURL/PayRequest.tsx +++ b/src/windows/LNURL/PayRequest.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from "react"; import { Vibration, StyleSheet, Linking } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard" +import Clipboard from "@react-native-community/clipboard" import { Body, Card, Text, CardItem, H1, View, Button, Input, Spinner } from "native-base"; import { StackNavigationProp } from "@react-navigation/stack"; import DialogAndroid from "react-native-dialogs"; diff --git a/src/windows/LNURL/WithdrawRequest.tsx b/src/windows/LNURL/WithdrawRequest.tsx index 40de155ec..9a93ab22d 100644 --- a/src/windows/LNURL/WithdrawRequest.tsx +++ b/src/windows/LNURL/WithdrawRequest.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { StatusBar, Vibration } from "react-native"; +import { Alert, StatusBar, Vibration } from "react-native"; import { Spinner } from "native-base"; import { StackNavigationProp } from "@react-navigation/stack"; import DialogAndroid from "react-native-dialogs"; @@ -12,6 +12,7 @@ import { RootStackParamList } from "../../Main"; import { getDomainFromURL, toast, timeout } from "../../utils"; import { ILNUrlWithdrawRequest } from "../../state/LNURL"; import { convertBitcoinUnit, formatBitcoin, BitcoinUnits } from "../../utils/bitcoin-units"; +import { PLATFORM } from "../../utils/constants"; interface IWithdrawRequestProps { navigation: StackNavigationProp<{}>; @@ -75,35 +76,81 @@ export default function LNURLChannelRequest({ navigation }: IWithdrawRequestProp if (lnObject.minWithdrawable === lnObject.maxWithdrawable) { const amount = formatBitcoin(Long.fromValue(lnObject.maxWithdrawable).div(1000), bitcoinUnit); description += `\n\nAmount: ${amount}`; - - const result = await DialogAndroid.alert( - title, - description, - { - negativeText: "Cancel", - } - ); - action = result.action; sat = Math.floor(lnObject.minWithdrawable / 1000); + + if (PLATFORM === "android") { + const result = await DialogAndroid.alert( + title, + description, + { + negativeText: "Cancel", + } + ); + action = result.action; + } else { + await new Promise((resolve) => { + Alert.alert( + title, + description, + [{ + text: "OK", + onPress: () => { + action = DialogAndroid.actionPositive; + resolve(); + }, + }, { + text: "Cancel", + onPress: () => { + action = DialogAndroid.actionNegative; + resolve(); + }, + }] + ); + }); + } } else { const minWithdrawableSat = formatBitcoin(Long.fromValue(minWithdrawable).div(1000), bitcoinUnit); const maxWithdrawableSat = formatBitcoin(Long.fromValue(maxWithdrawable).div(1000), bitcoinUnit); description += `\n\nMin withdrawal amount: ${minWithdrawableSat}\nMax withdrawal amount: ${maxWithdrawableSat}`; - const result = await DialogAndroid.prompt( - title, - description, - { - placeholder: `Amount (${BitcoinUnits[bitcoinUnit].nice})`, - keyboardType: "numeric", - allowEmptyInput: false, - negativeText: "Cancel", - } - ); - action = result.action; - sat = convertBitcoinUnit(Number.parseFloat(result.text), bitcoinUnit, "satoshi").toNumber(); + if (PLATFORM === "android") { + const result = await DialogAndroid.prompt( + title, + description, + { + placeholder: `Amount (${BitcoinUnits[bitcoinUnit].nice})`, + keyboardType: "numeric", + allowEmptyInput: false, + negativeText: "Cancel", + } + ); + + action = result.action; + sat = convertBitcoinUnit(Number.parseFloat(result.text), bitcoinUnit, "satoshi").toNumber(); + } else { + await new Promise((resolve) => { + Alert.prompt( + title, + description, + [{ + text: "OK", + onPress: (text) => { + action = DialogAndroid.actionPositive; + sat = convertBitcoinUnit(Number.parseFloat(text ?? "0"), bitcoinUnit, "satoshi").toNumber(); + resolve(); + }, + }, { + text: "Cancel", + onPress: () => { + action = DialogAndroid.actionNegative; + resolve(); + }, + }] + ) + }) + } } if (action === DialogAndroid.actionPositive) { diff --git a/src/windows/LightningInfo/OpenChannel.tsx b/src/windows/LightningInfo/OpenChannel.tsx index 7eaef0ee5..517c8abae 100644 --- a/src/windows/LightningInfo/OpenChannel.tsx +++ b/src/windows/LightningInfo/OpenChannel.tsx @@ -74,11 +74,11 @@ export default function OpenChannel({ navigation, route }: IOpenChannelProps) { }, { key: "AMOUNT", title: `Amount ${bitcoinUnit.nice}`, - component: () + component: () }, { key: "AMOUNT_FIAT", title: `Amount ${fiatUnit}`, - component: () + component: () }]} buttons={[ @@ -300,7 +340,10 @@ const DoBackup = () => { ); } -const iconTopPadding = StatusBar.currentHeight ?? 0; +const iconTopPadding = Platform.select({ + android: StatusBar.currentHeight ?? 0, + ios: getStatusBarHeight(true), +}) ?? 0; const style = StyleSheet.create({ overview: { @@ -326,9 +369,9 @@ const style = StyleSheet.create({ }, onchainIcon: { position: "absolute", - padding: 4, + padding: 6, paddingRight: 8, - top: 11 + iconTopPadding, + top: 9 + iconTopPadding, left: 8, fontSize: 25, color: blixtTheme.light, @@ -344,7 +387,7 @@ const style = StyleSheet.create({ }, settingsIcon: { position: "absolute", - padding: 4, + padding: 5, top: 11 + iconTopPadding, right: 8, fontSize: 27, @@ -352,7 +395,7 @@ const style = StyleSheet.create({ }, helpIcon: { position: "absolute", - padding: 4, + padding: 5, top: 12 + iconTopPadding, right: 8 + 24 + 8 + 8, fontSize: 25, @@ -385,10 +428,8 @@ const style = StyleSheet.create({ const headerInfo = StyleSheet.create({ btc: { color: blixtTheme.light, - marginTop: 14 + iconTopPadding + 16, - //paddingTop: iconTopPadding + 16, - marginBottom: 2, - fontFamily: theme.fontFamily, + marginBottom: 3, + fontFamily: blixtTheme.fontMedium, }, fiat: { color: blixtTheme.light, @@ -426,7 +467,7 @@ export default function TopTabsComponent() { }, }} > - + ); diff --git a/src/windows/Receive/ReceiveQr.tsx b/src/windows/Receive/ReceiveQr.tsx index 22195d050..6feaaeb68 100644 --- a/src/windows/Receive/ReceiveQr.tsx +++ b/src/windows/Receive/ReceiveQr.tsx @@ -1,6 +1,6 @@ import React, { useLayoutEffect } from "react"; import { View, Share, StyleSheet } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Button, Body, Icon, Header, Text, Title, Left, H1, H3, Spinner } from "native-base"; import { RouteProp } from "@react-navigation/native"; import { StackNavigationProp, HeaderBackButton } from "@react-navigation/stack"; diff --git a/src/windows/Receive/ReceiveSetup.tsx b/src/windows/Receive/ReceiveSetup.tsx index 6b1550602..ba4e035da 100644 --- a/src/windows/Receive/ReceiveSetup.tsx +++ b/src/windows/Receive/ReceiveSetup.tsx @@ -1,5 +1,5 @@ import React, { useState, useLayoutEffect, useEffect } from "react"; -import { Button, Container, Icon, Text, Input, Spinner } from "native-base"; +import { Button, Icon, Text, Input, Spinner } from "native-base"; import DialogAndroid from "react-native-dialogs"; import { useDebounce } from "use-debounce"; import { StackNavigationProp } from "@react-navigation/stack"; @@ -8,12 +8,14 @@ import Long from "long"; import { ReceiveStackParamList } from "./index"; import { useStoreActions, useStoreState } from "../../state/store"; import BlixtForm from "../../components/Form"; -import { formatBitcoin, BitcoinUnits } from "../../utils/bitcoin-units"; +import { formatBitcoin, BitcoinUnits, IBitcoinUnits } from "../../utils/bitcoin-units"; import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; import useBalance from "../../hooks/useBalance"; -import { MAX_SAT_INVOICE } from "../../utils/constants"; +import { MAX_SAT_INVOICE, PLATFORM } from "../../utils/constants"; import { toast } from "../../utils"; import { Keyboard } from "react-native"; +import Container from "../../components/Container"; +import { IFiatRates } from "../../state/Fiat"; const MATH_PAD_HEIGHT = 44; @@ -98,20 +100,33 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { const currentBitcoinUnit = useStoreState((store) => store.settings.bitcoinUnit); const changeBitcoinUnit = useStoreActions((store) => store.settings.changeBitcoinUnit); const onPressChangeBitcoinUnit = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: currentBitcoinUnit, - items: [ - { label: BitcoinUnits.bitcoin.settings, id: "bitcoin" }, - { label: BitcoinUnits.bit.settings, id: "bit" }, - { label: BitcoinUnits.satoshi.settings, id: "satoshi" }, - { label: BitcoinUnits.milliBitcoin.settings, id: "milliBitcoin" }, - ] - }); - if (selectedItem) { - await changeBitcoinUnit(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: currentBitcoinUnit, + items: [ + { label: BitcoinUnits.bitcoin.settings, id: "bitcoin" }, + { label: BitcoinUnits.bit.settings, id: "bit" }, + { label: BitcoinUnits.satoshi.settings, id: "satoshi" }, + { label: BitcoinUnits.milliBitcoin.settings, id: "milliBitcoin" }, + ] + }); + if (selectedItem) { + await changeBitcoinUnit(selectedItem.id); + } + } else { + navigation.navigate("ChangeBitcoinUnit", { + title: "Change bitcoin unit", + data: [ + { title: BitcoinUnits.bitcoin.settings, value: "bitcoin" }, + { title: BitcoinUnits.bit.settings, value: "bit" }, + { title: BitcoinUnits.satoshi.settings, value: "satoshi" }, + { title: BitcoinUnits.milliBitcoin.settings, value: "milliBitcoin" }, + ], + onPick: async (currency) => await changeBitcoinUnit(currency as keyof IBitcoinUnits), + }); } } @@ -120,19 +135,31 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { const currentFiatUnit = useStoreState((store) => store.settings.fiatUnit); const changeFiatUnit = useStoreActions((store) => store.settings.changeFiatUnit); const onPressChangeFiatUnit = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: currentFiatUnit, - items: Object.entries(fiatRates).map(([currency]) => { - return { - label: currency, id: currency - } - }) - }); - if (selectedItem) { - await changeFiatUnit(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: currentFiatUnit, + items: Object.entries(fiatRates).map(([currency]) => { + return { + label: currency, id: currency + } + }) + }); + if (selectedItem) { + await changeFiatUnit(selectedItem.id); + } + } else { + navigation.navigate("ChangeFiatUnit", { + title: "Change fiat unit", + data: Object.entries(fiatRates).map(([currency]) => ({ + title: currency, + value: currency as keyof IFiatRates, + })), + onPick: async (currency) => await changeFiatUnit(currency as keyof IFiatRates), + searchEnabled: true, + }); } } @@ -147,6 +174,7 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { placeholder="0" value={bitcoinValue !== undefined ? bitcoinValue.toString() : undefined} keyboardType="numeric" + returnKeyType="done" onFocus={() => { setMathPadVisible(true); setCurrentlyFocusedInput("bitcoin"); @@ -154,6 +182,7 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { onBlur={() => { // setMathPadVisible(false); }} + inputAccessoryViewID="MATH_PAD" /> @@ -169,6 +198,7 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { placeholder="0.00" value={dollarValue !== undefined ? dollarValue.toString() : undefined} keyboardType="numeric" + returnKeyType="done" onFocus={() => { setMathPadVisible(true); setCurrentlyFocusedInput("fiat"); @@ -176,6 +206,7 @@ export default function ReceiveSetup({ navigation }: IReceiveSetupProps) { onBlur={() => { // setMathPadVisible(false); }} + inputAccessoryViewID="MATH_PAD" /> diff --git a/src/windows/Receive/index.tsx b/src/windows/Receive/index.tsx index 51472591a..7e00c3c3d 100644 --- a/src/windows/Receive/index.tsx +++ b/src/windows/Receive/index.tsx @@ -5,6 +5,8 @@ import ReceiveSetup from "./ReceiveSetup"; import ReceiveQr from "./ReceiveQr"; import { lnrpc } from "../../../proto/proto"; import useStackNavigationOptions from "../../hooks/useStackNavigationOptions"; +import SelectList, { ISelectListNavigationProps } from "../HelperWindows/SelectList"; +import { IFiatRates } from "../../state/Fiat"; const Stack = createStackNavigator(); @@ -13,6 +15,8 @@ export type ReceiveStackParamList = { ReceiveQr: { invoice: lnrpc.AddInvoiceResponse; }; + ChangeBitcoinUnit: ISelectListNavigationProps; + ChangeFiatUnit: ISelectListNavigationProps; } export default function ReceiveIndex() { @@ -21,11 +25,13 @@ export default function ReceiveIndex() { }; return ( - + + + ) } \ No newline at end of file diff --git a/src/windows/Send/SendCamera.tsx b/src/windows/Send/SendCamera.tsx index f1e6bc1af..1c730253c 100644 --- a/src/windows/Send/SendCamera.tsx +++ b/src/windows/Send/SendCamera.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from "react"; -import { View, StyleSheet, Alert, InteractionManager } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import { View, StyleSheet, Alert, InteractionManager, Platform } from "react-native"; +import Clipboard from "@react-native-community/clipboard"; import { Icon } from "native-base"; import { RNCamera, CameraType } from "react-native-camera"; import { StackNavigationProp } from "@react-navigation/stack"; @@ -13,6 +13,8 @@ import Camera from "../../components/Camera"; import { Chain } from "../../utils/build"; import { smallScreen } from "../../utils/device"; import { RouteProp } from "@react-navigation/native"; +import GoBackIcon from "../../components/GoBackIcon"; +import { PLATFORM } from "../../utils/constants"; interface ISendCameraProps { bolt11Invoice?: string; @@ -165,6 +167,9 @@ export default function SendCamera({ navigation, route }: ISendCameraProps) { {__DEV__ && } + {PLATFORM === "ios" && + + } ); @@ -176,24 +181,24 @@ const sendStyle = StyleSheet.create({ fontSize: 26, color: blixtTheme.light, padding: 4, - bottom: 7, - left: 8, + bottom: 10, + left: 13, }, paste: { position: "absolute", fontSize: 26, color: blixtTheme.light, padding: 4, - bottom: 8, - right: 8, + bottom: 12, + right: 8 + 8, }, pasteDebug: { position: "absolute", fontSize: 26, color: blixtTheme.light, padding: 4, - bottom: 8, - right: 64, + bottom: 12, + right: 64 + 9, }, transactionDetails: { height: "100%", diff --git a/src/windows/Send/SendConfirmation.tsx b/src/windows/Send/SendConfirmation.tsx index 5639c1c1a..e417be2e7 100644 --- a/src/windows/Send/SendConfirmation.tsx +++ b/src/windows/Send/SendConfirmation.tsx @@ -13,6 +13,7 @@ import { extractDescription } from "../../utils/NameDesc"; import Long from "long"; import useBalance from "../../hooks/useBalance"; import { hexToUint8Array, toast } from "../../utils"; +import { PLATFORM } from "../../utils/constants"; export interface ISendConfirmationProps { navigation: StackNavigationProp; @@ -145,6 +146,7 @@ export default function SendConfirmation({ navigation, route }: ISendConfirmatio placeholder="0" value={bitcoinValue} keyboardType="numeric" + returnKeyType="done" /> ), }); @@ -159,6 +161,7 @@ export default function SendConfirmation({ navigation, route }: ISendConfirmatio placeholder="0.00" value={dollarValue} keyboardType="numeric" + returnKeyType="done" /> ), }); @@ -181,7 +184,7 @@ export default function SendConfirmation({ navigation, route }: ISendConfirmatio formItems.push({ key: "MESSAGE", title: "Message", - component: (), + component: (), }); const canSend = ( diff --git a/src/windows/Send/index.tsx b/src/windows/Send/index.tsx index c1779ed9a..a1c3c80d1 100644 --- a/src/windows/Send/index.tsx +++ b/src/windows/Send/index.tsx @@ -29,7 +29,7 @@ export default function SendIndex({ route }: { route: RouteProp<{ "Send": {viaSw const viaSwipe = route.params?.viaSwipe; return ( - + diff --git a/src/windows/Settings/LightningNodeInfo.tsx b/src/windows/Settings/LightningNodeInfo.tsx index 5f7cf804f..962311c1f 100644 --- a/src/windows/Settings/LightningNodeInfo.tsx +++ b/src/windows/Settings/LightningNodeInfo.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { StyleSheet, ScrollView } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Body, Card, Text, CardItem, H1 } from "native-base"; import { fromUnixTime } from "date-fns"; diff --git a/src/windows/Settings/RemovePincodeAuth.tsx b/src/windows/Settings/RemovePincodeAuth.tsx index f006a61fe..8a670acd5 100644 --- a/src/windows/Settings/RemovePincodeAuth.tsx +++ b/src/windows/Settings/RemovePincodeAuth.tsx @@ -1,9 +1,11 @@ import React from "react"; -import { StatusBar } from "react-native"; import { useNavigation } from "@react-navigation/native"; +import { getStatusBarHeight } from "react-native-status-bar-height"; import { useStoreActions } from "../../state/store"; import Pincode from "../../components/Pincode"; +import { PLATFORM } from "../../utils/constants"; +import { Icon } from "native-base"; export default function RemovePincodeAuth() { const navigation = useNavigation(); @@ -20,6 +22,15 @@ export default function RemovePincodeAuth() { return ( <> + {PLATFORM === "ios" && + navigation.goBack()} + /> + } ) } diff --git a/src/windows/Settings/SetPincode.tsx b/src/windows/Settings/SetPincode.tsx index d0347e420..32e0a97da 100644 --- a/src/windows/Settings/SetPincode.tsx +++ b/src/windows/Settings/SetPincode.tsx @@ -1,12 +1,12 @@ import React, { useState } from "react"; -import { StyleSheet, StatusBar } from "react-native"; -import { Content } from "native-base"; +import { StyleSheet } from "react-native"; +import { Icon } from "native-base"; import { useNavigation } from "@react-navigation/native"; +import { getStatusBarHeight } from "react-native-status-bar-height"; -import Container from "../../components/Container"; import { useStoreActions } from "../../state/store"; import Pincode from "../../components/Pincode"; -import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; +import { PLATFORM } from "../../utils/constants"; enum States { enter = "Enter a pincode", @@ -36,6 +36,15 @@ export default function SetPincode() { return ( <> + {PLATFORM === "ios" && + navigation.goBack()} + /> + } ) } diff --git a/src/windows/Settings/Settings.tsx b/src/windows/Settings/Settings.tsx index ad9fdeaf3..054887ae2 100644 --- a/src/windows/Settings/Settings.tsx +++ b/src/windows/Settings/Settings.tsx @@ -1,24 +1,28 @@ import React, { useLayoutEffect } from "react"; -import { Alert, StyleSheet, NativeModules, ToastAndroid, PermissionsAndroid, Linking, StatusBar } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import { Alert, StyleSheet, NativeModules, ToastAndroid, PermissionsAndroid, Linking } from "react-native"; +import Clipboard from "@react-native-community/clipboard"; import DocumentPicker from "react-native-document-picker"; import { readFile } from "react-native-fs"; -import { CheckBox, Button, Body, Container, Icon, Header, Text, Title, Left, List, ListItem, Right, Toast } from "native-base"; +import ReactNativePermissions from 'react-native-permissions'; +import { CheckBox, Body, Container, Icon, Text, Left, List, ListItem, Right } from "native-base"; import DialogAndroid from "react-native-dialogs"; import { fromUnixTime } from "date-fns"; import { StackNavigationProp } from "@react-navigation/stack"; + import { SettingsStackParamList } from "./index"; import Content from "../../components/Content"; import { useStoreActions, useStoreState } from "../../state/store"; import { LoginMethods } from "../../state/Security"; -import { BitcoinUnits } from "../../utils/bitcoin-units"; +import { BitcoinUnits, IBitcoinUnits } from "../../utils/bitcoin-units"; import { verifyChanBackup } from "../../lndmobile/channel"; import { camelCaseToSpace, formatISO, toast } from "../../utils"; import { MapStyle } from "../../utils/google-maps"; import { Chain } from "../../utils/build"; import { OnchainExplorer } from "../../state/Settings"; import TorSvg from "./TorSvg"; +import { PLATFORM } from "../../utils/constants"; +import { IFiatRates } from "../../state/Fiat"; interface ISettingsProps { navigation: StackNavigationProp; @@ -79,20 +83,33 @@ export default function Settings({ navigation }: ISettingsProps) { const currentBitcoinUnit = useStoreState((store) => store.settings.bitcoinUnit); const changeBitcoinUnit = useStoreActions((store) => store.settings.changeBitcoinUnit); const onBitcoinUnitPress = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: currentBitcoinUnit, - items: [ - { label: BitcoinUnits.bitcoin.settings, id: "bitcoin" }, - { label: BitcoinUnits.bit.settings, id: "bit" }, - { label: BitcoinUnits.satoshi.settings, id: "satoshi" }, - { label: BitcoinUnits.milliBitcoin.settings, id: "milliBitcoin" }, - ] - }); - if (selectedItem) { - changeBitcoinUnit(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: currentBitcoinUnit, + items: [ + { label: BitcoinUnits.bitcoin.settings, id: "bitcoin" }, + { label: BitcoinUnits.bit.settings, id: "bit" }, + { label: BitcoinUnits.satoshi.settings, id: "satoshi" }, + { label: BitcoinUnits.milliBitcoin.settings, id: "milliBitcoin" }, + ] + }); + if (selectedItem) { + changeBitcoinUnit(selectedItem.id); + } + } else { + navigation.navigate("ChangeBitcoinUnit", { + title: "Change bitcoin unit", + data: [ + { title: BitcoinUnits.bitcoin.settings, value: "bitcoin" }, + { title: BitcoinUnits.bit.settings, value: "bit" }, + { title: BitcoinUnits.satoshi.settings, value: "satoshi" }, + { title: BitcoinUnits.milliBitcoin.settings, value: "milliBitcoin" }, + ], + onPick: async (currency) => await changeBitcoinUnit(currency as keyof IBitcoinUnits), + }); } } @@ -101,19 +118,31 @@ export default function Settings({ navigation }: ISettingsProps) { const currentFiatUnit = useStoreState((store) => store.settings.fiatUnit); const changeFiatUnit = useStoreActions((store) => store.settings.changeFiatUnit); const onFiatUnitPress = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: currentFiatUnit, - items: Object.entries(fiatRates).map(([currency]) => { - return { - label: currency, id: currency - } - }) - }); - if (selectedItem) { - changeFiatUnit(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: currentFiatUnit, + items: Object.entries(fiatRates).map(([currency]) => { + return { + label: currency, id: currency + } + }) + }); + if (selectedItem) { + changeFiatUnit(selectedItem.id); + } + } else { + navigation.navigate("ChangeFiatUnit", { + title: "Change fiat unit", + data: Object.entries(fiatRates).map(([currency]) => ({ + title: currency, + value: currency as keyof IFiatRates, + })), + onPick: async (currency) => await changeFiatUnit(currency as keyof IFiatRates), + searchEnabled: true, + }); } } @@ -121,15 +150,35 @@ export default function Settings({ navigation }: ISettingsProps) { const name = useStoreState((store) => store.settings.name); const changeName = useStoreActions((store) => store.settings.changeName); const onNamePress = async () => { - const { action, text } = await DialogAndroid.prompt( - "Name", - "Choose a name that will be used in transactions\n\n" + - "Your name will be seen in invoices to those who pay you as well as " + - "people you pay to.", { - defaultValue: name, - }); - if (action === DialogAndroid.actionPositive) { - await changeName(text || null); + if (PLATFORM === "android") { + const { action, text } = await DialogAndroid.prompt( + "Name", + "Choose a name that will be used in transactions\n\n" + + "Your name will be seen in invoices to those who pay you as well as " + + "people you pay to.", + { defaultValue: name }, + ); + if (action === DialogAndroid.actionPositive) { + await changeName(text || null); + } + } else { + Alert.prompt( + "Name", + "Choose a name that will be used in transactions\n\n" + + "Your name will be seen in invoices to those who pay you as well as " + + "people you pay to.", + [{ + text: "Cancel", + onPress: () => {}, + }, { + text: "Set name", + onPress: async (text) => { + await changeName(text ?? null); + }, + }], + "plain-text", + name ?? "", + ); } }; @@ -269,15 +318,22 @@ export default function Settings({ navigation }: ISettingsProps) { const onToggleTransactionGeolocationEnabled = async () => { if (!transactionGeolocationEnabled) { try { - const granted = await PermissionsAndroid.request( - PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, - ); - console.log(granted); - if (granted === PermissionsAndroid.RESULTS.GRANTED) { - console.log('Geolocation granted'); - } else { - console.log('Geolocation permission denied'); - return; + if (PLATFORM === "android") { + const granted = await PermissionsAndroid.request( + PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, + ); + console.log(granted); + if (granted === PermissionsAndroid.RESULTS.GRANTED) { + console.log('Geolocation granted'); + } else { + console.log('Geolocation permission denied'); + return; + } + } else if (PLATFORM === "ios") { + const r = await ReactNativePermissions.request(ReactNativePermissions.PERMISSIONS.IOS.LOCATION_WHEN_IN_USE); + if (r !== "granted") { + console.log("Error: " + r); + } } } catch (err) { console.warn(err); @@ -354,19 +410,30 @@ When you're done, you can copy the address code and/or open the link using Blixt const onchainExplorer = useStoreState((store) => store.settings.onchainExplorer); const changeOnchainExplorer = useStoreActions((store) => store.settings.changeOnchainExplorer); const onChangeOnchainExplorerPress = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: onchainExplorer, - items: Object.keys(OnchainExplorer).map((currOnchainExplorer) => ({ - id: currOnchainExplorer, - label: camelCaseToSpace(currOnchainExplorer), - }), - )}); - - if (selectedItem) { - await changeOnchainExplorer(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: onchainExplorer, + items: Object.keys(OnchainExplorer).map((currOnchainExplorer) => ({ + id: currOnchainExplorer, + label: camelCaseToSpace(currOnchainExplorer), + }), + )}); + + if (selectedItem) { + await changeOnchainExplorer(selectedItem.id); + } + } else { + navigation.navigate("ChangeOnchainExplorer", { + title: "Change on-chain explorer", + data: Object.keys(OnchainExplorer).map((currOnchainExplorer) => ({ + title: camelCaseToSpace(currOnchainExplorer), + value: currOnchainExplorer as keyof typeof OnchainExplorer, + })), + onPick: async (currency) => await changeOnchainExplorer(currency), + }); } }; @@ -486,7 +553,7 @@ Do you wish to proceed?`; - {transactionGeolocationEnabled && + {transactionGeolocationEnabled && PLATFORM === "android" && @@ -520,13 +587,15 @@ Do you wish to proceed?`; } } - - - - Export channel backup - - - {(name === "Hampus" || __DEV__ === true) && + {PLATFORM === "android" && + + + + Export channel backup + + + } + {(PLATFORM === "android" && (name === "Hampus" || __DEV__ === true)) && @@ -534,14 +603,16 @@ Do you wish to proceed?`; } - - - - Google Drive channel backup - Automatically backup channels to Google Drive - - - + {PLATFORM == "android" && + + + + Google Drive channel backup + Automatically backup channels to Google Drive + + + + } {googleDriveBackupEnabled && @@ -565,21 +636,23 @@ Do you wish to proceed?`; } - ToastAndroid.show("Status: " + workInfo + "\n"+ - "Last sync attempt: " + formatISO(fromUnixTime(lastScheduledSyncAttempt)) + "\n" + - "Last sync: " + formatISO(fromUnixTime(lastScheduledSync)), ToastAndroid.LONG)} - > - - - Scheduled chain sync - - Runs in background every 4 hours - - - - + {PLATFORM === "android" && + ToastAndroid.show("Status: " + workInfo + "\n"+ + "Last sync attempt: " + formatISO(fromUnixTime(lastScheduledSyncAttempt)) + "\n" + + "Last sync: " + formatISO(fromUnixTime(lastScheduledSync)), ToastAndroid.LONG)} + > + + + Scheduled chain sync + + Runs in background every 4 hours + + + + + } @@ -663,13 +736,15 @@ Do you wish to proceed?`; About - copyLog()}> - - - Copy log to local storage - Reached from /sdcard/BlixtWallet - - + {PLATFORM === "android" && + copyLog()}> + + + Copy log to local storage + Reached from /sdcard/BlixtWallet + + + } {(name === "Hampus" || __DEV__ === true) && navigation.navigate("DEV_CommandsX")}> @@ -708,15 +783,17 @@ Do you wish to proceed?`; - - - - - - Enable Tor - - - + {PLATFORM === "android" && + + + + + + Enable Tor + + + + } {torEnabled && @@ -737,12 +814,14 @@ Do you wish to proceed?`; Show startup info notifications - - - - LndMobile help center - - + {PLATFORM === "android" && + + + + LndMobile help center + + + } { const logLines = await NativeModules.LndMobile.tailLog(30); Alert.alert("Log", logLines); @@ -750,7 +829,7 @@ Do you wish to proceed?`; Read lnd log - {(name === "Hampus" || __DEV__ === true) && + {(PLATFORM === "android" && (name === "Hampus" || __DEV__ === true)) && <> navigation.navigate("KeysendTest")}> @@ -794,6 +873,7 @@ const style = StyleSheet.create({ // paddingLeft: 24, paddingTop: 24, paddingBottom: 16, + borderBottomWidth: 0, }, icon: { fontSize: 22, diff --git a/src/windows/Settings/TorShowOnionAddress.tsx b/src/windows/Settings/TorShowOnionAddress.tsx index 59704269f..36fdea95c 100644 --- a/src/windows/Settings/TorShowOnionAddress.tsx +++ b/src/windows/Settings/TorShowOnionAddress.tsx @@ -7,7 +7,7 @@ import { useStoreState, useStoreActions } from "../../state/store"; import QrCode from "../../components/QrCode"; import { smallScreen } from "../../utils/device"; import CopyAddress from "../../components/CopyAddress"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { toast } from "../../utils"; export default function TorShowOnionAddress() { diff --git a/src/windows/Settings/index.tsx b/src/windows/Settings/index.tsx index 0bb0e78bf..3d68433d7 100644 --- a/src/windows/Settings/index.tsx +++ b/src/windows/Settings/index.tsx @@ -10,6 +10,9 @@ import About from "./About"; import TorShowOnionAddress from "./TorShowOnionAddress"; import LndMobileHelpCenter from "./LndMobileHelpCenter"; import useStackNavigationOptions from "../../hooks/useStackNavigationOptions"; +import SelectList, { ISelectListNavigationProps } from "../HelperWindows/SelectList"; +import { IFiatRates } from "../../state/Fiat"; +import { OnchainExplorer } from "../../state/Settings"; const Stack = createStackNavigator(); @@ -22,6 +25,9 @@ export type SettingsStackParamList = { About: undefined; TorShowOnionAddress: undefined; LndMobileHelpCenter: undefined; + ChangeBitcoinUnit: ISelectListNavigationProps; + ChangeFiatUnit: ISelectListNavigationProps; + ChangeOnchainExplorer: ISelectListNavigationProps; } export default function SettingsIndex() { @@ -31,7 +37,7 @@ export default function SettingsIndex() { }; return ( - + @@ -40,6 +46,9 @@ export default function SettingsIndex() { + + + ); } diff --git a/src/windows/SyncInfo.tsx b/src/windows/SyncInfo.tsx index f3b0c5eea..38eef2582 100644 --- a/src/windows/SyncInfo.tsx +++ b/src/windows/SyncInfo.tsx @@ -1,7 +1,7 @@ import React from "react"; import { StyleSheet } from "react-native"; import { Body, Card, Text, CardItem, H1 } from "native-base"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Bar } from "react-native-progress"; import { useStoreState } from "../state/store"; diff --git a/src/windows/TransactionDetails.tsx b/src/windows/TransactionDetails.tsx index 0bb3ca22b..969f2a31d 100644 --- a/src/windows/TransactionDetails.tsx +++ b/src/windows/TransactionDetails.tsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; import { StyleSheet, Share, Alert, KeyboardAvoidingView } from "react-native"; import DialogAndroid from "react-native-dialogs"; -import Clipboard from "@react-native-community/react-native-clipboard"; +import Clipboard from "@react-native-community/clipboard"; import { Body, Card, Text, CardItem, H1, View, Button, Icon } from "native-base"; import { fromUnixTime } from "date-fns"; -import MapView, { PROVIDER_GOOGLE, Marker } from "react-native-maps"; +import MapView, { Marker, PROVIDER_DEFAULT } from "react-native-maps"; import Blurmodal from "../components/BlurModal"; import QrCode from "../components/QrCode"; @@ -18,6 +18,7 @@ import { MapStyle } from "../utils/google-maps"; import TextLink from "../components/TextLink"; import { ITransaction } from "../storage/database/transaction"; import { blixtTheme } from "../../native-base-theme/variables/commonColor"; +import { PLATFORM } from "../utils/constants"; interface IMetaDataProps { title: string; @@ -89,14 +90,29 @@ export default function TransactionDetails({ route, navigation }: ITransactionDe }; const onPressSetNote = async () => { - const result = await DialogAndroid.prompt(null, "Set a note for this transaction", { - defaultValue: transaction.note, - }); - if (result.action === DialogAndroid.actionPositive) { - await syncTransaction({ - ...transaction, - note: result.text?.trim() || null, + if (PLATFORM === "android") { + const result = await DialogAndroid.prompt(null, "Set a note for this transaction", { + defaultValue: transaction.note, }); + if (result.action === DialogAndroid.actionPositive) { + await syncTransaction({ + ...transaction, + note: result.text?.trim() || null, + }); + } + } else { + Alert.prompt( + "Note", + "Set a note for this transaction", + async (text) => { + await syncTransaction({ + ...transaction, + note: text || null, + }); + }, + "plain-text", + transaction.note ?? undefined, + ) } } @@ -113,7 +129,7 @@ export default function TransactionDetails({ route, navigation }: ITransactionDe if (currentScreen === "Overview") { return ( - + @@ -192,7 +208,7 @@ export default function TransactionDetails({ route, navigation }: ITransactionDe - { - console.log("onLoadStart"); - setJsInjected(false) - }} - onLoadProgress={(e) => { - if (!jsInjected && e.nativeEvent.progress > 0.75) { - webview.current!.injectJavaScript(injectJs()); - setJsInjected(true); - console.log("Injected"); - } - }} - onLoadEnd={() => requestAnimationFrame(() => setShowWebview(true))} - onNavigationStateChange={(e) => { - if (canGoBack !== (e.url !== initialUrl)) { - setCanGoBack(e.url !== initialUrl); - } - setUrl(e.url); - setUrlInput(e.url); - if (textInput.current) { - textInput.current.blur(); - } - }} - onError={(e) => console.log(e)} - style={style.webview} - /> - - - - - setUrl(INITIAL_URL)} onLongPress={() => ToastAndroid.show("Go back to store list", ToastAndroid.SHORT)}> - - - { - setUrlInput(text); + + + { + console.log("onLoadStart"); + setJsInjected(false) + }} + onLoadProgress={(e) => { + if (!jsInjected && e.nativeEvent.progress > 0.75) { + webview.current!.injectJavaScript(injectJs()); + setJsInjected(true); + console.log("Injected"); + } }} - onSubmitEditing={(e) => { - if (!e.nativeEvent.text.startsWith("https://") && !e.nativeEvent.text.startsWith("http://")) { - e.nativeEvent.text = "https://" + e.nativeEvent.text; + onLoadEnd={() => requestAnimationFrame(() => setShowWebview(true))} + onNavigationStateChange={(e) => { + if (canGoBack !== (e.url !== initialUrl)) { + setCanGoBack(e.url !== initialUrl); + } + setUrl(e.url); + setUrlInput(e.url); + if (textInput.current) { + textInput.current.blur(); } - setUrl(e.nativeEvent.text); }} - keyboardType="url" - placeholder="Type URL here..." + onError={(e) => console.log(e)} + style={style.webview} /> - webview.current!.reload()}> - - - setUrl(urlInput)}> - - - - + + + + + setUrl(INITIAL_URL)} onLongPress={() => ToastAndroid.show("Go back to store list", ToastAndroid.SHORT)}> + + + {PLATFORM === "ios" && + webview.current?.goBack()}> + + + } + { + setUrlInput(text); + }} + onSubmitEditing={(e) => { + if (!e.nativeEvent.text.startsWith("https://") && !e.nativeEvent.text.startsWith("http://")) { + e.nativeEvent.text = "https://" + e.nativeEvent.text; + } + setUrl(e.nativeEvent.text); + }} + keyboardType="url" + placeholder="Type URL here..." + /> + webview.current!.reload()}> + + + setUrl(urlInput)}> + + + + + ); } @@ -192,8 +201,8 @@ const style = StyleSheet.create({ justifyContent: "center", }, card: { - marginTop: (StatusBar.currentHeight ?? 0) + 8, - marginBottom: 12, + marginTop: (StatusBar.currentHeight ?? 0) + getStatusBarHeight(true) + 8, + marginBottom: 12 + (PLATFORM === "ios" ? 10 : 0), marginLeft: 9, marginRight: 9, paddingTop: 8, @@ -224,6 +233,7 @@ const style = StyleSheet.create({ paddingBottom: 5, paddingLeft: 12, paddingRight: 8, + color: blixtTheme.light, }, closeButton: { paddingLeft: 3, @@ -240,6 +250,10 @@ const style = StyleSheet.create({ paddingLeft: 5, paddingRight: 5, }, + goBackButton: { + paddingLeft: 2, + paddingRight: 6, + }, goButton: { paddingLeft: 5, paddingRight: 5, diff --git a/src/windows/Welcome/AddFunds.tsx b/src/windows/Welcome/AddFunds.tsx index b1e009cc9..61342e3bd 100644 --- a/src/windows/Welcome/AddFunds.tsx +++ b/src/windows/Welcome/AddFunds.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from "react"; import { StatusBar, StyleSheet, Share } from "react-native"; -import Clipboard from "@react-native-community/react-native-clipboard"; -import { View, Button, H1, Text, Toast, Spinner } from "native-base"; +import Clipboard from "@react-native-community/clipboard"; +import { View, Button, H1, Text, Spinner } from "native-base"; import { StackNavigationProp } from "@react-navigation/stack"; import { WelcomeStackParamList } from "./index"; @@ -12,7 +12,6 @@ import QrCode from "../../components/QrCode"; import style from "./style"; import { smallScreen } from "../../utils/device"; import Container from "../../components/Container"; -import Content from "../../components/Content"; import CopyAddress from "../../components/CopyAddress"; import { toast } from "../../utils"; @@ -53,13 +52,13 @@ export default function AddFunds({ navigation }: IProps) { return ( ); }; diff --git a/src/windows/Welcome/AlmostDone.tsx b/src/windows/Welcome/AlmostDone.tsx index 3b25e5cb1..114e9d980 100644 --- a/src/windows/Welcome/AlmostDone.tsx +++ b/src/windows/Welcome/AlmostDone.tsx @@ -1,21 +1,21 @@ import React from "react"; -import { StatusBar, StyleSheet, ToastAndroid } from "react-native"; +import { Alert, StatusBar, StyleSheet, ToastAndroid } from "react-native"; import { Body, Icon, Text, View, Button, H1, List, Left, ListItem, Right, CheckBox } from "native-base"; import DialogAndroid from "react-native-dialogs"; -import { createStackNavigator, StackNavigationProp } from "@react-navigation/stack"; +import { createStackNavigator, StackNavigationOptions, StackNavigationProp } from "@react-navigation/stack"; -import { WelcomeStackParamList } from "./index"; import { useStoreState, useStoreActions } from "../../state/store"; -import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; import style from "./style"; import { LoginMethods } from "../../state/Security"; import Container from "../../components/Container"; -import Content from "../../components/Content"; import SetPincode from "../Settings/SetPincode"; import RemovePincodeAuth from "../Settings/RemovePincodeAuth"; import ChangeFingerprintSettingsAuth from "../Settings/ChangeFingerprintSettingsAuth"; -import { toast } from "../../utils"; +import SelectList, { ISelectListNavigationProps } from "../HelperWindows/SelectList"; +import { PLATFORM } from "../../utils/constants"; +import { IFiatRates } from "../../state/Fiat"; +import useStackNavigationOptions from "../../hooks/useStackNavigationOptions"; interface IProps { navigation: StackNavigationProp; @@ -27,11 +27,31 @@ const AlmostDone = ({ navigation }: IProps) => { const name = useStoreState((store) => store.settings.name); const changeName = useStoreActions((store) => store.settings.changeName); const onNamePress = async () => { - const { action, text } = await DialogAndroid.prompt("Name", "Choose a name that will be shown to people who pay to you", { - defaultValue: name, - }); - if (action === DialogAndroid.actionPositive) { - await changeName(text); + if (PLATFORM === "android") { + const { action, text } = await DialogAndroid.prompt("Name", "Choose a name that will be shown to people who pay to you", { + defaultValue: name, + }); + if (action === DialogAndroid.actionPositive) { + await changeName(text); + } + } else if (PLATFORM === "ios") { + Alert.prompt( + "Name", + "Choose a name that will be used in transactions\n\n" + + "Your name will be seen in invoices to those who pay you as well as " + + "people you pay to.", + [{ + text: "Cancel", + onPress: () => {}, + }, { + text: "Set name", + onPress: async (text) => { + await changeName(text ?? null); + }, + }], + "plain-text", + name ?? "", + ); } }; @@ -48,40 +68,54 @@ const AlmostDone = ({ navigation }: IProps) => { } // Fiat unit + const fiatRates = useStoreState((store) => store.fiat.fiatRates); const currentFiatUnit = useStoreState((store) => store.settings.fiatUnit); const changeFiatUnit = useStoreActions((store) => store.settings.changeFiatUnit); const onFiatUnitPress = async () => { - const { selectedItem } = await DialogAndroid.showPicker(null, null, { - positiveText: null, - negativeText: "Cancel", - type: DialogAndroid.listRadio, - selectedId: currentFiatUnit, - items: [ - { label: "USD", id: "USD" }, - { label: "EUR", id: "EUR" }, - { label: "SEK", id: "SEK" }, - { label: "JPY", id: "JPY" }, - { label: "CNY", id: "CNY" }, - { label: "SGD", id: "SGD" }, - { label: "HKD", id: "HKD" }, - { label: "CAD", id: "CAD" }, - { label: "NZD", id: "NZD" }, - { label: "AUD", id: "AUD" }, - { label: "CLP", id: "CLP" }, - { label: "GBP", id: "GBP" }, - { label: "DKK", id: "DKK" }, - { label: "ISK", id: "ISK" }, - { label: "CHF", id: "CHF" }, - { label: "BRL", id: "BRL" }, - { label: "RUB", id: "RUB" }, - { label: "PLN", id: "PLN" }, - { label: "THB", id: "THB" }, - { label: "KRW", id: "KRW" }, - { label: "TWD", id: "TWD" }, - ] - }); - if (selectedItem) { - changeFiatUnit(selectedItem.id); + if (PLATFORM === "android") { + const { selectedItem } = await DialogAndroid.showPicker(null, null, { + positiveText: null, + negativeText: "Cancel", + type: DialogAndroid.listRadio, + selectedId: currentFiatUnit, + items: [ + // TODO fiat rates + { label: "USD", id: "USD" }, + { label: "EUR", id: "EUR" }, + { label: "SEK", id: "SEK" }, + { label: "JPY", id: "JPY" }, + { label: "CNY", id: "CNY" }, + { label: "SGD", id: "SGD" }, + { label: "HKD", id: "HKD" }, + { label: "CAD", id: "CAD" }, + { label: "NZD", id: "NZD" }, + { label: "AUD", id: "AUD" }, + { label: "CLP", id: "CLP" }, + { label: "GBP", id: "GBP" }, + { label: "DKK", id: "DKK" }, + { label: "ISK", id: "ISK" }, + { label: "CHF", id: "CHF" }, + { label: "BRL", id: "BRL" }, + { label: "RUB", id: "RUB" }, + { label: "PLN", id: "PLN" }, + { label: "THB", id: "THB" }, + { label: "KRW", id: "KRW" }, + { label: "TWD", id: "TWD" }, + ] + }); + if (selectedItem) { + changeFiatUnit(selectedItem.id); + } + } else { + navigation.navigate("ChangeFiatUnit", { + title: "Change fiat unit", + data: Object.entries(fiatRates).map(([currency]) => ({ + title: currency, + value: currency as keyof IFiatRates, + })), + onPick: async (currency) => await changeFiatUnit(currency as keyof IFiatRates), + searchEnabled: true, + }); } } @@ -100,13 +134,13 @@ const AlmostDone = ({ navigation }: IProps) => { return ( ); } @@ -201,14 +235,21 @@ export type AlmostDoneStackParamList = { RemovePincodeAuth: undefined; SetPincode: undefined; ChangeFingerprintSettingsAuth: undefined; + ChangeFiatUnit: ISelectListNavigationProps; } export default () => { + const screenOptions: StackNavigationOptions = { + ...useStackNavigationOptions(), + animationEnabled: false, + }; + return ( - + + ); }; diff --git a/src/windows/Welcome/Confirm.tsx b/src/windows/Welcome/Confirm.tsx index a9ab24cc6..68344d3ca 100644 --- a/src/windows/Welcome/Confirm.tsx +++ b/src/windows/Welcome/Confirm.tsx @@ -5,11 +5,11 @@ import { StackNavigationProp } from "@react-navigation/stack"; import { WelcomeStackParamList } from "./index"; import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; -import { useStoreState, useStoreActions } from "../../state/store"; +import { useStoreActions } from "../../state/store"; import style from "./style"; import { smallScreen } from "../../utils/device"; import Container from "../../components/Container"; -import Content from "../../components/Content"; +import { PLATFORM } from "../../utils/constants"; interface IProps { navigation: StackNavigationProp; @@ -63,7 +63,11 @@ export default function Confirm({ navigation }: IProps) { return; } - navigation.replace("GoogleDriveBackup"); + if (PLATFORM === "android") { + navigation.replace("GoogleDriveBackup"); + } else { + navigation.replace("AlmostDone") + } }; const onBackspacePress = () => { @@ -82,13 +86,13 @@ export default function Confirm({ navigation }: IProps) { return ( ); }; diff --git a/src/windows/Welcome/GoogleDriveBackup.tsx b/src/windows/Welcome/GoogleDriveBackup.tsx index e3e5c67e3..d5094558b 100644 --- a/src/windows/Welcome/GoogleDriveBackup.tsx +++ b/src/windows/Welcome/GoogleDriveBackup.tsx @@ -1,21 +1,12 @@ import React from "react"; -import { StatusBar, StyleSheet, ToastAndroid } from "react-native"; -import { Body, Icon, Text, View, Button, H1, List, Left, ListItem, Right, CheckBox } from "native-base"; -import DialogAndroid from "react-native-dialogs"; -import { createStackNavigator, StackNavigationProp } from "@react-navigation/stack"; +import { StatusBar, StyleSheet, } from "react-native"; +import { Icon, Text, View, Button, H1 } from "native-base"; +import { StackNavigationProp } from "@react-navigation/stack"; import { WelcomeStackParamList } from "./index"; import { useStoreState, useStoreActions } from "../../state/store"; -import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; import style from "./style"; -import { LoginMethods } from "../../state/Security"; import Container from "../../components/Container"; -import Content from "../../components/Content"; - -import SetPincode from "../Settings/SetPincode"; -import RemovePincodeAuth from "../Settings/RemovePincodeAuth"; -import ChangeFingerprintSettingsAuth from "../Settings/ChangeFingerprintSettingsAuth"; -import { toast } from "../../utils"; interface IProps { navigation: StackNavigationProp; @@ -42,13 +33,13 @@ export default function GoogleDriveBackup({ navigation }: IProps) { return ( ); } diff --git a/src/windows/Welcome/Restore.tsx b/src/windows/Welcome/Restore.tsx index 6260feb4c..be745c1f9 100644 --- a/src/windows/Welcome/Restore.tsx +++ b/src/windows/Welcome/Restore.tsx @@ -9,10 +9,11 @@ import { WelcomeStackParamList } from "./index"; import { useStoreActions, useStoreState } from "../../state/store"; import { blixtTheme } from "../../../native-base-theme/variables/commonColor"; import Container from "../../components/Container"; -import Content from "../../components/Content"; import { ICreateWalletPayload } from "../../state"; +import { getStatusBarHeight } from "react-native-status-bar-height"; +import { PLATFORM } from "../../utils/constants"; -const iconTopPadding = StatusBar.currentHeight ?? 0; +const iconTopPadding = (StatusBar.currentHeight ?? 0) + getStatusBarHeight(true); interface IProps { navigation: StackNavigationProp; @@ -123,7 +124,7 @@ export default function Restore({ navigation }: IProps) { networkActivityIndicatorVisible={true} barStyle="light-content" /> - +