Skip to content

Commit fbc7fc5

Browse files
authored
fix(secure-storage): Add Support for Access/Application groups on IOS in the simulator. (#528)
1 parent b0982b4 commit fbc7fc5

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

packages/secure-storage/index.ios.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export class SecureStorage extends SecureStorageCommon {
3636
get(arg: GetOptions): Promise<any> {
3737
return new Promise((resolve, reject) => {
3838
if (this.isSimulator) {
39-
resolve(NSUserDefaults.standardUserDefaults.objectForKey(arg.key));
39+
resolve(this.getUserDefaultsValue(arg));
4040
return;
4141
}
4242

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

5858
getSync(arg: GetOptions): any {
5959
if (this.isSimulator) {
60-
return NSUserDefaults.standardUserDefaults.objectForKey(arg.key);
60+
return this.getUserDefaultsValue(arg);
6161
}
6262

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

9797
setSync(arg: SetOptions): boolean {
9898
if (this.isSimulator) {
99-
NSUserDefaults.standardUserDefaults.setObjectForKey(arg.value, arg.key);
99+
this.setUserDefaultsValue(arg);
100100
return true;
101101
}
102102

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

136136
removeSync(arg: RemoveOptions): boolean {
137137
if (this.isSimulator) {
138-
NSUserDefaults.standardUserDefaults.removeObjectForKey(arg.key);
138+
this.removeUserDefaultsValue(arg);
139139
return true;
140140
}
141141

@@ -205,4 +205,21 @@ export class SecureStorage extends SecureStorageCommon {
205205
}
206206
return true;
207207
}
208+
209+
private setUserDefaultsValue(arg: SetOptions) {
210+
this.getUserDefaultToUse(arg.accessGroup).setValueForKey(arg.value, arg.key);
211+
}
212+
private getUserDefaultsValue(arg: GetOptions) {
213+
return this.getUserDefaultToUse(arg.accessGroup).objectForKey(arg.key);
214+
}
215+
private removeUserDefaultsValue(arg: RemoveOptions) {
216+
return this.getUserDefaultToUse(arg.accessGroup).removeObjectForKey(arg.key);
217+
}
218+
private getUserDefaultToUse(accessGroup?: string): NSUserDefaults {
219+
if (accessGroup) {
220+
return new NSUserDefaults({ suiteName: accessGroup });
221+
} else {
222+
return NSUserDefaults.standardUserDefaults;
223+
}
224+
}
208225
}

0 commit comments

Comments
 (0)