Commit Graph
55 Commits
Author SHA1 Message Date
2c8ed61b87 Merge release 7.1.0 (#6944)
* Update versions for Release 7.1.0

* 7.1.0 update version of close source podspecs

* Release 7.1.0 cherry picks (#6917)

* FCM: Fix crash on iOS 14 when multiple app delegate completion methods are called (#6863)

* Fix crash on iOS 14 when multiple completion methods are called

* Fixed lint

* Addressed the PR comments & implemented unit tests

* Reverted auto-extracted method

* Re-organized tests

* Added completion handler for FIRAuth

* Manifest: GDT 8.0.1

* Update Changelogs for 7.1.0 (#6913)

* Changelogs

Co-authored-by: Mike Gerasimenko <github@gerasimenko.me>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Bump GDT podspec version to 8.0.1

* 7.1.0 SPM Analytics (#6933)

* Carthage update 7.1.0 (#6943)

Co-authored-by: Mike Gerasimenko <github@gerasimenko.me>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-11-11 09:25:42 -05:00
Paul Beusterien dafade5026 Bump nanopb to fix Xcode 12 warning (#6659) 2020-10-05 09:50:50 -07:00
Paul Beusterien 83e898ab5c One Firebase version (#6634) 2020-10-02 12:26:22 -07:00
Paul Beusterien 12c9e3fef0 Stop using CocoaPods private headers (#6572) 2020-10-02 09:11:21 -07: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 a39b515f3a Update podspecs to min iOS 10 (#6517) 2020-09-22 15:11:35 -07:00
Ryan Wilson 01fb2395bf Merging the 6.31.0 release into master (#6331) 2020-08-25 15:13:11 -07:00
f33276f530 Update nanopb py3 0.3.9.5 -> 0.3.9.6 (#6214)
* update nanopb from 0.3.9.5 to 0.3.9.6

This fixes issues building firestore SDK with Python3.
Interestingly, latest version 0.4.2 still errors during the build
but 0.3.9.6 works. The git commit for this fix in nanopb
https://github.com/nanopb/nanopb/commit/63f8e5e4946a5f8f0211b454bd37187871c3d023

* Update generated sources

* updating just nanopb dependency version

nanopb updated from 0.3.9.5 to 0.3.9.6
(pod version 1.30905.0 to 1.30906.0)

* Add missing source specifier

* Generated files for protos using nanopb 0.3.9.6

* removed unnecessary whitespaces in files generated by protoc

* using more qualified relative paths for header includes

* Changelog

Co-authored-by: Marek Gilbert <mcg@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-08-14 14:13:01 -07:00
Paul Beusterien 60927d9394 SPM - FIAM (#6257) 2020-08-12 11:21:06 -07:00
Paul Beusterien 9a24e538a2 Update podspec dependencies for 6.30.0 (#6203) 2020-08-04 12:27:12 -07:00
Paul Beusterien 6d8edf902c Update versions for Release 6.29.0 (#6146) 2020-07-28 13:07:39 -07:00
Paul Beusterien 97e9eb32bf Fix internal ABT imports (#6108) 2020-07-22 11:17:56 -07:00
Maksym Malyhin 05b2458394 Merging the 6.28.0 release into master (#6040)
* Update versions for Release 6.28.0

* Release 6.28.0 - GDT cherry pick of #6010 and #6032 (#6035)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started (#6032)

* [GDTCORUploadCoordinator startTimer]: don't restart timer if already started

* style

* `GDTCORUploadCoordinator.timer` - nullable

* GDTCORUploadCoordinator test utils thread safety.

* GDTCORFlatFileStorage: keep not expired events when expired batch removed (#6010)

* GDTCORFlatFileStorage: expiration clean up tests

* GDTCORFlatFileStorage: keep not expired events when expired batch removed

* Cleanup

* Cleanup

* Comments

* Comments

* Remove additional delays in tests

* style

* Changelog

* Changelog: remove 7.0.1
2020-07-14 20:09:13 -04:00
Paul Beusterien 2660d49c7d ABTesting - Repo-relative imports and SwiftPM (#6013) 2020-07-09 15:48:47 -07:00
christibbsandPaul Beusterien 9b484519f2 Remove Protobuf from the ABT SDK (#5890)
* 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>
2020-07-06 13:06:39 -04:00
Paul Beusterien 4ace41dd2f Fix FIS private path (#5919) 2020-06-25 15:54:44 -07:00
Paul Beusterien 5a5914da7e GDT Repo-relative imports and SPM (#5909) 2020-06-24 17:50:15 -07:00
Paul Beusterien e03a8d91a0 Consolidate GDT and GDTCCT to a single pod (#5902) 2020-06-24 14:09:46 -07:00
Michael Haney 62a98dc01e Update versions and dependencies (#5888)
* Update versions and dependencies

* Fix GDTCCT version
2020-06-23 16:24:30 -07:00
Paul Beusterien c07c89ee75 Repo-relative imports for Installations (#5832) 2020-06-17 07:26:40 -07:00
Paul Beusterien 5f370d6395 Release 6.27.0 (#5830) 2020-06-16 09:15:04 -07:00
Paul Beusterien 3f556ddb9e Update GoogleUtilities' clients with repo-relative imports (#5824) 2020-06-16 09:05:29 -07:00
Paul Beusterien e15724a436 Migrate from interop pods to source_files header access (#5760) 2020-06-09 06:09:27 -07:00
Paul Beusterien d4621a636f Use preserve_paths instead of CocoaPods private (#5758) 2020-06-09 05:21:28 -07:00
Maksym Malyhin a427df4b19 Merging the 6.26.0 (M72) release into master (#5723)
* Update versions for Release 6.26.0

* M72 notices update (#5693)

* M72 notices update

* Revert formatting
2020-06-02 11:54:11 -04:00
Ryan Wilson 6d90b04f22 Merging the 6.25.0 (M71) release into master (#5648)
* Update versions for Release 6.25.0

* Update notices for M71. (#5611)

* Clean up outdated Firebase README (#5610) (#5612)

* Remove MLKit from the M71 release. (#5644)
2020-05-19 19:49:14 -04:00
Michael Haney 4f88be1118 Update GDT CHANGELOGs, versions, and dependencies. (#5480) 2020-04-28 11:11:11 -07:00
Paul Beusterien 68513286e3 Update nanopb to 0.3.9.5 (CocoaPods 1.30905.0) (#4264) 2020-04-27 17:09:59 -07:00
Maksym MalyhinandMichael Haney b2ee5f3a62 Release 6.23.0 (#5426)
* Update versions for Release 6.23.0

* Add FIAM to release manifest (#5383)

* Don't leak upload packages or deadlock on lifecycle events (#5382) (#5384)

* Don't leak upload packages or deadlock on lifecycle events

GDTCORUploadPackages would call targetToStorage in -initWithTarget. When this method was running during app terminate, this would cause a deadlock because calling targetToStorage is re-entrant while GDTCORRegistrar is sending lifecycle events to all the instances it's tracking.

NSTimer's invalidate method is also called whenever a package is completed, retried, or expired, without regard to the presence of a package handler.

A unit test is added to ensure that GDTCORUploadPackage's are not leaked by a retain

TSAN caught no issues

* Don't mark GDTCORUploadPackage -init as unavailable

Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>

* FIAM bump podspec version to 0.19.3 (#5386)

* M69: add FIS. (#5412)

* M69: add FIS.

* Bump FIS version to 1.2.0

Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
2020-04-21 14:34:28 -04:00
Michael Haney b6bda076e6 Update CHANGELOGs and GDT versions and dependencies (#5354)
* Update CHANGELOGs and GDT versions and dependencies

* Update FIRCD CHANGELOG as well

* remove unreleased section from changelogs
2020-04-13 17:04:41 -07:00
Ryan Wilson b38f44d1d5 Merging the 6.22.0 release into master (#5319) 2020-04-08 16:44:22 -07:00
Israel Soto 4616542e1c Explicitly state InAppMessaging's dependency on GoogleUtilities (#5284) 2020-04-03 14:53:44 -07:00
5f5849da37 Merge release 6.21.0 (#5178)
* Update versions for Release 6.21.0

* Libraries should save state if a completion block is requested (#5147) (#5148)

* 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 RC from M67 (#5157)

* Revert "Migrate from using IID SDK for Remote Config to the new FIS SDK (#5096)" (#5156) (#5159)

This reverts commit 887ff82494.

* Only delete events when package was successfully delivered (#5172) (#5173)

* Only delete events when package was successfully delivered

* Add unit test to check that retrying a package delivery doesn't delete an event file

Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
Co-authored-by: Maksym Malyhin <mmaksym@google.com>
2020-03-24 09:31:29 -07:00
christibbs 72397a0c42 Use FIRInstallations SDK to fetch FID and FIS token, send those values in requests to FIAM backend (#5081)
* 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
2020-03-13 17:25:48 -04:00
Maksym MalyhinandSam Edson ae7a3de1bd Merge release 6.19.0 (#5058)
* Update versions for Release 6.19.0

* GoogleDataTransportCCTSupport - bump GoogleDataTransport dependency to ~> 5.0

* FirebaseCoreDiagnostics 1.2.2 - bump GoogleDataTransportCCTSupport dependency to ~> 2.0 (#5016)

* M66 FirebaseCoreDiagnostics added to the release manifest (#5018)

* M66 FIAM GoogleDataTransportCCTSupport dependency bump to '~> 2.0' (#5019)

* Cherry Pick Crashlytics Upload Symbols (#5046) (#5047)

Co-authored-by: Sam Edson <samedson@google.com>

* M66: Crashlytics dependency versions update.

Co-authored-by: Sam Edson <samedson@google.com>
2020-03-10 17:54:29 -04:00
christibbs 4c776d1f74 Support AB testing of Firebase In-App Messages (#5005)
* 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
2020-03-03 19:46:37 -05:00
Ryan Wilson f9a0ee2727 Merging the 6.18.0 release into master (#4974)
* Update versions for Release 6.18.0

* Forward declare class to fix linting. (#4935)

* Revert "Forward declare class to fix linting. (#4935)" (#4937)

This reverts commit 64bbf378bb.
2020-02-26 08:43:38 -08:00
Maksym MalyhinandPaul Beusterien a09718a7f2 Merge release 6.16.0 (#4763)
* Update versions for Release 6.16.0

* FirebasePerformance 3.1.10

* Firebase podspec - set ios.deployment_target = '9.0'  for InAppMessaging

* Delete duplicate function (#4744) (#4748)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Firebase.podspec: Revert Performance version bump (#4758)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-01-28 18:04:14 -05:00
christibbs 48aa5ed5ee FIAM Consolidation (#4705)
* 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
2020-01-22 10:57:00 -05:00
2328d1f365 Merging the 6.15.0 release into master (#4682)
* Update versions for Release 6.15.0

* Update podspec dependencies for M62 (#4640)

* Cherry-picks for M62. (#4650)

* Include GoogleUtilities in the release manifest.

* Crashlytics fix header import ordering issue (#4649)

Co-authored-by: Sam Edson <samedson@google.com>

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
2020-01-14 16:21:34 -08:00
Paul Beusterien 76c766a866 Release 6.14.0 (#4513) 2019-12-17 11:36:36 -08:00
Ryan Wilson bbcac27b72 Release 6.10.0 (#4022)
* Update versions for Release 6.10.0

* Cherrypick #3983 and include Database in release. (#3986)

* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.

* Cherrypick for #3984 along with CHANGELOG update. (#3988)

* Fix race condition in FIRComponentContainer instance creation (#3984)

* Fix race condition in FIRComponentContainer instance creation

Reported in #3967. Users sometimes seeing a crash when multiple threads
concurrently try to create Firestore instances. By inspection I found
that there's a race here where two threads can check for presence in the
cache, see nothing, proceed to creation, both store a value in the cache,
and both return their copies. This would lead to two Firestores being
created for a single App.

This replaces `dispatch_sync` on a serial queue with good old
`@synchronized` blocks. `dispatch_sync` will self-deadlock if called
from a thread already on the queue while `@synchronized` allows
recursion.

No new tests are added because several tests like
`testDependencyDoesntBlock` already cover this case.

* format

* Update Core CHANGELOG

* Update Core CHANGELOG again

* Fix merge from CHANGELOG
2019-10-09 12:10:33 -04:00
Maksym Malyhin 89a276928c Merging the 6.8.0 release into master (#3783)
* Update versions for Release 6.8.0

* RemoteConfig fix pod spec lint (#3715) (#3716)

* ABTesting: add protos to private headers.

* RemoteConfig: #import <FirebaseABTesting/ExperimentPayload.pbobjc.h>

* ./scripts/style.sh

* Remote Config `pod spec lint` fixes (#3717) (#3718)

* Fix ExperimentPayload.pbobjc.h imports

* RemoteConfig tests: add missing headers to spec.

* Revert ExperimentPayload.pbobjc.h import for ABTesting sources.

* Add FDL to M55 (#3724)

* Remove references to UIWebView from DynamicLinks to comply with Apple "ITMS-90809: Deprecated API Usage" (#3723)
* Add FDL to M55

* Fix accessing a destroyed object (#3721) (#3725)

This was caused by running under Asan with XCode 11. Apparently, previous versions of XCode cannot catch it (which is why Travis is passing, apparently).

Also:
* enable "Detect use of stack after return" option for Asan. AFAIU, it can only be enabled in the scheme. It's already enabled for unit tests, this PR additionally enables it for integration tests;
* make Asan failures fail Travis build. They were originally not considered blocking due to some sporadic failures. I haven't seen those for some time, and worst case scenario, we can revert this change.

* Cherry pick GDT changes for 6.8.0 and increment versions (#3770)

* Release 6.8.0: cherry pick of #3764 and #3766 (#3772)

* Gate access to cached instances. (#3766)

* Gate access to cached instances.

This is causing an issue in #3728. Hopefully this will fix it, but no
repro is available yet to test. There's still an underlying race
condition where a `creationBlock` could be called twice for a component
that is supposed to cache the instance returned, but that should be
addressed in a follow up PR.

* Review feedback.

* Iterate from array copy in `latestExperimentStartTimestampBetweenTimestamp:` (#3764)

* Release 6.8.0 cherry pick: conflicting Dynamic Links changelog changes. (#3790)

* Update FDL CHANGELOG (#3781)

* Issue number, not PR number (#3785)
2019-09-06 15:19:25 -04:00
Michael Haney b711dd33b8 Initial nanopb support infra for InAppMessaging (#3546)
To assist with moving to GDT and GDTCCT
2019-08-15 16:01:51 -04:00
Paul Beusterien 24a58ad86a Release 6.6.0 (#3518) 2019-08-07 11:03:41 -07:00
Paul Beusterien 35b9f31af2 Update versions for Release 6.5.0 (#3388) 2019-07-19 10:33:02 -07:00
Ryan Wilson 3374daafd8 Merging the 6.3.0 release into master (#3217)
* Update versions for Release 6.3.0

* Revert "Raise exception when log into Facebook using OAuth.  (#3138)" (#3208) (#3209)

This reverts commit 393d060710.
2019-06-19 16:28:25 -04:00
christibbs 4a33b267d9 Support card template display in FIAM iOS SDK (#2947)
* Add card scene to storyboard, use IBDesignable rounded corners view

* Use IBdesignable rounded corners view for modal message

* Add card message type

* Parse card message type, add new fields for secondary actions and landscape URLs to view model classes

* Display a really basic card message

* Naive landscape image loading (needs error handling)

* Quick bug fix

* Wire up Display to show cards

* Wire up Display to show cards

* Fix tablet width

* Pick right image for orientation

* Remove placeholder image sizing constraints at build time

* Add more test functionality

* Better image sizes

* Size message image out

* Switch to body text view rather than body label

* Make the body text view scrollable. Set correct text color on button.

* Hook up buttons and text color

* Include action URL in messageClicked callback

* Fix action URL

* Update pod specs

* Update message clicked delegate to pass an action object, not just the actionURL

* Change podspec versions back, hook up background color

* Don't animate scroll to top on scroll view

* Fix text scrolling bug

* Fix portrait and landscape fetching code. Fix background color bug

* Flesh out FIRIAMMessageContentDataWithImageURLTests

* Fix up FIRIAMFetchFlowTests

* Fix up FIRIAMMessageClientCacheTests

* Fix up FIRIAMMessageDisplayForTesting

* Fix fetching in FIRIAMMessageContentDataWithImageURL

* Tests for message parsing

* Fix up view controllers for banner, modal, image only. Add a view controller for testing card

* Add required vertical compression resistance for primary and secondary action button

* Add UI tests for card view controller

* Add back deprecated messageClicked: method, call it if the newer method isn't implemented. Make all display delegate methods optional.

* Run scripts/styles.sh

* Documentation cleanup

* Fix style in FIRIAMMessageContentDataWithImageURLTests.m

* Add missing copyright notices

* Bump versions of both FIAM SDKS

* Remove default.profraw

* Address some logging punctuation nits. Cancel landscape image load if portrait image load fails.

* Add missing error flow in image fetch. A few comment nits.

* Shorten up init method for CardDisplayMessage

* Documentation updates

* Deintegrate cocoa pods

* Include landscape image data in test image load class

* Fix Swift naming for InAppMessagingAction in UItests

* Remove card message initializer from public API, place into a private header

* Mark some properties on the card object as readonly that should've been already, Find a way to initialize a card message in the UI tests.

* Bump dependency on InAppMessaging given changes

* Bump versions in podspecs for both SDKs

* Make all view model properties for message subclasses readonly

* Revert changes to other message subclasses

* Make card view model properties readonly

* Run styles.sh
2019-05-24 18:31:16 -04:00
Maksym Malyhin 39fe9ddd68 Merging the 6.1.0 release into master (#3049)
* Update versions for Release 6.1.0

* Release 6.1.0 - cherry pick of #3007 (#3011)

* 6.1.0 manifest updated. FirebaseInAppMessaging bumped to 0.14.1

* Early return from sending analytics events in instance ID is nil (#3007)
2019-05-21 18:58:06 -04:00