Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZEUS-2683: Storage: migrate from react-native-encrypted-storage to react-native-keychain #2687

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 22 additions & 28 deletions backends/LNC/credentialStore.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import EncryptedStorage from 'react-native-encrypted-storage';
import Storage from '../../storage';
import { CredentialStore } from '../../zeus_modules/@lightninglabs/lnc-rn';
import hashjs from 'hash.js';

const STORAGE_KEY = 'lnc-rn';
const LNC_STORAGE_KEY = 'lnc-rn';

const hash = (stringToHash: string) =>
hashjs.sha256().update(stringToHash).digest('hex');

/**
* A wrapper around `EncryptedStorage` used to store sensitive data required
* A wrapper around `Storage` used to store sensitive data required
* by LNC to reconnect after the initial pairing process has been completed.
*/
export default class LncCredentialStore implements CredentialStore {
// the data to store in EncryptedStorage
// the data to store in Storage
private persisted = {
serverHost: '',
localKey: '',
Expand Down Expand Up @@ -44,28 +44,22 @@ export default class LncCredentialStore implements CredentialStore {

private async _migrateServerHost() {
try {
const baseKey = `${STORAGE_KEY}:${hash(this._pairingPhrase)}`;
const baseKey = `${LNC_STORAGE_KEY}:${hash(this._pairingPhrase)}`;
const hostKey = `${baseKey}:host`;
const hasNewFormat = await EncryptedStorage.getItem(hostKey);
const hasNewFormat = await Storage.getItem(hostKey);

// Only migrate if new format doesn't exist yet
if (!hasNewFormat) {
const oldData = await EncryptedStorage.getItem(baseKey);
const oldData = await Storage.getItem(baseKey);

if (oldData) {
const parsed = JSON.parse(oldData);
if (parsed.serverHost) {
await EncryptedStorage.setItem(
hostKey,
parsed.serverHost
);
await Storage.setItem(hostKey, parsed.serverHost);

// Remove serverHost from old format
delete parsed.serverHost;
await EncryptedStorage.setItem(
baseKey,
JSON.stringify(parsed)
);
await Storage.setItem(baseKey, parsed);
}
}
}
Expand Down Expand Up @@ -136,9 +130,9 @@ export default class LncCredentialStore implements CredentialStore {

/** Clears any persisted data in the store */
clear() {
const baseKey = `${STORAGE_KEY}:${hash(this._pairingPhrase)}`;
EncryptedStorage.removeItem(baseKey);
EncryptedStorage.removeItem(`${baseKey}:host`);
const baseKey = `${LNC_STORAGE_KEY}:${hash(this._pairingPhrase)}`;
Storage.removeItem(baseKey);
Storage.removeItem(`${baseKey}:host`);
this.persisted = {
serverHost: this.persisted.serverHost,
localKey: '',
Expand All @@ -150,15 +144,15 @@ export default class LncCredentialStore implements CredentialStore {
this._pairingPhrase = '';
}

/** Loads persisted data from EncryptedStorage */
/** Loads persisted data from Storage */
async load(pairingPhrase?: string) {
// only load if pairingPhrase is set
if (!pairingPhrase) return;
try {
const baseKey = `${STORAGE_KEY}:${hash(pairingPhrase)}`;
const baseKey = `${LNC_STORAGE_KEY}:${hash(pairingPhrase)}`;
const hostKey = `${baseKey}:host`;
const json = await EncryptedStorage.getItem(baseKey);
const serverHost = await EncryptedStorage.getItem(hostKey);
const json = await Storage.getItem(baseKey);
const serverHost = await Storage.getItem(hostKey);
if (json) {
this.persisted = JSON.parse(json);
if (serverHost) {
Expand All @@ -179,18 +173,18 @@ export default class LncCredentialStore implements CredentialStore {
//

private _saveServerHost() {
const hostKey = `${STORAGE_KEY}:${hash(this._pairingPhrase)}:host`;
EncryptedStorage.setItem(hostKey, this.persisted.serverHost);
const hostKey = `${LNC_STORAGE_KEY}:${hash(this._pairingPhrase)}:host`;
Storage.setItem(hostKey, this.persisted.serverHost);
}

/** Saves persisted data to EncryptedStorage */
/** Saves persisted data to Storage */
private _save() {
// only save if localKey and remoteKey is set
if (!this._localKey) return;
if (!this._remoteKey) return;
const baseKey = `${STORAGE_KEY}:${hash(this._pairingPhrase)}`;
EncryptedStorage.setItem(baseKey, JSON.stringify(this.persisted));
const baseKey = `${LNC_STORAGE_KEY}:${hash(this._pairingPhrase)}`;
Storage.setItem(baseKey, this.persisted);
}
}

export { STORAGE_KEY, hash };
export { LNC_STORAGE_KEY, hash };
176 changes: 100 additions & 76 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ PODS:
- fmt (= 9.1.0)
- glog
- RCT-Folly/Default (= 2024.01.01.00)
- RCT-Folly/Default (2024.01.01.00):
- boost
- DoubleConversion
- fmt (= 9.1.0)
- glog
- RCT-Folly/Fabric (2024.01.01.00):
- boost
- DoubleConversion
Expand Down Expand Up @@ -1255,8 +1260,27 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- RNKeychain (8.1.1):
- RNKeychain (9.2.2):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2024.01.01.00)
- RCTRequired
- RCTTypeSafety
- React-Codegen
- React-Core
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-NativeModulesApple
- React-RCTFabric
- React-rendererdebug
- React-utils
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- RNReactNativeHapticFeedback (2.2.0):
- React-Core
- RNReanimated (3.12.0):
Expand Down Expand Up @@ -1607,100 +1631,100 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
boost: d3f49c53809116a5d38da093a8aa78bf551aed09
BVLinearGradient: 34a999fda29036898a09c6a6b728b0b4189e1a44
BVLinearGradient: 7815a70ab485b7b155186dd0cc836363e0288cad
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
FBLazyVector: 4bc164e5b5e6cfc288d2b5ff28643ea15fa1a589
fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f
hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7
lottie-ios: 8f97d3271e155c2d688875c29cd3c74908aef5f8
lottie-react-native: 8f9d4be452e23f6e5ca0fdc11669dc99ab52be81
RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648
lottie-react-native: 5d89c05930d4180a1e39b1757d46e6c0eec90255
RCT-Folly: 5dc73daec3476616d19e8a53f0156176f7b55461
RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2
RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c
RCTTypeSafety: 552aff5b8e8341660594db00e53ac889682bc120
React: a57fe42044fe6ed3e828f8867ce070a6c5872754
React-callinvoker: 6bedefb354a8848b534752417954caa3a5cf34f9
React-Codegen: 0952549a095f8f8cb2fb5def1733b6b232769b1c
React-Core: 289ee3dfc1639bb9058c1e77427bb48169c26d7a
React-CoreModules: eda5ce541a1f552158317abd90a5a0f6a4f8d6f7
React-cxxreact: 56bd17ccc6d4248116f7f95884ddb8c528379fb6
React-Codegen: 49cfc291275676ba00401e4cbbb6931906d50623
React-Core: 5378e701a95b000d5a0b7020149f428b854a6222
React-CoreModules: 80cd03b1e5ad19de582bd076fb63114964e5a45e
React-cxxreact: d162761aef4ff8191d01fea602e2b981365f5f10
React-debug: 164b8e302404d92d4bec39778a5e03bcb1b6eb08
React-Fabric: 05620c36074e3ab397dd8f9db0deb6d3c38b4efa
React-FabricImage: 2a8a7f5729f5c44e32e6f58f7225ee1017ed0704
React-Fabric: a3d85fbd80e336d7137b77bcd6e713bb1ef5f9e3
React-FabricImage: 60a42161a730e98b8391b71aa79a3dd01c91c117
React-featureflags: d97a6393993052e951e16a3b81206e22110be8d2
React-graphics: ef07d701f4eb72ae6fca6ed0a7260a04f2a58dec
React-hermes: 6ccc301ababfa17a9aad25a7e33faf325fd024b4
React-ImageManager: 00404bfe122626bc6493621f2a31ce802115a9b3
React-jserrorhandler: 5e2632590a84363855b2083e6b3d501e93bc3f04
React-jsi: 828703c235f4eea1647897ee8030efdc6e8e9f14
React-jsiexecutor: 713d7bbef0a410cee5b3b78f73ed1fc16e177ba7
React-jsinspector: e1fa5325a47f34645195c63e3312ddb6a2efef5d
React-jsitracing: 0fa7f78d8fdda794667cb2e6f19c874c1cf31d7e
React-logger: 29fa3e048f5f67fe396bc08af7606426d9bd7b5d
React-Mapbuffer: bf56147c9775491e53122a94c423ac201417e326
react-native-biometrics: 352e5a794bfffc46a0c86725ea7dc62deb085bdc
react-native-blob-util: af2dc91365bfde33f61389cbd0c692af9a4a97cb
react-native-date-picker: 1d61c76315098a6ad4c643a356f005916c7d4875
react-native-encrypted-storage: db300a3f2f0aba1e818417c1c0a6be549038deb7
react-native-get-random-values: dee677497c6a740b71e5612e8dbd83e7539ed5bb
react-native-hce: 677aa1c41edf183523bb7b1014d106a08631ff88
react-native-image-picker: 8cb4280e2c1efc3daeb2d9d597f9429a60472e40
react-native-netinfo: 076df4f9b07f6670acf4ce9a75aac8d34c2e2ccc
react-native-nfc-manager: ead2cd1d1eaab139cc8b2dc5fbfe575eaa45efc4
react-native-notifications: 4601a5a8db4ced6ae7cfc43b44d35fe437ac50c4
react-native-ping: e9f64f02087c3cd2a0bc771ad0cf4a88edaa3072
react-native-print: f704aef52d931bfce6d1d84351dbb5232d7ecb89
react-native-qrcode-local-image: 35ccb306e4265bc5545f813e54cc830b5d75bcfc
react-native-randombytes: 3638d24759d67c68f6ccba60c52a7a8a8faa6a23
react-native-restart: 7595693413fe3ca15893702f2c8306c62a708162
react-native-safe-area-context: dcab599c527c2d7de2d76507a523d20a0b83823d
react-native-slider: ce295d2bf830a7990af05b0bd70ab28c133e230c
react-native-tor: 3b14e9160b2eb7fa3f310921b2dee71a5171e5b7
react-native-udp: df79c3cb72c4e71240cd3ce4687bfb8a137140d5
React-graphics: 98ac899ccd24a52b95607f6e936f0dee1df72fc6
React-hermes: 7456eb2ac1cca407e743db848e39473e1e8cb67a
React-ImageManager: 5f8615ba4d5a191c7bb085a22063f12ad1ef77ee
React-jserrorhandler: be31e8fa6c5056976215f4363c018a09521eebdf
React-jsi: 673c0629d1347e4b47f3e8af50425b84dbe3bffb
React-jsiexecutor: a0ce7f28434a949235e5a849689cceae8bf03a8e
React-jsinspector: 37ce74bdcd2d604b05ad871a2bf500da50770f18
React-jsitracing: 00f6151766dec0ab324e2854a9d4dfde0e1f30cc
React-logger: 70e002e04cc56ff5c12157537405d1644c050703
React-Mapbuffer: 8d1f0fc6e7280a8ed6da70ece5f283ac5c8032cb
react-native-biometrics: 43ed5b828646a7862dbc7945556446be00798e7d
react-native-blob-util: 0d6f9dbc1f1bb83e9f14b99c571874667b72b36c
react-native-date-picker: 867635d29cb2b9b21db129a638fc368269ae7f51
react-native-encrypted-storage: 569d114e329b1c2c2d9f8c84bcdbe4478dda2258
react-native-get-random-values: 419569b6ed3d15bfb9b6781b2f2e058f8e8d2698
react-native-hce: f42561549a16f53ae98edb7f1b68ad87b6e732e1
react-native-image-picker: b15a9e61c326c99b8215659d968accee6eddf639
react-native-netinfo: ce102083db558237dac20cf64172ef569ebe2dd9
react-native-nfc-manager: f74a1e52807a916d27c2f428633e474cf661d611
react-native-notifications: 3bafa1237ae8a47569a84801f17d80242fe9f6a5
react-native-ping: 589027e929c300b0b68cc5c34105f33610177055
react-native-print: 692e8782bc89872ea01738c6759631388e77358c
react-native-qrcode-local-image: d0067bbd2dc6c23f62cbf38a1c9b2a2af58e47ec
react-native-randombytes: 4a00fba06ca0d80a7c02a6b73cfe58ffa4a093a0
react-native-restart: 0bc732f4461709022a742bb29bcccf6bbc5b4863
react-native-safe-area-context: 8c70551c8688cd584a53487aa1b9361e991a3b4a
react-native-slider: 2f40d233a8e04d2659116389a2c7a531ee2f651c
react-native-tor: dc46832ab810a21fb8954afa20b5aeb740ef93f5
react-native-udp: 806f16ab890dd838bc073afcebd6a221d4965572
React-nativeconfig: 9f223cd321823afdecf59ed00861ab2d69ee0fc1
React-NativeModulesApple: ff7efaff7098639db5631236cfd91d60abff04c0
React-NativeModulesApple: 1cd770ed7dc463e55d02a05f7fc3be46076d393e
React-perflogger: 32ed45d9cee02cf6639acae34251590dccd30994
React-RCTActionSheet: 19f967ddaea258182b56ef11437133b056ba2adf
React-RCTAnimation: d7f4137fc44a08bba465267ea7cb1dbdb7c4ec87
React-RCTAppDelegate: 2b3f4d8009796af209a0d496e73276b743acee08
React-RCTBlob: c6c3e1e0251700b7bea036b893913f22e2b9cb47
React-RCTFabric: 93a3ea55169d19294f07092013c1c9ea7a015c9b
React-RCTImage: 40528ab74a4fef0f0e2ee797a074b26d120b6cc6
React-RCTLinking: 385b5beb96749aae9ae1606746e883e1c9f8a6a7
React-RCTNetwork: ffc9f05bd8fa5b3bce562199ba41235ad0af645c
React-RCTSettings: 21914178bb65cb2c20c655ae1fb401617ae74618
React-RCTText: 7f8dba1a311e99f4de15bbace2350e805f33f024
React-RCTVibration: e4ccf673579d0d94a96b3a0b64492db08f8324d5
React-rendererdebug: ac70f40de137ce7bdbc55eaee60c467a215d9923
React-RCTAnimation: 62269ef3c6723d51677b466247734c94a57058be
React-RCTAppDelegate: fff24d087c7cb05849a744b0c7288c71fde75180
React-RCTBlob: f684ebda742dcc0869aeaf502b760f68dbc2eecf
React-RCTFabric: 908f220527719260d5ddcfb2fe0d8f52833fe71a
React-RCTImage: 71f8c1c9a4f13121211d7e179c5a0a1764a0c1dc
React-RCTLinking: f79e8f8a68ec7155d267922386885cd60ad1208b
React-RCTNetwork: d6c7b68b10b268c80cd72ef7cd710fdf71f69d83
React-RCTSettings: 2e1d70025490790cc6ce0c766af8cb174390be43
React-RCTText: a8d1d3716ad2946bfd96932c8a2bbebb07e569bf
React-RCTVibration: 01fe1cc2c7148e74f11ed8997a553399393c8fd6
React-rendererdebug: 1d87a8cc3c81d95beea2f8caeefa0d4520971288
React-rncore: edfff7a3f7f82ca1e0ba26978c6d84c7a8970dac
React-RuntimeApple: a0c98b75571aa5f44ddc7c6e9fd55803fa4db00f
React-RuntimeCore: 4b8db1fe2f3f4a3a5ecb22e1a419824e3e2cd7ef
React-RuntimeApple: ea00d0be65f8dcf8a7f33a712dfda5098f8cd85c
React-RuntimeCore: 08ca132a26c286c6be4376a7db27994e5f97aebb
React-runtimeexecutor: 5961acc7a77b69f964e1645a5d6069e124ce6b37
React-RuntimeHermes: c5825bfae4815fdf4e9e639340c3a986a491884c
React-runtimescheduler: 56b642bf605ba5afa500d35790928fc1d51565ad
React-utils: 4476b7fcbbd95cfd002f3e778616155241d86e31
ReactCommon: ecad995f26e0d1e24061f60f4e5d74782f003f12
RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c
RNCClipboard: 2821ac938ef46f736a8de0c8814845dde2dcbdfb
RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca
RNDeviceInfo: b899ce37a403a4dea52b7cb85e16e49c04a5b88e
RNFS: 4ac0f0ea233904cb798630b3c077808c06931688
RNGestureHandler: 2282cfbcf86c360d29f44ace393203afd5c6cff7
RNKeychain: ff836453cba46938e0e9e4c22e43d43fa2c90333
RNReactNativeHapticFeedback: ec56a5f81c3941206fd85625fa669ffc7b4545f9
RNReanimated: 8978449b2a511388ea71faf1e66f669134e87658
RNScreens: b32a9ff15bea7fcdbe5dff6477bc503f792b1208
RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef
RNSVG: a48668fd382115bc89761ce291a81c4ca5f2fd2e
RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59
React-RuntimeHermes: c11cbc1cd10659aac0910de11f11dbc825a32785
React-runtimescheduler: c5ba36755abc3c28a8cd327325b13599af586204
React-utils: 08bb648cea0f37a0aa5df0c4f9ef50e5484ee0eb
ReactCommon: 4968ff446d467c4def1945125e59f82e3e986af3
RNCAsyncStorage: aa75595c1aefa18f868452091fa0c411a516ce11
RNCClipboard: 7c3e3b5f71d84ef61690ad377b6c50cf27864ff5
RNCPicker: 7ea4c112b43a2033ddb1e5e2ecb2e826f222b897
RNDeviceInfo: 900bd20e1fd3bfd894e7384cc4a83880c0341bd3
RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8
RNGestureHandler: 326e35460fb6c8c64a435d5d739bea90d7ed4e49
RNKeychain: c339dd4a9f13baac6cf6b617bfad3a0eab5df8b1
RNReactNativeHapticFeedback: a6fb5b7a981683bf58af43e3fb827d4b7ed87f83
RNReanimated: f1a8e928e0a5e8698c354c226d8d5f80629f8658
RNScreens: a2d8a2555b4653d7a19706eb172f855657ac30d7
RNSecureRandom: b64d263529492a6897e236a22a2c4249aa1b53dc
RNSVG: e77adf5edb2302f0f10dd03a09e92bb9420d914e
RNVectorIcons: 7159ba77d44e14808dcc50fbc03eb5666b1034fc
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
SwiftProtobuf: 5e8349171e7c2f88f5b9e683cb3cb79d1dc780b3
TcpSockets: 4ef55305239923b343ed0a378b1fac188b1373b0
VisionCamera: 2c4cb89c573c5d54d1191e433bd224998d3b14b7
TcpSockets: c5f030d4dbc758c4c7acb00496dc92c412b02cd2
VisionCamera: 6ad4b86176f6fea45e90e380d3d530bc5e1abff9
Yoga: ae3c32c514802d30f687a04a6a35b348506d411f

PODFILE CHECKSUM: 7f57cf007e54dd34e05bfbf127badc08dcead3e1

COCOAPODS: 1.15.2
COCOAPODS: 1.16.2
8 changes: 0 additions & 8 deletions ios/zeus.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1493,7 +1493,6 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-zeus-zeusTests/Pods-zeus-zeusTests-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
Expand All @@ -1514,11 +1513,9 @@
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/SwiftProtobuf/SwiftProtobuf.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
Expand All @@ -1539,7 +1536,6 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SwiftProtobuf.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
Expand Down Expand Up @@ -1570,7 +1566,6 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-zeus/Pods-zeus-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
Expand All @@ -1591,11 +1586,9 @@
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/SwiftProtobuf/SwiftProtobuf.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
Expand All @@ -1616,7 +1609,6 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SwiftProtobuf.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"react-native-haptic-feedback": "2.2.0",
"react-native-hce": "0.1.2",
"react-native-image-picker": "5.0.1",
"react-native-keychain": "8.1.1",
"react-native-keychain": "9.2.2",
"react-native-level-fs": "3.0.1",
"react-native-linear-gradient": "2.6.2",
"react-native-nfc-manager": "3.14.14",
Expand Down
Loading
Loading