* Libraries should save state if a completion block is requested
Currently, the onComplete block of sendXEvent:onComplete: is invoked when the event bytes are written to disk. However, if the app crashes before a lifecycle event occurs (trigger GDTCORStorage to serialize to disk), that event if effectively lost because the metadata has all been lost. This change triggers the saving of state of GDTCORStorage and prioritizers (if they implement it) if an onComplete block has been given.
* Remove flaky check
* Update GDTCORStorage.m
* Refactor event fileURLs to be derived
Apparently, since iOS 8, it's possible for the app's bundle to change directories as often as every launch. This is a mechanism that's hopefully slightly more robust against that, as data is supposed to carry over, the UUID component of the app's absolute directory might just change.
* Convert a couple of tests, actually use a non-absolute URL in GDTCOREvent
* Make sure to use the event fileURL property as the source of truth.
Add some additional logs and improve the integration test
* Fix KVC not working for the removed property
* Fixes appWillTerminate not running on GDTStorage's queue
Fixes#4546
Thanks @plu for the test case!
* Use the correct lifecycle event.
* Additional comments.
* Fix missing `runningInBackground` flags.
* Attempt at fixing background issues with GDT.
* Add missing deprecated implementation.
* Transfer extra call to background call.
* Style
* Further review comments.
* Fix testing.
* Refactored FLLIntegrationTest.
This does a few things - split the tests into a specific multithreaded
test and a recursive run without crashing.
It also adds a notification for the upload to post how many events were
uploaded. This should be a bit more reliable and helps the overall
validation during the "run without crashing" test.
* Removed extra log.
* Fix flag for Catalyst.
* Disable currently non-functional test.
* Further review comments.
* Migrate CCT tests to match FLL.
* Revert accidental partial change.
* Clarify comment for starting the background tasks.
* Review feedback, changelog additions and bug numbers.