Files
GoogleUtilities/GoogleUtilities.podspec
T
Nick Cooke e4035cf5d3 infra: remove OCMock dependency (#243)
* test: migrate away from OCMock

Replace dynamic OCMock mocks with handwritten fake classes across the test suite to improve Swift interoperability, address concurrency issues, and reduce test brittleness. Removed OCMock from podspec and SPM dependencies.

* gemfile

* Remove other files and deps

* Apply suggestion from @ncooke3

* Apply suggestion from @ncooke3
2026-08-04 14:49:15 -04:00

169 lines
5.5 KiB
Ruby

Pod::Spec.new do |s|
s.name = 'GoogleUtilities'
s.version = '8.1.2'
s.summary = 'Google Utilities for Apple platform SDKs'
s.description = <<-DESC
Internal Google Utilities including Network, Reachability Environment, Logger and Swizzling for
other Google CocoaPods. They're not intended for direct public usage.
DESC
s.homepage = 'https://github.com/google/GoogleUtilities'
s.license = { :type => 'Apache-2.0', :file => 'LICENSE' }
s.authors = 'Google, Inc.'
s.source = {
:git => 'https://github.com/google/GoogleUtilities.git',
:tag => 'CocoaPods-' + s.version.to_s
}
ios_deployment_target = '12.0'
osx_deployment_target = '10.15'
tvos_deployment_target = '13.0'
watchos_deployment_target = '7.0'
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.4.0'
s.prefix_header_file = false
s.pod_target_xcconfig = {
'GCC_C_LANGUAGE_STANDARD' => 'c99',
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
}
s.subspec 'Privacy' do |cs|
cs.resource_bundles = {
"GoogleUtilities_Privacy" => 'GoogleUtilities/Privacy/Resources/PrivacyInfo.xcprivacy'
}
end
s.subspec 'Environment' do |es|
es.source_files = [
'GoogleUtilities/Environment/**/*.[mh]',
'third_party/IsAppEncrypted/**/*.[mh]'
]
es.public_header_files = 'GoogleUtilities/Environment/Public/GoogleUtilities/*.h'
es.dependency 'GoogleUtilities/Privacy'
es.frameworks = [
'Security'
]
end
s.subspec 'Logger' do |ls|
ls.source_files = 'GoogleUtilities/Logger/**/*.[mh]'
ls.public_header_files = 'GoogleUtilities/Logger/Public/GoogleUtilities/*.h'
ls.dependency 'GoogleUtilities/Environment'
ls.dependency 'GoogleUtilities/Privacy'
end
s.subspec 'Network' do |ns|
ns.source_files = 'GoogleUtilities/Network/**/*.[mh]'
ns.public_header_files = 'GoogleUtilities/Network/Public/GoogleUtilities/*.h'
ns.dependency 'GoogleUtilities/NSData+zlib'
ns.dependency 'GoogleUtilities/Logger'
ns.dependency 'GoogleUtilities/Reachability'
ns.dependency 'GoogleUtilities/Privacy'
ns.frameworks = [
'Security'
]
end
s.subspec 'NSData+zlib' do |ns|
ns.source_files = 'GoogleUtilities/NSData+zlib/**/*.[mh]'
ns.public_header_files = 'GoogleUtilities/NSData+zlib/Public/GoogleUtilities/*.h'
ns.dependency 'GoogleUtilities/Privacy'
ns.libraries = [
'z'
]
end
s.subspec 'Reachability' do |rs|
rs.source_files = 'GoogleUtilities/Reachability/**/*.[mh]'
rs.public_header_files = 'GoogleUtilities/Reachability/Public/GoogleUtilities/*.h'
rs.dependency 'GoogleUtilities/Privacy'
rs.ios.frameworks = [
'SystemConfiguration'
]
rs.osx.frameworks = [
'SystemConfiguration'
]
rs.tvos.frameworks = [
'SystemConfiguration'
]
rs.dependency 'GoogleUtilities/Logger'
end
s.subspec 'AppDelegateSwizzler' do |adss|
adss.source_files = [
'GoogleUtilities/AppDelegateSwizzler/Internal/*.h',
'GoogleUtilities/AppDelegateSwizzler/Public/**/*.h',
'GoogleUtilities/AppDelegateSwizzler/*.m',
'GoogleUtilities/Common/*.h',
]
adss.public_header_files = [
'GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/*.h',
]
adss.dependency 'GoogleUtilities/Privacy'
adss.dependency 'GoogleUtilities/Logger'
adss.dependency 'GoogleUtilities/Network'
adss.dependency 'GoogleUtilities/Environment'
end
s.subspec 'MethodSwizzler' do |mss|
mss.source_files = 'GoogleUtilities/MethodSwizzler/**/*.[mh]', 'GoogleUtilities/Common/*.h'
mss.public_header_files = 'GoogleUtilities/MethodSwizzler/Public/GoogleUtilities/*.h'
mss.dependency 'GoogleUtilities/Logger'
mss.dependency 'GoogleUtilities/Privacy'
end
s.subspec 'SwizzlerTestHelpers' do |sths|
sths.source_files = 'GoogleUtilities/SwizzlerTestHelpers/**/*.[hm]'
sths.public_header_files = 'GoogleUtilities/SwizzlerTestHelpers/Public/GoogleUtilities/*.h'
sths.dependency 'GoogleUtilities/MethodSwizzler'
end
s.subspec 'UserDefaults' do |ud|
ud.source_files = 'GoogleUtilities/UserDefaults/**/*.[hm]'
ud.public_header_files = 'GoogleUtilities/UserDefaults/Public/GoogleUtilities/*.h'
ud.dependency 'GoogleUtilities/Logger'
ud.dependency 'GoogleUtilities/Privacy'
end
s.test_spec 'unit' do |unit_tests|
unit_tests.scheme = { :code_coverage => true }
unit_tests.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
unit_tests.source_files = [
'GoogleUtilities/Tests/Unit/**/*.[mh]',
]
# All tests require arc except Tests/Network/third_party/GTMHTTPServer.m
unit_tests.requires_arc = [
'GoogleUtilities/Tests/Unit/*/*.[mh]',
'GoogleUtilities/Tests/Unit/Environment/**/*.[mh]'
]
unit_tests.requires_app_host = true
end
s.test_spec 'unit-swift' do |unit_tests_swift|
unit_tests_swift.scheme = { :code_coverage => true }
unit_tests_swift.platforms = {
:ios => ios_deployment_target,
:osx => osx_deployment_target,
:tvos => tvos_deployment_target
}
unit_tests_swift.source_files = 'GoogleUtilities/Tests/SwiftUnit/**/*.swift',
'GoogleUtilities/Tests/SwiftUnit/**/*.h'
unit_tests_swift.requires_app_host = true
end
end