FirebaseAuth.podspec 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. Pod::Spec.new do |s|
  2. s.name = 'FirebaseAuth'
  3. s.version = '10.12.0'
  4. s.summary = 'Apple platform client for Firebase Authentication'
  5. s.description = <<-DESC
  6. Firebase Authentication allows you to manage your own account system without any backend code. It
  7. supports email and password accounts, as well as several 3rd party authentication mechanisms.
  8. DESC
  9. s.homepage = 'https://firebase.google.com'
  10. s.license = { :type => 'Apache-2.0', :file => 'LICENSE' }
  11. s.authors = 'Google, Inc.'
  12. s.source = {
  13. :git => 'https://github.com/firebase/firebase-ios-sdk.git',
  14. :tag => 'CocoaPods-' + s.version.to_s
  15. }
  16. s.social_media_url = 'https://twitter.com/Firebase'
  17. ios_deployment_target = '11.0'
  18. osx_deployment_target = '10.13'
  19. tvos_deployment_target = '12.0'
  20. watchos_deployment_target = '6.0'
  21. s.swift_version = '5.3'
  22. s.prepare_command = <<-CMD
  23. ruby scripts/build_private_module_map.rb FirebaseAuth.podspec
  24. CMD
  25. s.ios.deployment_target = ios_deployment_target
  26. s.osx.deployment_target = osx_deployment_target
  27. s.tvos.deployment_target = tvos_deployment_target
  28. s.watchos.deployment_target = watchos_deployment_target
  29. s.cocoapods_version = '>= 1.4.0'
  30. s.prefix_header_file = false
  31. source = 'FirebaseAuth/Sources/'
  32. s.source_files = [
  33. 'FirebaseAuth/Sources/Swift/**/*.swift',
  34. source + '**/*.[mh]',
  35. 'FirebaseCore/Extension/*.h',
  36. 'FirebaseAuth/Interop/*.h',
  37. 'FirebaseAppCheck/Interop/*.h',
  38. ]
  39. s.public_header_files = source + 'Public/FirebaseAuth/*.h'
  40. # All headers except the ones in the `Public` should be private.
  41. s.private_header_files = Dir['FirebaseAuth/Sources/**/*.h']
  42. .reject{ |f| f['FirebaseAuth/Sources/Public/'] } + [
  43. 'FirebaseCore/Extension/*.h',
  44. 'FirebaseAuth/Interop/*.h'
  45. ]
  46. s.preserve_paths = [
  47. 'FirebaseAuth/README.md',
  48. 'FirebaseAuth/CHANGELOG.md'
  49. ]
  50. s.pod_target_xcconfig = {
  51. 'GCC_C_LANGUAGE_STANDARD' => 'c99',
  52. # The second path is to find FirebaseAuth-Swift.h from a pod gen project
  53. 'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}" "${OBJECT_FILE_DIR_normal}/${NATIVE_ARCH_ACTUAL}"',
  54. # Point to the private module map.
  55. 'MODULEMAP_PRIVATE_FILE' =>
  56. '${PODS_TARGET_SRCROOT}/FirebaseAuth/Sources/FirebaseAuth.private.modulemap'
  57. }
  58. s.framework = 'Security'
  59. s.ios.framework = 'SafariServices'
  60. s.dependency 'FirebaseAppCheckInterop', '~> 10.0'
  61. s.dependency 'FirebaseCore', '~> 10.0'
  62. s.dependency 'GoogleUtilities/AppDelegateSwizzler', '~> 7.8'
  63. s.dependency 'GoogleUtilities/Environment', '~> 7.8'
  64. s.dependency 'GTMSessionFetcher/Core', '>= 2.1', '< 4.0'
  65. s.test_spec 'unit' do |unit_tests|
  66. unit_tests.scheme = { :code_coverage => true }
  67. # Unit tests can't run on watchOS.
  68. unit_tests.platforms = {
  69. :ios => ios_deployment_target,
  70. :osx => osx_deployment_target,
  71. :tvos => tvos_deployment_target
  72. }
  73. unit_tests.source_files = 'FirebaseAuth/Tests/Unit/*.[mh]'
  74. unit_tests.osx.exclude_files = [
  75. 'FirebaseAuth/Tests/Unit/FIRAuthAPNSTokenManagerTests.m',
  76. 'FirebaseAuth/Tests/Unit/FIRAuthAPNSTokenTests.m',
  77. 'FirebaseAuth/Tests/Unit/FIRAuthAppCredentialManagerTests.m',
  78. 'FirebaseAuth/Tests/Unit/FIRAuthNotificationManagerTests.m',
  79. 'FirebaseAuth/Tests/Unit/FIRAuthURLPresenterTests.m',
  80. 'FirebaseAuth/Tests/Unit/FIREmailLink*',
  81. 'FirebaseAuth/Tests/Unit/FIRPhoneAuthProviderTests.m',
  82. 'FirebaseAuth/Tests/Unit/FIRSendVerificationCode*',
  83. 'FirebaseAuth/Tests/Unit/FIRSignInWithGameCenterTests.m',
  84. 'FirebaseAuth/Tests/Unit/FIRVerifyClient*',
  85. 'FirebaseAuth/Tests/Unit/FIRVerifyPhoneNumber*',
  86. 'FirebaseAuth/Tests/Unit/FIROAuthProviderTests.m',
  87. 'FirebaseAuth/Tests/Unit/FIRMultiFactorResolverTests.m',
  88. ]
  89. unit_tests.tvos.exclude_files = [
  90. 'FirebaseAuth/Tests/Unit/FIRAuthAPNSTokenManagerTests.m',
  91. 'FirebaseAuth/Tests/Unit/FIRAuthNotificationManagerTests.m',
  92. 'FirebaseAuth/Tests/Unit/FIRAuthURLPresenterTests.m',
  93. 'FirebaseAuth/Tests/Unit/FIREmailLink*',
  94. 'FirebaseAuth/Tests/Unit/FIRPhoneAuthProviderTests.m',
  95. 'FirebaseAuth/Tests/Unit/FIRSendVerificationCode*',
  96. 'FirebaseAuth/Tests/Unit/FIRSignInWithGameCenterTests.m',
  97. 'FirebaseAuth/Tests/Unit/FIRVerifyClient*',
  98. 'FirebaseAuth/Tests/Unit/FIRVerifyPhoneNumber*',
  99. 'FirebaseAuth/Tests/Unit/FIROAuthProviderTests.m',
  100. 'FirebaseAuth/Tests/Unit/FIRMultiFactorResolverTests.m',
  101. ]
  102. # app_host is needed for tests with keychain
  103. unit_tests.requires_app_host = true
  104. unit_tests.dependency 'OCMock'
  105. # This pre-processor directive is used to selectively disable keychain
  106. # related code that blocks unit testing on macOS.
  107. s.osx.pod_target_xcconfig = {
  108. 'GCC_PREPROCESSOR_DEFINITIONS' => 'FIREBASE_AUTH_MACOS_TESTING=1'
  109. }
  110. end
  111. end