-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnalyticsSystem.podspec
More file actions
90 lines (78 loc) · 3.44 KB
/
Copy pathAnalyticsSystem.podspec
File metadata and controls
90 lines (78 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Pod::Spec.new do |s|
s.name = 'AnalyticsSystem'
s.version = '2.1.1'
s.summary = 'Multi-provider analytics for Apple platforms, with a dependency-free core.'
s.description = <<-DESC
AnalyticsSystem fans analytics events out to any number of providers behind one small,
Sendable API. The core carries no third-party dependencies; each provider is an opt-in
subspec. Built for Swift 6 strict concurrency.
DESC
s.homepage = 'https://github.com/AndrewKochulab/AnalyticsSystem'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.authors = 'Andrew Kochulab'
s.social_media_url = 'https://github.com/AndrewKochulab'
s.source = {
:git => 'https://github.com/AndrewKochulab/AnalyticsSystem.git',
:tag => s.version.to_s
}
s.ios.deployment_target = '15.0'
s.osx.deployment_target = '12.0'
s.tvos.deployment_target = '15.0'
s.watchos.deployment_target = '8.0'
s.visionos.deployment_target = '1.0'
s.cocoapods_version = '>= 1.13.0'
s.swift_versions = ['6.0']
s.default_subspec = 'Core'
s.static_framework = true
# CocoaPods has no equivalent of SwiftPM package traits, so each provider subspec
# defines the same compilation condition the corresponding trait would. That keeps
# the `#if Firebase` / `#if Facebook` guards in Sources/ identical under both
# package managers — v1 instead deleted the Firebase and Mixpanel subspecs outright,
# so CocoaPods and SwiftPM silently shipped different provider sets.
s.subspec 'Core' do |ss|
ss.source_files = 'Sources/AnalyticsSystem/**/*.swift'
end
s.subspec 'Firebase' do |ss|
ss.dependency 'AnalyticsSystem/Core'
ss.dependency 'Firebase/Analytics', '~> 12.17'
ss.dependency 'Firebase/Crashlytics', '~> 12.17'
ss.source_files = 'Sources/FirebaseProvider/**/*.swift'
ss.pod_target_xcconfig = {
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => '$(inherited) Firebase'
}
# Firebase Analytics supports neither watchOS nor visionOS, so this subspec
# must declare a narrower platform set than the root spec.
ss.platforms = { :ios => '15.0', :osx => '12.0', :tvos => '15.0' }
end
s.subspec 'Facebook' do |ss|
ss.dependency 'AnalyticsSystem/Core'
ss.dependency 'FBSDKCoreKit', '~> 18.1'
ss.source_files = 'Sources/FacebookProvider/**/*.swift'
ss.pod_target_xcconfig = {
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => '$(inherited) Facebook'
}
# The Facebook SDK is iOS-only.
ss.ios.deployment_target = '15.0'
end
s.subspec 'Mixpanel' do |ss|
ss.dependency 'AnalyticsSystem/Core'
ss.dependency 'Mixpanel-swift', '~> 6.5'
ss.source_files = 'Sources/MixpanelProvider/**/*.swift'
ss.pod_target_xcconfig = {
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => '$(inherited) Mixpanel'
}
# The Mixpanel-swift podspec does not declare visionOS, even though its
# SwiftPM manifest builds there.
ss.platforms = { :ios => '15.0', :osx => '12.0', :tvos => '15.0', :watchos => '8.0' }
end
s.subspec 'Bugsnag' do |ss|
ss.dependency 'AnalyticsSystem/Core'
ss.dependency 'Bugsnag', '~> 6.37'
ss.source_files = 'Sources/BugsnagProvider/**/*.swift'
ss.pod_target_xcconfig = {
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => '$(inherited) Bugsnag'
}
# Likewise, the Bugsnag podspec does not declare visionOS.
ss.platforms = { :ios => '15.0', :osx => '12.0', :tvos => '15.0', :watchos => '8.0' }
end
end