* URL strings in in-app messages are sanitized and, when possible, recovered before they’re used in the `NSURL` initializer
* Added validation for image URLs, which must use the HTTPS scheme, according to the Firebase Console
* Updated `FIRIAMFetchResponseParserTests` to test URL validation and recovery
* Expose most of the initializers for message metadata classes for use in unit testing or SwiftUI previews
* Fix import in FIRIAMFetchFlowTests
* Simplify UI test app to use now public initializers (doesn't build)
* Update public header to use stripped down message initializers that only include parameters that effect layout
* Fix nullability for body text in in-app message initializers, add helper methods for generating mock messages
* Remove default image for image-only convenience initializer
* Make initializers non optional, document force unwraps
* Finalize helper methods, update test project to use the preview helpers
* Update UI tests to use new initializers
* Revert Cocoapods related project changes
* Add copyright notices to new files
* Change target version of DefaultUI test app back to 10.0
* Add unit tests for
* Fix color that wasn't available on tvOS
* Udpdate CHANGELOG
* Update UI test app to 13.2 to avoid [DVTiPhoneSimulator -primaryInstrumentsServer was called from the main thread
* Update to target 13.2
* Revert "Update to target 13.2"
This reverts commit 8189b64b68.
* Revert "Update UI test app to 13.2 to avoid [DVTiPhoneSimulator -primaryInstrumentsServer was called from the main thread"
This reverts commit 2371ff2a84.
* Remove unnecessary ABTExperimentPayload import. Fix nullability of ABTExperimentPayload param in initializers
* Revert iOS target in project.pbxproj file
* Revert removals of references to GoogleService-Info.plist
* Let Xcode handle spacing in project file
* Start tracking conversions on in-app message campaigns that don't have an action URL. Do this at impression time. (Initial implementation commit)
* Add test coverage, use FIRIAMMessageDefinition in implementation for cleaner code all-around
* Add CHANGELOG
* Update CHANGELOG
* Added suppressMessageDisplay Check Before Message Display
* Updated FIRIAMDisplayExecutorTests
* Updated Format with style.sh
* Added Logging for Early Return in FIRIAMDisplayExecutor
* Remove Protobuf dependency, add struct-ish class that mimics ABTExperimentPayload
* Remove a lot of the compiler errors, but not all of them. We need to figure out how RC serializes the NSData objects passed to FIRExperimentController in updateExperimentsWithServiceOrigin:
* Add ABTExperimentPayload class that replaces generated proto, refactor classes that depend on it
* Add unit testing class for ABTExperimentPayload
* Updates to ABTExperimentPayload API, tests for ABTConditionalUserPropertyTest, add tests for ABTExperimentPayload
* Update podspec to pull in testing resources
* Add utility class for parsing test files. Use it in ABTExperimentPayloadTests
* Fix FIRExperimentController tests
* Better documentation
* Run scripts/styles.sh
* Fix whitespace
* Remove protobuf imports
* Bump pod spec version for ABT SDK, depend on new ABT SDK in RC. Fix up RemoteConfigExperiment to use new ABTExperimentPayload object
* scripts/style.sh
* Update In-app messaging to use new ABTExperimentPayload class, which involves extending the ABTExperimentPayload initializer to accept different values for overflowPolicy and experimentStartTime
* Delete test payload
* Revert scripts/check_imports.swift
* Better initialization tags for ABTExperimentLite
* Update CHANGELOGs
* Remove private headers in podspec, use integerValue to parse integers
* Refactor ABTExperimentPayload header into Private headers. Fix integer types for millisecond metadata
* scripts/styles.sh
* Fix integer parsing
* Fix copyrights
* Fix CHANGELOG typo:
* Add private_header_files to public_header_files
* Try just using NSInteger for experimentStartTimeMillis
* Bump FIAM dependency on ABTesting
* Use long long for milli parameters (32-bit apps)
* Use longlong in test timestamps
* Don't cast to nsnumber in tests
* Use in64_t
* Fix Test Overflow
* Bump major version on ABT SDK
* Bump ABTesting version in Firebase.podspec
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
* Depend on FIRInstallations instead of IID, load an installations object into FIRInAppMessagingPrivate.h
* Bootstrap FIRInAppMessaging.h with an instance of FIRInstallations
* Update FIRIAMClientInfoFetcher to use FIRInstallations method to grab FID and FIS Token
* Call new client info fetcher method
* Fix up tests
* Change nullability for FIRInstallations object, handle null case
* More verbose comments in FIRIAMClientInfoFetcher, call completion in case that FIS token is fetched, but FID fails
* Throw error and call completion if Firebase Installations object is not created
* Send FIS token with method fetch requests
* Add test class for FIRIAMClientInfoFetcher
* Refactor FIRIAMClientInfoFetcher to get a FIRInstallations object injected
* Add unit testing for fetchFirebaseInstallationDataWithProjectNumber: in FIRIAMClientInfoFetcher
* Streamline unit tests, add case for nil FirebaseInstallations, clean up comments that were left in
* Parse out experiment payload for experimental FIAMs and store it on FIRIAMMessageDefinition
* Fix bugs in parsing experimental payload
* Add nullable experiment payload to FIAM message definition. Add method in FIRExperimenmtController to validate running experiments and call this when new messages are fetched from FIAM backend
* Add and document new ABT methods, update FirebaseInAppMessaging.podspec to depend on ABT
* Clean up deprecated public message initializers, add experiment payload to private initializers
* Activate experiment for experimental messages upon impression
* Clean up activateExperiment API
* Add experimental payload to all message definition initializers
* Add unit test coverage for new ABT methods
* Add test coverage for parsing experimental messages
* Verify experiment payload gets passed to message superclass
* Scripts/style.sh
* Update Podfile for UI test app to include AB Testing SDK
* Add back deprecated initializers for now, these are needed for the test app
* Test for non-nil experiment payload
* Use mutable array directly, better memory usage
* Bump ABTesting podspec version, depend on new ABT in FIAM
* Remove mentions of FIREventOrigins.h
* Remove experiment payload from public API, hide it in private
* Scripts/style.sh
* Fix comment indentation, allow for FIAM to depend on minor version updates of ABTesting
* Move ABTExperimentPayload import to private header
* Move display SDK source and resources into FIAM SDK
* Change files prefixed with FID to be prefixed FIRIAM
* Restructure example apps in firebase-ios-sdk directory
* Fix directory structure for FIAM
* Move proto files into base directory
* Fix up proto files
* Move unit test files to Firebase/InAppMessaging/Tests
* Move FIRIAMSDKModeManagerTests and require app host in podspec
* Move sample apps to tests folder
* Add empty repo for FIAMDisplay that generates a warning
* Fix up functional tests app
* Fix up default UI test app
* Re-generate protos
* Add warning to remove display pod
* Remove display podspec from .travis.yml
* Remove trailing whitespace
* Fix import in test app
* Add changes to point to the default test app
* Wrap iOS version conditionals
* Add line in podspec about deprecation
* Delete whitespace in podspec
* Delete pods section in project file
* Update changelog with consolidation info
* Fix indentation in podspecs
* Fix some import issues
* Fix indent on FirebaseInAppMessaging.podspec
* Delete FirebaseInAppMessagingDisplay, update podfile for external test app
* Update podfiles, bump iOS min version to 9, remove iOS 9 checks in FIRIAMActionUrlFollowerTests
* Add line in CHANGELOG referencing deletion of display sdk pod
* Remove unused podfile
* Update min version on Podfiles to iOS 9
* Add back FirebaseInAppMessagingDisplay.h
* Add iOS support message to CHANGELOG.md
* Wrap necessary deprecated iOS 9 call