From 2d9c1daee7a4c263b9a79834cccdc9ff2aa88de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Rodriguez=20V=C3=A9lez?= Date: Tue, 3 Nov 2020 15:23:34 -0500 Subject: [PATCH] ADD: Large iOS widget --- class/deeplink-schema-match.js | 56 +- ios/BlueWallet.xcodeproj/project.pbxproj | 578 +----------------- ios/MarketWidgetExtension.entitlements | 4 - .../WalletInformationAndMarketWidget.swift | 53 +- screen/receive/details.js | 4 +- screen/settings/encryptStorage.js | 11 +- screen/wallets/transactions.js | 4 +- 7 files changed, 114 insertions(+), 596 deletions(-) diff --git a/class/deeplink-schema-match.js b/class/deeplink-schema-match.js index 3cdf45c74..720d075a1 100644 --- a/class/deeplink-schema-match.js +++ b/class/deeplink-schema-match.js @@ -29,7 +29,7 @@ class DeeplinkSchemaMatch { * @param event {{url: string}} URL deeplink as passed to app, e.g. `bitcoin:bc1qh6tf004ty7z7un2v5ntu4mkf630545gvhs45u7?amount=666&label=Yo` * @param completionHandler {function} Callback that returns [string, params: object] */ - static navigationRouteFor(event, completionHandler, context = {wallets: [], saveToDisk: () => {}, addWallet: () => {}}) { + static navigationRouteFor(event, completionHandler, context = { wallets: [], saveToDisk: () => {}, addWallet: () => {} }) { if (event.url === null) { return; } @@ -39,8 +39,54 @@ class DeeplinkSchemaMatch { if (event.url.toLowerCase().startsWith('bluewallet:bitcoin:') || event.url.toLowerCase().startsWith('bluewallet:lightning:')) { event.url = event.url.substring(11); + } else if (event.url.toLocaleLowerCase().startsWith('bluewallet://widget?action=')) { + event.url = event.url.substring('bluewallet://'.length); } - if (DeeplinkSchemaMatch.isPossiblySignedPSBTFile(event.url)) { + + if (DeeplinkSchemaMatch.isWidgetAction(event.url)) { + if (context.wallets.length >= 0) { + const wallet = context.wallets[0]; + const action = event.url.split('widget?action=')[1]; + const secret = wallet.getSecret(); + if (wallet.chain === Chain.ONCHAIN) { + if (action === 'openSend') { + completionHandler([ + 'SendDetailsRoot', + { + screen: 'SendDetails', + params: { + secret, + }, + }, + ]); + } else if (action === 'openReceive') { + completionHandler([ + { + routeName: 'ReceiveDetails', + params: { + walletID: wallet.getID(), + }, + name: 'ReceiveDetails', + }, + ]); + } + } else if (wallet.chain === Chain.OFFCHAIN) { + if (action === 'openSend') { + completionHandler([ + 'ScanLndInvoiceRoot', + { + screen: 'ScanLndInvoice', + params: { + secret, + }, + }, + ]); + } else if (action === 'openReceive') { + completionHandler(['LNDCreateInvoiceRoot', { screen: 'LNDCreateInvoice', params: { fromWallet: wallet } }]); + } + } + } + } else if (DeeplinkSchemaMatch.isPossiblySignedPSBTFile(event.url)) { RNFS.readFile(decodeURI(event.url)) .then(file => { if (file) { @@ -269,7 +315,11 @@ class DeeplinkSchemaMatch { } static isLnUrl(text) { - return Lnurl.isLnurl(text) + return Lnurl.isLnurl(text); + } + + static isWidgetAction(text) { + return text.startsWith('widget?action='); } static isSafelloRedirect(event) { diff --git a/ios/BlueWallet.xcodeproj/project.pbxproj b/ios/BlueWallet.xcodeproj/project.pbxproj index dc8cc02dc..dbc2ea0db 100644 --- a/ios/BlueWallet.xcodeproj/project.pbxproj +++ b/ios/BlueWallet.xcodeproj/project.pbxproj @@ -7,16 +7,9 @@ objects = { /* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* BlueWalletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BlueWalletTests.m */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 267263A381F944A9AAB0FA0A /* libRNSentry-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F11DD40F6E9A4F13B3410B94 /* libRNSentry-tvOS.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 */; }; - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; }; - 2DCD954D1E0B4F2C00145EB5 /* BlueWalletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BlueWalletTests.m */; }; 32002D9D236FAA9F00B93396 /* TodayDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32002D9C236FAA9F00B93396 /* TodayDataStore.swift */; }; 3271B0AB236E2E0700DA766F /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3271B0AA236E2E0700DA766F /* NotificationCenter.framework */; platformFilter = ios; }; 3271B0AE236E2E0700DA766F /* TodayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3271B0AD236E2E0700DA766F /* TodayViewController.swift */; }; @@ -64,7 +57,6 @@ 764B49B1420D4AEB8109BF62 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B468CC34D5B41F3950078EF /* libsqlite3.0.tbd */; }; 782F075B5DD048449E2DECE9 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B9D9B3A7B2CB4255876B67AF /* libz.tbd */; }; 906451CAD44154C2950030EC /* libPods-BlueWallet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 731973BA0AC6EA78962CE5B6 /* libPods-BlueWallet.a */; }; - B058E2132B704E9E874BDB29 /* libRNRandomBytes-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 253243E162CE4822BF3A3B7D /* libRNRandomBytes-tvOS.a */; }; B40D4E34225841EC00428FCC /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B40D4E32225841EC00428FCC /* Interface.storyboard */; }; B40D4E36225841ED00428FCC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B40D4E35225841ED00428FCC /* Assets.xcassets */; }; B40D4E3D225841ED00428FCC /* BlueWalletWatch Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = B40D4E3C225841ED00428FCC /* BlueWalletWatch Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -83,29 +75,11 @@ B43D037B225847C500FBAA95 /* TransactionTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43D0375225847C500FBAA95 /* TransactionTableRow.swift */; }; B43D037C225847C500FBAA95 /* Wallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43D0376225847C500FBAA95 /* Wallet.swift */; }; B43D037D225847C500FBAA95 /* WalletInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43D0377225847C500FBAA95 /* WalletInformation.swift */; }; - B44D665E562B4F289F09D327 /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F1F51A83D044F3BB26A35FC /* libRNSVG-tvOS.a */; }; B4EE583C226703320003363C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B40D4E35225841ED00428FCC /* Assets.xcassets */; }; - D6ED210441144516A0355B4A /* libRNVectorIcons-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E6B44173A8854B6D85D7F933 /* libRNVectorIcons-tvOS.a */; }; - ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; }; - FBB34FB8F9B248A89346FE61 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB3338E347F4AFAA8C85C04 /* libRNDeviceInfo-tvOS.a */; }; FD633BEADAD0865BD993E7EA /* (null) in Frameworks */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = BlueWallet; - }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "BlueWallet-tvOS"; - }; 3271B0B3236E2E0700DA766F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -191,7 +165,6 @@ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00E356EE1AD99517003FC87E /* BlueWalletTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlueWalletTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* BlueWalletTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BlueWalletTests.m; sourceTree = ""; }; 04466491BA2D4876A71222FC /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; @@ -205,8 +178,6 @@ 1DD63E4B5C8344BB9880C9EC /* libReactNativePermissions.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libReactNativePermissions.a; sourceTree = ""; }; 253243E162CE4822BF3A3B7D /* libRNRandomBytes-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNRandomBytes-tvOS.a"; sourceTree = ""; }; 2654894D4DE44A4C8F71773D /* CoreData.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - 2D02E47B1E0B4A5D006451C7 /* BlueWallet-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BlueWallet-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* BlueWallet-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BlueWallet-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; 2FCC2CD6FF4448229D0CE0F3 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; 32002D9C236FAA9F00B93396 /* TodayDataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayDataStore.swift; sourceTree = ""; }; @@ -369,13 +340,6 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -386,27 +350,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */, - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */, - FBB34FB8F9B248A89346FE61 /* libRNDeviceInfo-tvOS.a in Frameworks */, - B058E2132B704E9E874BDB29 /* libRNRandomBytes-tvOS.a in Frameworks */, - 267263A381F944A9AAB0FA0A /* libRNSentry-tvOS.a in Frameworks */, - D6ED210441144516A0355B4A /* libRNVectorIcons-tvOS.a in Frameworks */, - B44D665E562B4F289F09D327 /* libRNSVG-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3271B0A6236E2E0700DA766F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -637,9 +580,6 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* BlueWallet.app */, - 00E356EE1AD99517003FC87E /* BlueWalletTests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* BlueWallet-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* BlueWallet-tvOSTests.xctest */, B40D4E30225841EC00428FCC /* BlueWalletWatch.app */, B40D4E3C225841ED00428FCC /* BlueWalletWatch Extension.appex */, 3271B0A9236E2E0700DA766F /* BlueWallet - Bitcoin Price.appex */, @@ -745,24 +685,6 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* BlueWalletTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BlueWalletTests" */; - buildPhases = ( - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = BlueWalletTests; - productName = BlueWalletTests; - productReference = 00E356EE1AD99517003FC87E /* BlueWalletTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; 13B07F861A680F5B00A75B9A /* BlueWallet */ = { isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BlueWallet" */; @@ -791,42 +713,6 @@ productReference = 13B07F961A680F5B00A75B9A /* BlueWallet.app */; productType = "com.apple.product-type.application"; }; - 2D02E47A1E0B4A5D006451C7 /* BlueWallet-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlueWallet-tvOS" */; - buildPhases = ( - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "BlueWallet-tvOS"; - productName = "BlueWallet-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* BlueWallet-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* BlueWallet-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlueWallet-tvOSTests" */; - buildPhases = ( - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, - ); - name = "BlueWallet-tvOSTests"; - productName = "BlueWallet-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* BlueWallet-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; 3271B0A8236E2E0700DA766F /* TodayExtension */ = { isa = PBXNativeTarget; buildConfigurationList = 3271B0B9236E2E0700DA766F /* Build configuration list for PBXNativeTarget "TodayExtension" */; @@ -946,11 +832,6 @@ LastUpgradeCheck = 1020; ORGANIZATIONNAME = BlueWallet; TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - DevelopmentTeam = A7W54YZ4WU; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; 13B07F861A680F5B00A75B9A = { DevelopmentTeam = A7W54YZ4WU; LastSwiftMigration = 1030; @@ -961,22 +842,9 @@ }; }; }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = A7W54YZ4WU; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - DevelopmentTeam = A7W54YZ4WU; - ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; - }; 3271B0A8236E2E0700DA766F = { CreatedOnToolsVersion = 11.2; - DevelopmentTeam = A7W54YZ4WU; LastSwiftMigration = 1130; - ProvisioningStyle = Automatic; }; 6D9A2E01254BA347007B5B82 = { CreatedOnToolsVersion = 12.1; @@ -1045,9 +913,6 @@ projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* BlueWallet */, - 00E356ED1AD99517003FC87E /* BlueWalletTests */, - 2D02E47A1E0B4A5D006451C7 /* BlueWallet-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* BlueWallet-tvOSTests */, B40D4E2F225841EC00428FCC /* BlueWalletWatch */, B40D4E3B225841ED00428FCC /* BlueWalletWatch Extension */, 3271B0A8236E2E0700DA766F /* TodayExtension */, @@ -1059,13 +924,6 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F8E1A680F5B00A75B9A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1075,21 +933,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3271B0A7236E2E0700DA766F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1170,20 +1013,6 @@ shellPath = /bin/sh; shellScript = "export SENTRY_PROPERTIES=sentry.properties\n../node_modules/@sentry/cli/bin/sentry-cli upload-dsym"; }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh"; - }; 6F7747C31A9EE6DDC5108476 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1292,14 +1121,6 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* BlueWalletTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F871A680F5B00A75B9A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1310,23 +1131,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* BlueWalletTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3271B0A5236E2E0700DA766F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1402,16 +1206,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* BlueWallet */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* BlueWallet-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; - }; 3271B0B4236E2E0700DA766F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3271B0A8236E2E0700DA766F /* TodayExtension */; @@ -1509,111 +1303,6 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = A7W54YZ4WU; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = BlueWalletTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlueWallet.app/BlueWallet"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = A7W54YZ4WU; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = BlueWalletTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlueWallet.app/BlueWallet"; - }; - name = Release; - }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9B3A324B70BC8C6D9314FD4F /* Pods-BlueWallet.debug.xcconfig */; @@ -1699,234 +1388,6 @@ }; name = Release; }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - 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; - DEVELOPMENT_TEAM = A7W54YZ4WU; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = "BlueWallet-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlueWallet-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - 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"; - DEVELOPMENT_TEAM = A7W54YZ4WU; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = "BlueWallet-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlueWallet-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - 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; - DEVELOPMENT_TEAM = A7W54YZ4WU; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = "BlueWallet-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlueWallet-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlueWallet-tvOS.app/BlueWallet-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Debug; - }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - 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"; - DEVELOPMENT_TEAM = A7W54YZ4WU; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/../node_modules/react-native-camera/ios/**", - "$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo", - "$(SRCROOT)/../node_modules/react-native-fs/**", - "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", - "$(SRCROOT)/../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/**", - "$(SRCROOT)/../node_modules/react-native-haptic-feedback/ios", - "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", - "$(SRCROOT)/../node_modules/react-native-permissions/ios/**", - "$(SRCROOT)/../node_modules/react-native-randombytes", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-sentry/ios/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", - "$(SRCROOT)/../node_modules/react-native-webview/ios", - "$(SRCROOT)/../node_modules/react-native-image-picker/ios", - "$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage", - "$(SRCROOT)/../node_modules/react-native-tcp/ios/**", - "$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - "$(SRCROOT)/../node_modules/@react-native-community/slider/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-rate/ios", - "$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot", - ); - INFOPLIST_FILE = "BlueWallet-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.BlueWallet-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlueWallet-tvOS.app/BlueWallet-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Release; - }; 3271B0B7236E2E0700DA766F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1937,8 +1398,8 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "TodayExtension/BlueWallet - Bitcoin Price.entitlements"; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 239; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = A7W54YZ4WU; @@ -1954,7 +1415,7 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension; PRODUCT_NAME = "BlueWallet - Bitcoin Price"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = io.bluewallet.bluewallet.TodayExtension; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; @@ -1974,8 +1435,8 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "TodayExtension/BlueWallet - Bitcoin Price.entitlements"; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 239; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -1991,7 +1452,7 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = io.bluewallet.bluewallet.TodayExtension; PRODUCT_NAME = "BlueWallet - Bitcoin Price"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = io.bluewallet.bluewallet.TodayExtension; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SWIFT_OPTIMIZATION_LEVEL = "-O"; @@ -2491,15 +1952,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BlueWalletTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BlueWallet" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2509,24 +1961,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlueWallet-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "BlueWallet-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 3271B0B9236E2E0700DA766F /* Build configuration list for PBXNativeTarget "TodayExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ios/MarketWidgetExtension.entitlements b/ios/MarketWidgetExtension.entitlements index 8030e4904..86bfd6c51 100644 --- a/ios/MarketWidgetExtension.entitlements +++ b/ios/MarketWidgetExtension.entitlements @@ -2,13 +2,9 @@ - com.apple.security.app-sandbox - com.apple.security.application-groups group.io.bluewallet.bluewallet - com.apple.security.network.client - diff --git a/ios/WalletInformationWidget/Widgets/WalletInformationAndMarketWidget/WalletInformationAndMarketWidget.swift b/ios/WalletInformationWidget/Widgets/WalletInformationAndMarketWidget/WalletInformationAndMarketWidget.swift index 79cf3aa2d..9288bb413 100644 --- a/ios/WalletInformationWidget/Widgets/WalletInformationAndMarketWidget/WalletInformationAndMarketWidget.swift +++ b/ios/WalletInformationWidget/Widgets/WalletInformationAndMarketWidget/WalletInformationAndMarketWidget.swift @@ -51,12 +51,13 @@ struct SimpleEntry: TimelineEntry { } struct WalletInformationAndMarketWidgetEntryView : View { + @Environment(\.widgetFamily) var family var entry: Provider.Entry var formattedBalance: String { - let numberFormatter = NumberFormatter() - numberFormatter.locale = Locale(identifier: WidgetAPI.getUserPreferredCurrencyLocale()) - numberFormatter.numberStyle = .currency - numberFormatter.numberStyle = .currency + let numberFormatter = NumberFormatter() + numberFormatter.locale = Locale(identifier: WidgetAPI.getUserPreferredCurrencyLocale()) + numberFormatter.numberStyle = .currency + numberFormatter.numberStyle = .currency let amount = numberFormatter.string(from: NSNumber(value: ((entry.allWalletsBalance.balance / 100000000) * entry.marketData.rate))) ?? "" return amount } @@ -65,7 +66,7 @@ struct WalletInformationAndMarketWidgetEntryView : View { return "never" } let forDate = Date(timeIntervalSince1970: (TimeInterval(entry.allWalletsBalance.latestTransactionTime) / 1000)) - let dateFormatter = RelativeDateTimeFormatter() + let dateFormatter = RelativeDateTimeFormatter() dateFormatter.locale = Locale(identifier: Locale.current.identifier) dateFormatter.dateTimeStyle = .numeric return dateFormatter.localizedString(for: forDate, relativeTo: Date()) @@ -76,13 +77,13 @@ struct WalletInformationAndMarketWidgetEntryView : View { VStack(alignment: .leading, spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, content: { Text(entry.allWalletsBalance.formattedBalanceBTC).font(Font.system(size: 15, weight: .medium, design: .default)).foregroundColor(.textColorLightGray).lineLimit(1).minimumScaleFactor(0.01) Text(formattedBalance).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:28, weight: .bold, design: .default)).minimumScaleFactor(0.01) - }).padding() + }) Spacer() VStack(content: { VStack(alignment: .leading, spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, content: { Text("Latest transaction").font(Font.system(size: 11, weight: .regular, design: .default)).foregroundColor(.textColorLightGray) Text(formattedLatestTransactionTime).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:13, weight: .regular, design: .default)).minimumScaleFactor(0.01) - }).padding() + }) }) }).background(Color.widgetBackground) } @@ -120,11 +121,41 @@ struct WalletInformationAndMarketWidgetEntryView : View { }) } + var SendReceiveButtons: some View { + VStack(alignment: .center, spacing: nil, content: { + Spacer() + HStack(alignment: .center, spacing: nil, content: { + Spacer() + HStack( content: { + Link("receive", destination: URL(string: "bluewallet://widget?action=openReceive")!).frame(minWidth: 144, maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, minHeight: 32, maxHeight: 32, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/).padding(EdgeInsets(top: 2, leading: 4, bottom: 2, trailing: 4)).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:11, weight: .semibold, design: .default)).background(Color.widgetBackground).overlay( + RoundedRectangle(cornerRadius: 4.0) + .stroke(Color.widgetBackground, lineWidth: 4.0)) + }) + Spacer() + Link("send", destination: URL(string: "bluewallet://widget?action=openSend")!).frame(minWidth: 144, maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, minHeight: 32, maxHeight: 32, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/).padding(EdgeInsets(top: 2, leading: 4, bottom: 2, trailing: 4)).lineLimit(1).foregroundColor(.textColor).font(Font.system(size:11, weight: .semibold, design: .default)).background(Color.widgetBackground).overlay( + RoundedRectangle(cornerRadius: 4.0) + .stroke(Color.widgetBackground, lineWidth: 4.0)) + Spacer() + }) + Spacer() + }) + } + var body: some View { + if family == .systemLarge { + VStack(alignment: .leading, spacing: nil, content: { + WalletBalance.padding() + MarketStack.background(Color(.lightGray).opacity(0.77)) + SendReceiveButtons.background(Color(.lightGray).opacity(0.77)) + }).background(Color.widgetBackground) + + } else { HStack(content: { - WalletBalance - MarketStack + WalletBalance.padding().background(Color.widgetBackground) + MarketStack }).background(Color(.lightGray).opacity(0.77)) + + } } } @@ -137,7 +168,7 @@ struct WalletInformationAndMarketWidget: Widget { WalletInformationAndMarketWidgetEntryView(entry: entry) } .configurationDisplayName("Wallet and Market") - .description("View your total wallet balance and network prices.").supportedFamilies([.systemMedium]) + .description("View your total wallet balance and network prices.").supportedFamilies([.systemMedium, .systemLarge]) } } @@ -145,5 +176,7 @@ struct WalletInformationAndMarketWidget_Previews: PreviewProvider { static var previews: some View { WalletInformationAndMarketWidgetEntryView(entry: SimpleEntry(date: Date(), marketData: MarketData(nextBlock: "26", sats: "9 134", price: "$10,000", rate: 0), allWalletsBalance: WalletData(balance: 10000, latestTransactionTime: 1568804029000))) .previewContext(WidgetPreviewContext(family: .systemMedium)) + WalletInformationAndMarketWidgetEntryView(entry: SimpleEntry(date: Date(), marketData: MarketData(nextBlock: "26", sats: "9 134", price: "$10,000", rate: 0), allWalletsBalance: WalletData(balance: 10000, latestTransactionTime: 1568804029000))) + .previewContext(WidgetPreviewContext(family: .systemLarge)) } } diff --git a/screen/receive/details.js b/screen/receive/details.js index 1fcc3a7f9..0c6361f77 100644 --- a/screen/receive/details.js +++ b/screen/receive/details.js @@ -39,9 +39,9 @@ import Notifications from '../../blue_modules/notifications'; const currency = require('../../blue_modules/currency'); const ReceiveDetails = () => { - const { secret } = useRoute().params; + const { walletID } = useRoute().params; const { wallets, saveToDisk, sleep } = useContext(BlueStorageContext); - const wallet = wallets.find(w => w.getSecret() === secret); + const wallet = wallets.find(w => w.getID() === walletID); const [isHandOffUseEnabled, setIsHandOffUseEnabled] = useState(false); const [address, setAddress] = useState(''); const [customLabel, setCustomLabel] = useState(); diff --git a/screen/settings/encryptStorage.js b/screen/settings/encryptStorage.js index 8f41897e2..0108980fb 100644 --- a/screen/settings/encryptStorage.js +++ b/screen/settings/encryptStorage.js @@ -20,9 +20,14 @@ import { BlueStorageContext } from '../../blue_modules/storage-context'; const prompt = require('../../blue_modules/prompt'); const EncryptStorage = () => { - const { isStorageEncrypted, setResetOnAppUninstallTo, encryptStorage, isDeleteWalletAfterUninstallEnabled, decryptStorage, saveToDisk } = useContext( - BlueStorageContext, - ); + const { + isStorageEncrypted, + setResetOnAppUninstallTo, + encryptStorage, + isDeleteWalletAfterUninstallEnabled, + decryptStorage, + saveToDisk, + } = useContext(BlueStorageContext); const [isLoading, setIsLoading] = useState(true); const [deleteWalletsAfterUninstall, setDeleteWalletsAfterUninstall] = useState(false); const [biometrics, setBiometrics] = useState({ isDeviceBiometricCapable: false, isBiometricsEnabled: false, biometricsType: '' }); diff --git a/screen/wallets/transactions.js b/screen/wallets/transactions.js index eaf888373..3a307c406 100644 --- a/screen/wallets/transactions.js +++ b/screen/wallets/transactions.js @@ -284,7 +284,7 @@ const WalletTransactions = () => { setIsManageFundsModalVisible(false); navigate('ReceiveDetails', { - secret: wallet.current.getSecret(), + walletID: wallet.current.getID(), }); }} title={loc.lnd.refill_external} @@ -640,7 +640,7 @@ const WalletTransactions = () => { if (wallet.current.chain === Chain.OFFCHAIN) { navigate('LNDCreateInvoiceRoot', { screen: 'LNDCreateInvoice', params: { fromWallet: wallet.current } }); } else { - navigate('ReceiveDetails', { secret: wallet.current.getSecret() }); + navigate('ReceiveDetails', { walletID: wallet.current.getID() }); } }} icon={