Skip to content
Open
Changes from 1 commit
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
Prev Previous commit
Next Next commit
fix(secure-storage): Add Support for Access/Application groups on IOS…
… in the simulator. (#528)
  • Loading branch information
jcassidyav authored Sep 4, 2023
commit fbc7fc5bd89fef8490b4732cbc3e71d0b5726ae9
29 changes: 23 additions & 6 deletions packages/secure-storage/index.ios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export class SecureStorage extends SecureStorageCommon {
get(arg: GetOptions): Promise<any> {
return new Promise((resolve, reject) => {
if (this.isSimulator) {
resolve(NSUserDefaults.standardUserDefaults.objectForKey(arg.key));
resolve(this.getUserDefaultsValue(arg));
return;
}

Expand All @@ -57,7 +57,7 @@ export class SecureStorage extends SecureStorageCommon {

getSync(arg: GetOptions): any {
if (this.isSimulator) {
return NSUserDefaults.standardUserDefaults.objectForKey(arg.key);
return this.getUserDefaultsValue(arg);
}

let query = SAMKeychainQuery.new();
Expand All @@ -77,7 +77,7 @@ export class SecureStorage extends SecureStorageCommon {
set(arg: SetOptions): Promise<boolean> {
return new Promise((resolve, reject) => {
if (this.isSimulator) {
NSUserDefaults.standardUserDefaults.setObjectForKey(arg.value, arg.key);
this.setUserDefaultsValue(arg);
resolve(true);
return;
}
Expand All @@ -96,7 +96,7 @@ export class SecureStorage extends SecureStorageCommon {

setSync(arg: SetOptions): boolean {
if (this.isSimulator) {
NSUserDefaults.standardUserDefaults.setObjectForKey(arg.value, arg.key);
this.setUserDefaultsValue(arg);
return true;
}

Expand All @@ -114,7 +114,7 @@ export class SecureStorage extends SecureStorageCommon {
remove(arg: RemoveOptions): Promise<boolean> {
return new Promise((resolve, reject) => {
if (this.isSimulator) {
NSUserDefaults.standardUserDefaults.removeObjectForKey(arg.key);
this.removeUserDefaultsValue(arg);
resolve(true);
return;
}
Expand All @@ -135,7 +135,7 @@ export class SecureStorage extends SecureStorageCommon {

removeSync(arg: RemoveOptions): boolean {
if (this.isSimulator) {
NSUserDefaults.standardUserDefaults.removeObjectForKey(arg.key);
this.removeUserDefaultsValue(arg);
return true;
}

Expand Down Expand Up @@ -205,4 +205,21 @@ export class SecureStorage extends SecureStorageCommon {
}
return true;
}

private setUserDefaultsValue(arg: SetOptions) {
this.getUserDefaultToUse(arg.accessGroup).setValueForKey(arg.value, arg.key);
}
private getUserDefaultsValue(arg: GetOptions) {
return this.getUserDefaultToUse(arg.accessGroup).objectForKey(arg.key);
}
private removeUserDefaultsValue(arg: RemoveOptions) {
return this.getUserDefaultToUse(arg.accessGroup).removeObjectForKey(arg.key);
}
private getUserDefaultToUse(accessGroup?: string): NSUserDefaults {
if (accessGroup) {
return new NSUserDefaults({ suiteName: accessGroup });
} else {
return NSUserDefaults.standardUserDefaults;
}
}
}