Files
firebase-ios-sdk/FirebaseAuth.podspec
T
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

107 lines
4.2 KiB
Ruby

Pod::Spec.new do |s|
s.name = 'FirebaseAuth'
s.version = '6.3.0'
s.summary = 'The official iOS client for Firebase Authentication (plus community support for macOS and tvOS)'
s.description = <<-DESC
Firebase Authentication allows you to manage your own account system without any backend code. It
supports email and password accounts, as well as several 3rd party authentication mechanisms.
DESC
s.homepage = 'https://firebase.google.com'
s.license = { :type => 'Apache', :file => 'LICENSE' }
s.authors = 'Google, Inc.'
s.source = {
:git => 'https://github.com/firebase/firebase-ios-sdk.git',
:tag => 'Auth-' + s.version.to_s
}
s.social_media_url = 'https://twitter.com/Firebase'
s.ios.deployment_target = '8.0'
s.osx.deployment_target = '10.11'
s.tvos.deployment_target = '10.0'
s.cocoapods_version = '>= 1.4.0'
s.static_framework = true
s.prefix_header_file = false
source = 'Firebase/Auth/Source/'
s.source_files = source + '**/*.[mh]'
s.osx.exclude_files = [
source + '**/FIRAuthNotificationManager.[mh]',
source + '**/FIRAuthAppCredentialManager.[mh]',
source + '**/FIRAuthAPNSTokenManager.[mh]',
source + '**/FIRAuthAPNSTokenType.[mh]',
source + '**/FIRAuthAPNSToken.[mh]',
source + '**/FIRAuthDefaultUIDelegate.[mh]',
source + '**/FIRAuthUIDelegate.h',
source + '**/FIRAuthURLPresenter.[mh]',
source + '**/FIRAuthWebView.[mh]',
source + '**/FIRAuthWebViewController.[mh]',
source + '**/FIRPhoneAuthCredential.[mh]',
source + '**/FIRPhoneAuthProvider.[mh]'
]
s.tvos.exclude_files = [
source + '**/FIRAuthURLPresenter.[mh]',
source + '**/FIRAuthWebView.[mh]',
source + '**/FIRAuthWebViewController.[mh]',
source + '**/FIRPhoneAuthCredential.[mh]',
source + '**/FIRPhoneAuthProvider.[mh]'
]
s.public_header_files = source + 'Public/*.h'
s.preserve_paths = [
'Firebase/Auth/README.md',
'Firebase/Auth/CHANGELOG.md'
]
s.pod_target_xcconfig = {
'GCC_C_LANGUAGE_STANDARD' => 'c99',
'GCC_PREPROCESSOR_DEFINITIONS' =>
'FIRAuth_VERSION=' + s.version.to_s +
' FIRAuth_MINOR_VERSION=' + s.version.to_s.split(".")[0] + "." + s.version.to_s.split(".")[1]
}
s.framework = 'Security'
s.ios.framework = 'SafariServices'
s.dependency 'FirebaseAuthInterop', '~> 1.0'
s.dependency 'FirebaseCore', '~> 6.2'
s.dependency 'GoogleUtilities/AppDelegateSwizzler', '~> 6.2'
s.dependency 'GoogleUtilities/Environment', '~> 6.2'
s.dependency 'GTMSessionFetcher/Core', '~> 1.1'
s.test_spec 'unit' do |unit_tests|
unit_tests.source_files = 'Example/Auth/Tests/*.[mh]'
unit_tests.osx.exclude_files = [
'Example/Auth/Tests/FIRAuthAPNSTokenManagerTests.m',
'Example/Auth/Tests/FIRAuthAPNSTokenTests.m',
'Example/Auth/Tests/FIRAuthAppCredentialManagerTests.m',
'Example/Auth/Tests/FIRAuthNotificationManagerTests.m',
'Example/Auth/Tests/FIRAuthURLPresenterTests.m',
'Example/Auth/Tests/FIREmailLink*',
'Example/Auth/Tests/FIRPhoneAuthProviderTests.m',
'Example/Auth/Tests/FIRSendVerificationCode*',
'Example/Auth/Tests/FIRSignInWithGameCenterTests.m',
'Example/Auth/Tests/FIRVerifyClient*',
'Example/Auth/Tests/FIRVerifyPhoneNumber*',
'Example/Auth/Tests/FIROAuthProviderTests.m',
]
unit_tests.tvos.exclude_files = [
'Example/Auth/Tests/FIRAuthAPNSTokenManagerTests.m',
'Example/Auth/Tests/FIRAuthNotificationManagerTests.m',
'Example/Auth/Tests/FIRAuthURLPresenterTests.m',
'Example/Auth/Tests/FIREmailLink*',
'Example/Auth/Tests/FIRPhoneAuthProviderTests.m',
'Example/Auth/Tests/FIRSendVerificationCode*',
'Example/Auth/Tests/FIRSignInWithGameCenterTests.m',
'Example/Auth/Tests/FIRVerifyClient*',
'Example/Auth/Tests/FIRVerifyPhoneNumber*',
'Example/Auth/Tests/FIROAuthProviderTests.m',
]
# app_host is needed for tests with keychain
unit_tests.requires_app_host = true
unit_tests.pod_target_xcconfig = {
# Unit tests do library imports using Firebase/Auth/Source recursive relative paths.
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"/Firebase/Auth/Source/**',
}
unit_tests.dependency 'OCMock'
end
end