Skip to content

Commit ed30bc9

Browse files
authored
Add GULUserDefaults to GoogleUtilities. (#1812)
* Add GULUserDefaults to GoogleUtilities. This is a workaround for NSUserDefaults crashing when setting values in the background in some situations on iOS 11. This uses the C API in order to avoid an NSNotification firing (which a class eventually tries to update the UI from the thread that set the value). * Add missing copyright information. * Resolve macOS issues, address feedback. * Removed unnecessary enum value.
1 parent 5e59ba1 commit ed30bc9

File tree

5 files changed

+1214
-0
lines changed

5 files changed

+1214
-0
lines changed

GoogleUtilities.podspec

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,11 @@ other Google CocoaPods. They're not intended for direct public usage.
9090
sths.source_files = 'GoogleUtilities/SwizzlerTestHelpers/*.[hm]'
9191
sths.private_header_files = 'GoogleUtilities/SwizzlerTestHelpers/*.h'
9292
end
93+
94+
s.subspec 'UserDefaults' do |ud|
95+
ud.source_files = 'GoogleUtilities/UserDefaults/**/*.[hm]'
96+
ud.public_header_files = 'GoogleUtilities/UserDefaults/Private/*.h'
97+
ud.private_header_files = 'GoogleUtilities/UserDefaults/Private/*.h'
98+
ud.dependency 'GoogleUtilities/Logger'
99+
end
93100
end

GoogleUtilities/Example/GoogleUtilities.xcodeproj/project.pbxproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
DEC9788720F6E1E000014E20 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEC9788020F6E1DF00014E20 /* Main.storyboard */; };
4747
DEC9788820F6E1E000014E20 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC9788120F6E1DF00014E20 /* main.m */; };
4848
DEC9788920F6E1E000014E20 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC9788220F6E1DF00014E20 /* AppDelegate.m */; };
49+
ED18C2A0213EDB98009F633D /* GULUserDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = ED18C29F213EDB98009F633D /* GULUserDefaultsTests.m */; };
50+
ED18C2A1213EDB98009F633D /* GULUserDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = ED18C29F213EDB98009F633D /* GULUserDefaultsTests.m */; };
51+
ED18C2A2213EDB98009F633D /* GULUserDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = ED18C29F213EDB98009F633D /* GULUserDefaultsTests.m */; };
4952
EFBE67FA2101401100E756A7 /* GULSwizzlerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EFBE67F02101401100E756A7 /* GULSwizzlerTest.m */; };
5053
EFBE67FB2101401100E756A7 /* GULSwizzlingCacheTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EFBE67F12101401100E756A7 /* GULSwizzlingCacheTest.m */; };
5154
EFBE67FC2101401100E756A7 /* GULRuntimeClassDiffTests.m in Sources */ = {isa = PBXBuildFile; fileRef = EFBE67F22101401100E756A7 /* GULRuntimeClassDiffTests.m */; };
@@ -126,6 +129,7 @@
126129
DEC9788320F6E1DF00014E20 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
127130
DEC9788420F6E1DF00014E20 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
128131
E0A8D570636E99E7C3396DF8 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
132+
ED18C29F213EDB98009F633D /* GULUserDefaultsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GULUserDefaultsTests.m; sourceTree = "<group>"; };
129133
EFBE67F02101401100E756A7 /* GULSwizzlerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GULSwizzlerTest.m; sourceTree = "<group>"; };
130134
EFBE67F12101401100E756A7 /* GULSwizzlingCacheTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GULSwizzlingCacheTest.m; sourceTree = "<group>"; };
131135
EFBE67F22101401100E756A7 /* GULRuntimeClassDiffTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GULRuntimeClassDiffTests.m; sourceTree = "<group>"; };
@@ -231,6 +235,7 @@
231235
6003F5B5195388D20070C39A /* Tests */ = {
232236
isa = PBXGroup;
233237
children = (
238+
ED18C29E213ED7B9009F633D /* User Defaults */,
234239
EFBE67EF2101401100E756A7 /* Swizzler */,
235240
DEC977DE20F6A7A700014E20 /* Logger */,
236241
DEC977D420F68C3300014E20 /* Network */,
@@ -347,6 +352,14 @@
347352
path = tvOS;
348353
sourceTree = "<group>";
349354
};
355+
ED18C29E213ED7B9009F633D /* User Defaults */ = {
356+
isa = PBXGroup;
357+
children = (
358+
ED18C29F213EDB98009F633D /* GULUserDefaultsTests.m */,
359+
);
360+
path = "User Defaults";
361+
sourceTree = "<group>";
362+
};
350363
EFBE67EF2101401100E756A7 /* Swizzler */ = {
351364
isa = PBXGroup;
352365
children = (
@@ -597,6 +610,7 @@
597610
EFBE67FF2101401100E756A7 /* GULRuntimeDiffTests.m in Sources */,
598611
DEC977DD20F68FE100014E20 /* GTMHTTPServer.m in Sources */,
599612
EFBE68022101401100E756A7 /* GULRuntimeSnapshotTests.m in Sources */,
613+
ED18C2A0213EDB98009F633D /* GULUserDefaultsTests.m in Sources */,
600614
EFBE68002101401100E756A7 /* GULSwizzlerInheritedMethodsSwizzlingTest.m in Sources */,
601615
EFBE68012101401100E756A7 /* GULRuntimeStateHelperTests.m in Sources */,
602616
DEC977D820F68C3300014E20 /* GULMutableDictionaryTest.m in Sources */,
@@ -629,6 +643,7 @@
629643
DEC9781920F6D38500014E20 /* GULAppEnvironmentUtilTest.m in Sources */,
630644
DEC9781A20F6D38800014E20 /* GULReachabilityCheckerTest.m in Sources */,
631645
DEC9781820F6D37400014E20 /* GULLoggerTest.m in Sources */,
646+
ED18C2A1213EDB98009F633D /* GULUserDefaultsTests.m in Sources */,
632647
DEC9781D20F6D39900014E20 /* GTMHTTPServer.m in Sources */,
633648
DEC9781B20F6D39500014E20 /* GULMutableDictionaryTest.m in Sources */,
634649
DEC9781C20F6D39500014E20 /* GULNetworkTest.m in Sources */,
@@ -652,6 +667,7 @@
652667
DEC9786920F6D66300014E20 /* GTMHTTPServer.m in Sources */,
653668
DEC9786B20F6D66300014E20 /* GULNetworkTest.m in Sources */,
654669
DEC9786A20F6D66300014E20 /* GULMutableDictionaryTest.m in Sources */,
670+
ED18C2A2213EDB98009F633D /* GULUserDefaultsTests.m in Sources */,
655671
DEC9786C20F6D66700014E20 /* GULReachabilityCheckerTest.m in Sources */,
656672
DEC9786820F6D65B00014E20 /* GULLoggerTest.m in Sources */,
657673
DEC9786D20F6D66B00014E20 /* GULAppEnvironmentUtilTest.m in Sources */,

0 commit comments

Comments
 (0)