Files
firebase-ios-sdk/FirebaseAppCheck.podspec
T
Andrew Heard c06a1d7199 feat(appcheck): read CLI debug token on Simulator (#17017)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>

In a Simulator, AppCheckDebugProvider now uses the debug token that
`firebase appcheck:debugtokens:create` saves to
~/.config/configstore/firebase-appcheck.json on the host, so apps
launched from Xcode work without manually registering a token. The
token is looked up by each app's Google App ID through
SIMULATOR_HOST_HOME. The lookup is compiled out on devices, macOS and
Mac Catalyst. No public API changes.

Debug tokens are now resolved in this order:
1. AppCheckDebugToken or FIRAAppCheckDebugToken environment variable
2. Token from the CLI config store (Simulator only)
3. Token stored in UserDefaults
4. Newly generated UUID

The config store comes before the stored token so a newly provisioned
token takes effect without reinstalling the app.

Logging:
- I-FAA004003: debug token loaded from the config store.
- I-FAA004004: exchanging the config store token failed; suggests
  re-running the CLI with --force and relaunching.
- I-FAA004002: exchanging an environment variable token failed; now
  names the variables instead of showing an unrelated local token.
- I-FAA004005: the config store exists but can't be read or parsed.
A missing file, or a path where it can't exist (e.g., ~/.config is a
regular file), is silent. Exchange-failure warnings are skipped when
the server is unreachable, and no message includes the token.
2026-11-06 19:23:51 -05:00

107 lines
3.3 KiB
Ruby

Pod::Spec.new do |s|
s.name = 'FirebaseAppCheck'
s.version = '13.2.0'
s.summary = 'Firebase App Check SDK.'
s.description = <<-DESC
Firebase SDK for anti-abuse compatibility.
DESC
s.homepage = 'https://firebase.google.com'
s.license = { :type => 'Apache-2.0', :file => 'LICENSE' }
s.authors = 'Google, Inc.'
s.source = {
:git => 'https://github.com/firebase/firebase-ios-sdk.git',
:tag => 'CocoaPods-' + s.version.to_s
}
s.social_media_url = 'https://twitter.com/Firebase'
ios_deployment_target = '15.0'
osx_deployment_target = '11.0'
tvos_deployment_target = '15.0'
watchos_deployment_target = '8.0'
s.swift_version = '5.9'
s.ios.deployment_target = ios_deployment_target
s.osx.deployment_target = osx_deployment_target
s.tvos.deployment_target = tvos_deployment_target
s.watchos.deployment_target = watchos_deployment_target
s.cocoapods_version = '>= 1.12.0'
s.prefix_header_file = false
base_dir = "FirebaseAppCheck/"
s.source_files = [
base_dir + 'Sources/**/*.[mh]',
'FirebaseCore/Extension/*.h',
]
s.public_header_files = base_dir + 'Sources/Public/FirebaseAppCheck/*.h'
s.ios.weak_framework = 'DeviceCheck'
s.osx.weak_framework = 'DeviceCheck'
s.tvos.weak_framework = 'DeviceCheck'
s.dependency 'AppCheckCore', '~> 12.1'
s.dependency 'FirebaseAppCheckInterop', '~> 13.2.0'
s.dependency 'FirebaseCore', '~> 13.2.0'
s.dependency 'GoogleUtilities/Environment', '>= 8.1.3', '< 9.0'
s.dependency 'GoogleUtilities/UserDefaults', '>= 8.1.3', '< 9.0'
s.pod_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
'PRODUCT_BUNDLE_IDENTIFIER' => 'com.google.firebase.FirebaseAppCheck'
}
s.test_spec 'unit' do |unit_tests|
unit_tests.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
unit_tests.source_files = [
base_dir + 'Tests/Unit/**/*.[mh]',
'SharedTestUtilities/AppCheckFake/*',
'SharedTestUtilities/AppCheckBackoffWrapperFake/*',
'SharedTestUtilities/Date/*',
'SharedTestUtilities/URLSession/*',
]
unit_tests.resources = base_dir + 'Tests/Unit/Fixture/**/*'
unit_tests.dependency 'OCMock'
unit_tests.requires_app_host = true
end
s.test_spec 'integration' do |integration_tests|
integration_tests.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
integration_tests.source_files = [
base_dir + 'Tests/Integration/**/*.swift',
]
integration_tests.requires_app_host = true
end
s.test_spec 'swift-unit' do |swift_unit_tests|
swift_unit_tests.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
swift_unit_tests.source_files = [
base_dir + 'Tests/Unit/Swift/**/*.swift',
'SharedTestUtilities/ExceptionCatcher.[mh]'
]
swift_unit_tests.pod_target_xcconfig = {
'SWIFT_OBJC_BRIDGING_HEADER' => '$(PODS_TARGET_SRCROOT)/FirebaseAppCheck/Tests/Unit/Swift/FirebaseAppCheck-unit-Bridging-Header.h'
}
swift_unit_tests.dependency 'FirebaseCoreExtension', '~> 13.2.0'
end
end