- [fixed] Prevent race condition crashes in GULNetworkURLSession by replacing NSMapTable with thread-safe NSMutableDictionary and locking. (#228)
- Add a utility to detect App Clips and make a semantic check for background URL sessions. (#220)
- Fix default logging level regression introduced in 8.0.0 (no value set);
default value is restored to
GULLoggerLevelNotice. (#207)
- Add missing copyright to source file. (#206)
- Removed an extraneous
#undef GUL_LOGGING_FUNCTION. (#205)
- Remove swizzling support for
application:didReceiveRemoteNotification:. Useapplication:didReceiveRemoteNotification:fetchCompletionHandler:instead. (#162) - Remove
GULHeartbeatDateStorable,GULHeartbeatDateStorage,GULHeartbeatDateStorageUserDefaultsAPIs. (#164) - Remove '+ [GULAppEnvironmentUtil isIOS7OrHigher]' API. (#165)
- Remove '+ [GULAppEnvironmentUtil hasSwiftRuntime]' API. (#166)
- Fix an issue where ObjC associated objects were sometimes set with a non-const key, potentially resulting in undefined behavior. (#141)
- Add nullabilty annotations to public headers. (#169)
- Remove references to deprecated CTCarrier. (#106)
- [changed] Breaking change: Minimum supported versions have
updated for the following platforms:
-
Platform GoogleUtilities 8.0 iOS 12.0 tvOS 13.0 macOS 10.15 watchOS 7.0
-
- Remove dependency on
FBLPromises. The following public API have been removed:- [NSURLSession gul_dataTaskPromiseWithRequest:]GULURLSessionDataResponseThe following promise-based public API have been replaced with completion handler-based alternatives.- [GULKeychainStorage getObjectForKey:objectClass:accessGroup:]- [GULKeychainStorage setObject:forKey:accessGroup:]- [GULKeychainStorage removeObjectForKey:accessGroup:]- Update underlying GULLogger implementation from
asltoos_log. - Remove
GULLoggerEnableSTDERRAPI.
- Rename parameter placeholder in
GULSecureCodingunarchiving API to avoid conflict with keyword. (#152) - Reorganize privacy manifests for SwiftPM so that each library target has its own privacy manifest, as opposed to transitively depending on a common one. (#150)
- Remove synchronization delay for
GULUserDefaultsto better matchNSUserDefaultsbehavior. (#148)
- Attempt to fix validation error due to invalid module name. (#146)
- Add privacy manifest. (#128)
- Fix improperly formatted target name that blocks App Store submission. (#140)
- Added a logging level getter,
GULGetLoggerLevel. (#138)
- Fix visionOS build on Xcode 15.1 Beta 1.
- Replace 'TARGET_OS_XR' with 'TARGET_OS_VISION' for compatibility with Xcode 15 Beta 5.
- Fix Xcode 15 Beta 4 runtime warning. (#114)
- Calling
+[GULAppEnvironmentUtil applePlatform]now returns 'visionos' when running on visionOS.
- Fix build errors on the visionOS platform. (#108)
- Fix Xcode 14.3 build warnings.
- Add a new POST API in GULNetwork to support HTTP headers. (#99)
- Fix iOS 12 deprecation warnings. (#98)
- Added Network Utility. (#91)
- Added a few utility functions for Firebase Performance and FirebaseSession SDKs. (#89, #90)
- Don't use underscores in SPM target names. This fixes an App Store submission issue for SPM builds that dynamically link (firebase-ios-sdk/#9912). (#83)
- Update
+ [GULAppEnvironmentUtil deploymentType]API to fall back tounknowninstead ofcocoapods. (#79) - Prevent keychain access from prompting user for permissions on macOS. Using GoogleUtilities's keychain wrapper API on macOS now requires that the target be signed with a provisioning profile that has the Keychain Sharing capability enabled. (#75)
- Swift Package Manager only release. Unify OCMock dependency with Firebase repo. (firebase/firebase-ios-sdk#9591)
- Do not dispose a swizzler's generated class when
GULGeneratedClassDisposeDisabledenvironment variable is set. (#66)
- Add proper device model parsing for macOS and Catalyst. (#59)
- Deprecate
hasSwiftRuntimemethod. (#62)
- Do not dispose a swizzler's generated class when using the Zombies instrument. (#57)
GULHeartbeatDateStorage: replaceNSFileCoordinatorwith in-process synchronization mechanism. (#51)
- Bump Promises dependency. (#8334)
- Include all object classes when using archiver. (#42)
- Fix warnings in Xcode 13 beta 1. (#41)
- Improve heartbeat date storage's version compatability. (#37)
- Change heartbeat directory name and refactor file. (#19)
- Introduce user defaults based heartbeat storage. (#23)
- Support iOS 9 with Swift Package Manager.
- Add explicit dependency on Security framework to Environment subspec. (#12)
- Fix conflicting internal constant name and move it out of the public header. (#7635)
- Fix warnings introduced with Xcode 12.5. (#8)
- Fix GoogleUtilities namespacing (SPM only release). (#7)
NSURLSessionpromise extension public API. (#7097)
- Fix
unrecognized selectorfor isiOSAppOnMac on early iOS 14 betas. (#6969)
- Added
NSURLSessionpromise extension. (#6753) ios_on_macoption added toGULAppEnvironmentUtil.applePlatform(). (#6799)- Fixed completion handler issue in
GULAppDelegateSwizzlerforapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:)method. (#6863)
- All APIs are now public. All CocoaPods private headers are transitioned to public. Note that GoogleUtilities may have more frequent breaking changes than Firebase. (#6588)
- Fixed writing heartbeat to disk on tvOS devices. (#6658)
- Refactor
GULSwizzledObjectto ARC to unblock SwiftPM support. (#5862)
- Fix import regression when mixing 6.7.0 with earlier Firebase versions. (#6047)
- Lazily access filesystem outside of
GULHeartbeatDateStorageinitializer. (#5969) - Update source imports to use repo-relative headers. (#5824)
- Source cleanups to remove pre-iOS 8 code. (#5841)
- Keychain utilities and Keychain based key-value storage added to
GoogleUtilities/Environment. (#5329)
- Fixed an issue where GoogleUtilities misidentified Catalyst as a simulator runtime environment. (#5048)
- Standardized import paths. (#4655)
- Swizzler changes.
- Add function to gul secure encoding to encode multiple classes. (#4282)
- Add heartbeat feature. (#4098)
- Support UISceneDelegate changes in Auth. (#4380)
- Fix GULMutableDictionary keyed subscript methods. (#3882)
- Update Networking to receive data for POST requests. (#3940)
- Fix crash in GULLogBasic. (#3928)
- GULSecureCoding introduced. (#3707)
- Mark unused variables. (#3854)
- Remove test-only method and update tests to include Catalyst. (#3544)
- Fix
GULObjectSwizzlerdealloc thread-safety. (#3300, #3183)
- Revert "Fix
GULMutableDictionarythread-safety." (#3322)
- Add explicit Foundation import for headers.
- Fix headers import. (#3277)
- Fix README. (#3305)
- Fix
GULMutableDictionarythread-safety. (#3322)
- Fix Xcode 11 build warning. (#3133)
- Stop conditional compilation for GoogleUtilities testing. (#3058)
- Added
GULAppDelegateSwizzlermacOS support. (#2911)
- GULAppDelegateSwizzler - proxy APNS methods separately. (#2835)
- Cocoapods 1.7.0 multiproject support. (#2751)
- Bump minimum iOS version to iOS 8. (#2876)
- Restore to 5.5.0 tag after increased App Store warnings. (#2807)
GULAppDelegateSwizzler: support of remote notification methods. (#2698)GULAppDelegateSwizzler: tvOS support. (#2698)
- Revert 5.4.x changes restoring 5.3.7 version.
- Fix GULResetLogger API breakage. (#2551)
- Update GULLogger to use os_log instead of asl_log on iOS 9 and later. (#2374, #2504)
- Fixed
pod lib lint GoogleUtilities.podspec --use-librariesregression. (#2130) - Fixed macOS conditional check in UserDefaults. (#2245)
- Migrate to clang-format 8.0.0. (#2222)
- Fix nullability issues. (#2079)
- Fixed an issue where GoogleUtilities would leak non-background URL sessions. (#2061)
- Fixed a crash caused due to
NSURLConnectiondelegates being wrapped in anNSProxy. (#1936)
- Fixed a crash caused by unprotected access to sessions in
GULNetworkURLSession. (#1964)
- Fixed an issue where GoogleUtilities would leak instances of
NSURLSession. (#1917)