Commit Graph
75 Commits
Author SHA1 Message Date
Nick Cooke 74b8196896 [InAppMessaging] Migrate to GoogleUtilities's storage container (#12757) 2024-04-12 12:46:27 -04:00
Paul Beusterien 4a8f84baf0 [FIAM] Fix an objc_retain crash (#12395) 2024-02-16 08:34:09 -08:00
Nick Cooke ca522d2d2a [Infra] Rename references from master to main (#12203) 2023-12-15 15:29:22 -05:00
Paul Beusterien aec227be2b More Xcode 15 CI (#12042) 2023-11-03 11:36:20 -07:00
Andrew Heard 9425f60f69 [visionOS] Fix FirebaseInAppMessaging build on Xcode 15.1 beta 1 (#11935) 2023-10-13 15:18:32 -04:00
Nick Cooke 722f71a0b2 [In App Messaging] Address Xcode 14.3 Analyzer issues (#11242)
* [In App Messaging] Address Xcode 14.3 Analyzer issues

* Review
2023-05-08 15:18:36 -04:00
Ostap 2c81997f0b FirebaseInAppMessaging: Fix crash on message presentation while a CarPlay scene is running (#11232) 2023-05-05 11:26:50 -07:00
Sam Edson f5af4a98e2 Upgrade nanopb to 0.3.9.9 for collection of SDKs (#10447) 2022-11-02 15:32:44 -04:00
Sam Edson ba0f4f2693 Combine nanopb scripts into a single location (#10439) 2022-11-02 14:56:58 -04:00
Paul Beusterien 55440b6390 pb-fiam-app-store (#10284) 2022-09-28 10:35:52 -04:00
rizafran ba4bf764c1 Change unarchiveObjectWithFile in FIAM to conform to the secure coding practices (#9834)
* Changed unarchiveObjectWithFile with unarchivedObjectOfClass, added supportsSecureCoding (#9816)

* Addressed review feedback

* Run style script

* Changed unarchivedObjectOfClass to unarchivedObjectOfClasses

* Added to changelog, changed NSArray to NSMutableArray
2022-05-24 11:48:06 -04:00
Nick Cooke ced8b554a0 [Infra] Standardize CHANGELOG header format (#9777) 2022-05-10 17:54:58 -04:00
Morgan Chen 9f2a3132fa Use Swift syntax in reference documentation (#9594)
* fix returns typo

* change some headers

* style

* the rest of the header comments

* revert changes to FIRStorageReference
2022-04-08 14:50:22 -07:00
Paul Beusterien 7b946765ec Remove slashes from log messages (#9391) 2022-04-06 14:19:47 -07:00
Paul Beusterien 99275370a2 Merge remote-tracking branch 'origin/master' into v9b 2022-04-06 09:56:33 -07:00
Morgan Chen 7a273e7bae fix returns typo (#9541) 2022-03-31 11:37:45 -07:00
Nick Cooke a09083f9d0 [v9] Reorganize FirebaseCore* modules (#9482)
* [skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`

* Reorganize FirebaseCore libraries for SPM and CP

* [skip ci] Revert "[skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`"

This reverts commit 2a837e39708c21b0a324743ab226bd6c01047de7.

* Review and fix CI

* Remove `heartbeat_logging.yml` and add `core_internal.yml`

* Remove trailing whitespace

* Fix more whitespace 😞

* Fix `core_internal.yml` scheme name

* Update `check_imports.swift` and TODO

* Review

* Add FirebaseCoreInternal pod to Firestore example's Podfile

* [skip ci] Review - remove TODOs

* [skip ci] Remove duplicate `XCTest` import
2022-03-23 06:08:14 -07:00
Paul Beusterien 4f793064da Set up Core Internal for SPM (#9298) 2022-03-23 06:07:17 -07:00
Philipp Hofmann f7ebbc146b Fix typo in FIRIAMBaseRenderingViewController (#9404) 2022-03-02 06:21:22 -08:00
Fumito Ito 3784deb858 pass appData for In-App Messaging's test message (#9134)
* add test to check appData parsing

* parse appData for test message

* fix by formatter
2022-01-26 10:22:39 -08:00
Eldhose M Babu 62c0e75ca3 Fix : Duplicate messages can occur when two campaigns are triggered by different events (#9138)
* [fixed] Duplicate messages can occur when two campaigns are triggered by different events in In-App Messaging (#9070).
2022-01-05 11:02:36 -08:00
alien190 56535837c4 Fix for issue #8907 InApp message is shown every new session (#8922)
* Fix for issue #8907 InApp message is shown every new session (timestamp of the impression record is always 0 seconds).
2021-12-03 12:59:36 -08:00
Paul Beusterien c7c0149351 Update to clang-format@13 (#8739) 2021-10-04 07:52:21 -07:00
Yakov Manshin d28849cb12 [#8485] Added URL Recovery for IAM URLs (#8486)
* 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
2021-08-11 06:37:32 -07:00
Yakov Manshin 33ce2c2da4 [#8482] Fixed Crash Caused by Invalid IAM Image URL (#8483)
* Fixed a bug where an invalid image URL string in an in-app message crashed the client app
* A URL string is considered invalid if the `[NSURL URLWithString:]` method produces `nil`
2021-08-09 11:51:30 -07:00
Morgan Chen 6a817139d3 Update FIAM to use NS_UNAVAILABLE (#8480)
* Update fiam to use ns_unavailable

* add pr number

* Add missing doc comment

* fix test
2021-08-03 08:42:33 -07:00
Paul Beusterien d287788cf7 Fix tvOS SPM tests (#8403) 2021-07-20 09:11:24 -07:00
Paul Beusterien c0df01d5f0 Fix Xcode 13 beta 3 build issues (#8405) 2021-07-19 07:18:36 -07:00
christibbs 6e3f659207 Add support for testing in-app messages in SwiftUI previews (#8351)
* 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
2021-07-16 16:04:14 -04:00
Paul Beusterien 0d90f2f12d Update to clang-format 12.0.1 (#8397) 2021-07-16 11:40:42 -07:00
Fumito Ito 5e787f2fac Fix lack of parse for fiam modal action button (#8140)
* fix lack of parse for modal action button

* add test for modal button text color
2021-06-07 12:28:09 -04:00
christibbs 62c71f98d7 Fix setting of in-app message type in FIRInAppMessagingImageOnlyDisplay initializer (#8118)
* Fix message type in ImageOnlyMessage initializer

* Update CHANGELOG
2021-05-19 11:53:29 -07:00
Nick Cooke a05ce1cf0a Reorganize FIAM's Resources for FIAM (#7788) 2021-04-06 17:09:54 -04:00
Yakov Manshin aa05e91a10 [#7791] Removed Duplicate Code in IAM (#7792)
* Removed `FIRIAMRenderingWindowHelper`’s `UIWindowForImageOnlyView` method whose body was identical to `UIWindowForModalView`’s
* Renamed `UIWindowForModalView` to `windowForBlockingView` and `UIWindowForBannerView` to `windowForNonBlockingView`, respectively, to clarify their purpose
2021-03-29 12:56:26 -04:00
christibbs e22c7a7b44 Display custom FIAMs with SwiftUI (#7496)
* Revert to previous nil check on experiment JSON

* Add Swift extensions podspec

* Add viewmodifier for displaying custom in-app messages w/ SwiftUI

* Add Multiplatform project to integration test SwiftUI pod

* We don't support macOS yet, comment that out from the Podfile

* Fix variable renaming bug

* View modifier implementation that works, but design is questionable

* Super basic integration

* Split view modifiers based on in-app message subtype

* Fix versioning in podspec

* Configure Firebase in test app

* Remove trailing whitespace

* Clean up SDK fetching code, sample app

* Updates to sample code, fully functional modal message now

* Update implementing app example

* Better code readability for view modifiers

* Add unit tests for DelegateBridge

* Add test target to pod spec

* Add copyright notices

* Remove whitespace from pod spec

* Add auto-complete documentation for in-app message extensions

* Lowered min target

* Update Package.swift

* First pass at CI updates

* @available(13) for SwiftUI structs

* Use singleton DelegateBridge

* Update inappmessaging.yml

* Run scripts/style.sh

* Update build.sh

* Modify build.sh

* Update CHANGELOG, try something new with GHA configuration

* Let's try this for GHA

* Fully qualify FIAM message enums

* Remove redundant type declaration

* Let's try direct instantiation of messages in unit tests

* Test CI build works without actual test cases

* Let's try this, making init available.

* Try exposing initializer

* Expose simpler initializer for in-app message superclass

* Fix up UI test app initializers

* Update CHANGELOG, GHA workflows

* Cleaner GHA test flow

* Clean up custom in-app message view modifier implementation

* Configuration cleanup

* Add some tests to ensure FIAM SwiftUI API compiles

* Add SpecsDev to Podfile of integration testing app. Make @State var private
2021-03-16 19:40:03 -04:00
christibbs f6d3a8c614 Better VoiceOver experience for in-app messages (#7445)
* Better accessibility labels for FIAM images and close buttons

* At FIAM display time, announce that the message has appeared in VoiceOver mode

* In VoiceOver mode, announce the close button last. This is a better accessibility experience for finding the close button.

* For modal messages, include the action button in accessibility elements. Exclude the image view if there's no image.

* Update CHANGELOG

* Include campaign name in accessibility label for images

* Fix failing modal message UI tests
2021-02-04 17:03:44 -05:00
christibbs 30e6caef1a Track conversions on in-app message campaigns without a clickthrough URL (#7306)
* 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
2021-02-04 15:47:17 -05:00
Yakov Manshin 81138ebb4b [#7309] Fixed messageDisplaySuppressed Ignored on Slow Networks (#7313)
* Added suppressMessageDisplay Check Before Message Display

* Updated FIRIAMDisplayExecutorTests

* Updated Format with style.sh

* Added Logging for Early Return in FIRIAMDisplayExecutor
2021-02-02 11:29:23 -05:00
christibbs 7cca96207d Fix FIAM test on device crash (#7328)
* Revert to previous nil check on experiment JSON

* Remove assert in FIRIAMDisplayExecutor

* Update CHANGELOG

* Change nullability of imageData in displayMessageWithDefinition:

* Keep nullability with card initializers, put nil message return back if imageData is nil

* Revert back to explicit non-null

* Actually shouldn't be nonnull due to other message types w/ optional imageData 😅
2021-01-20 18:13:15 -05:00
Paul Beusterien 1e9deea6cf Make FIAM tvOS minimum version consistent with Firebase (#7263) 2021-01-07 09:29:57 -08:00
christibbs b41a127336 Support in-app messaging on tvOS apps (#7160)
* Unlock tvOS for in-app messaging. Podspec needs refactoring

* Remove trailing whitespace

* Remove trailing whitespace

* Fix whitespace

* Add tvOS tests to GHA

* Add TARGET_OS_TV to endifs. Get rid of another pre iOS10 URL open check

* Fix yml for GHA

* Don't build default UI sample app on tvOS

* Better logging for nil message display component in tvOS

* Silence archiving deprecation warnings

* Lower tvOS support target
2020-12-17 18:53:19 -05:00
christibbs 6e1ba33a56 Use initWithFrame: to create the in-app message window in non-UIScene apps (#7080)
* If the app doesn't have a scene delegate, use initWithFrame: to create the in-app message window

* Refactor window creation method for iOS 13 and above

* Add CHANGELOG entry

* Fix CHANGELOG entry
2020-12-03 15:31:45 -05:00
Jim Hays fad62c0448 Change instances of 'dimiss' to 'dismiss' (#6708) 2020-10-12 12:47:19 -04:00
Paul Beusterien 672256e11e C API for Firebase Version (#6690) 2020-10-07 15:03:20 -07:00
Paul Beusterien 83e898ab5c One Firebase version (#6634) 2020-10-02 12:26:22 -07:00
christibbs 00a3021c47 Remove deprecated elements of FIAM API (#6617)
* Remove deprecated FIAM API

* Remove call to deprecated method

* Fix imports

* Modify view controllers to use dummy test subclasses for message objects

* Add bridging header, include it in test app

* Add CHANGELOG entry

* Revert "Add CHANGELOG entry"

This reverts commit 55c0bbcff5.

* Add CHANGELOG entry

* Swift formatting

* Add LLC to copyright notice

* Revert "Fix imports"

This reverts commit 55fdbbd3e0.
2020-10-01 16:00:57 -04:00
Paul Beusterien f2bcd5d82b Make all GoogleUtilities APIs public (#6588) 2020-09-29 07:26:10 -07:00
Paul Beusterien 3ca4e99c0e Stop requiring pods to be static frameworks (#6557) 2020-09-28 14:08:16 -07:00
Paul Beusterien 7ba2dd49c7 Delete redundant unused files (#6294) 2020-08-18 18:51:17 -04:00
Paul Beusterien 60927d9394 SPM - FIAM (#6257) 2020-08-12 11:21:06 -07:00