cocoapods 1.12.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7eb2a7cb51265484772462e33da3c268da859b1f18adffdb57d6e6f4c2d378a2
4
- data.tar.gz: 4d47bdd4efa9026b670884c3b230adc94ffb69e66953945349e0d4a17f9d6018
3
+ metadata.gz: 333d0f9558f023f5d2b821566ff350ee4efea1fef6e04f603da115ea87169ad8
4
+ data.tar.gz: e6f6e935c5f2fd24f14ef244e421db883d3eb955d9eb6792116eba617d74d68e
5
5
  SHA512:
6
- metadata.gz: 16cd5d292991ab0067b0611eb82e8fe6fa8d50bfe6ee36779bb45d5f14101e1b359d8cf6b8ae15aa74f54f6cb36d441429500ec1f8f7909928a15208b568e67a
7
- data.tar.gz: 22d3de57cb0446e321e740591b5bd9378d3fc0ed4ee1b521b8ec8d33d18608f5a53b75e7086b4e5244221660c6f6f6b4328180d3c7b07a7fbbf562b9b108d58f
6
+ metadata.gz: 6608a00869def16526d88ec06498de4c958261c9f77586967e10a5281f5f96aa78e2424c6a8cbce9cac78873e8199cdd90243d6fba4062e8320c0b03e1b0760a
7
+ data.tar.gz: f1c7a08c14ba8b7dd98ce1a1ca43fa0849e5f2ce272498d9288fcac77e53756472c9cf1057b89ac81bdd902fe27aaaad1b93546ff850f0f094ad51896610f0a9
data/CHANGELOG.md CHANGED
@@ -4,6 +4,49 @@ To install or update CocoaPods see this [guide](https://guides.cocoapods.org/usi
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.14.0 (2023-10-26)
8
+
9
+ ##### Enhancements
10
+
11
+ * None.
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Fix a crash when running with activesupport 7.1.0.
16
+ [MCanhisares](https://github.com/MCanhisares)
17
+ [#12081](https://github.com/CocoaPods/CocoaPods/issues/12081)
18
+
19
+ * Fix another crash when running with activesupport 7.1.0.
20
+ [movila](https://github.com/movila)
21
+ [#12089](https://github.com/CocoaPods/CocoaPods/issues/12089)
22
+
23
+ ##### Other
24
+
25
+ * Drop support for `bazaar` SCM
26
+
27
+
28
+ ## 1.13.0 (2023-09-22)
29
+
30
+ ##### Enhancements
31
+
32
+ * Add `visionOS` as a new platform.
33
+ [Gabriel Donadel](https://github.com/gabrieldonadel)
34
+ [#11965](https://github.com/CocoaPods/CocoaPods/pull/11965)
35
+
36
+ * Extend `script_phase` DSL to support `always_out_of_date` attribute.
37
+ [Alvar Hansen](https://github.com/alvarhansen)
38
+ [#12055](https://github.com/CocoaPods/CocoaPods/pull/12055)
39
+
40
+ ##### Bug Fixes
41
+
42
+ * Use `safe_load` during custom YAML config loading.
43
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
44
+ [#11974](https://github.com/CocoaPods/CocoaPods/pull/11974)
45
+
46
+ * Xcode 15 fix: Replace `DT_TOOLCHAIN_DIR` with `TOOLCHAIN_DIR` when generating script.
47
+ [Marcus Wu](https://github.com/marcuswu0814)
48
+ [#12009](https://github.com/CocoaPods/CocoaPods/pull/12009)
49
+
7
50
  ## 1.12.1 (2023-04-18)
8
51
 
9
52
  ##### Enhancements
@@ -21,9 +64,9 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
21
64
  [Austin Evans](https://github.com/ajevans99)
22
65
  [#11857](https://github.com/CocoaPods/CocoaPods/issues/11857)
23
66
 
24
- # Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
67
+ * Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
25
68
  [Paul Beusterien](https://github.com/paulb777)
26
- [#11846](https://github.com/CocoaPods/CocoaPods/issuess/11846)
69
+ [#11846](https://github.com/CocoaPods/CocoaPods/issues/11846)
27
70
 
28
71
  ## 1.12.0 (2023-02-27)
29
72
 
data/bin/sandbox-pod CHANGED
@@ -61,7 +61,7 @@ PROFILE_ERB_TEMPLATE = <<-EOS
61
61
 
62
62
  (allow file-read-metadata)
63
63
  (allow file-read*
64
- ; This is currenly only added because using `xcodebuild` to build a resource
64
+ ; This is currently only added because using `xcodebuild` to build a resource
65
65
  ; bundle target starts a FSEvents stream on `/`. No idea why that would be
66
66
  ; needed, but for now it doesn’t seem like a real problem.
67
67
  (literal "/")
@@ -181,6 +181,7 @@ Pod::Spec.new do |spec|
181
181
  # spec.osx.deployment_target = "10.7"
182
182
  # spec.watchos.deployment_target = "2.0"
183
183
  # spec.tvos.deployment_target = "9.0"
184
+ # spec.visionos.deployment_target = "1.0"
184
185
 
185
186
 
186
187
  # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
@@ -111,7 +111,8 @@ module Pod
111
111
 
112
112
  if use_user_settings && user_settings_file.exist?
113
113
  require 'yaml'
114
- user_settings = YAML.load_file(user_settings_file)
114
+ user_settings_contents = File.read(user_settings_file)
115
+ user_settings = YAML.safe_load(user_settings_contents)
115
116
  configure_with(user_settings)
116
117
  end
117
118
 
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.12.1'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.14.0'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -57,6 +57,7 @@ module Pod
57
57
  :osx => Version.new('10.8'),
58
58
  :watchos => Version.new('2.0'),
59
59
  :tvos => Version.new('9.0'),
60
+ :visionos => Version.new('1.0'),
60
61
  }
61
62
 
62
63
  # @return [Boolean] Whether the external strings file is supported by the
@@ -63,7 +63,7 @@ echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
63
63
  mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
64
64
 
65
65
  COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
66
- SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
66
+ SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
67
67
  BCSYMBOLMAP_DIR="BCSymbolMaps"
68
68
 
69
69
 
@@ -97,7 +97,7 @@ module Pod
97
97
  #
98
98
  attr_reader :specs
99
99
 
100
- # @return [Symbol] The platform (either `:ios`, `:watchos`, `:tvos`, or `:osx`).
100
+ # @return [Symbol] The platform (either `:ios`, `:watchos`, `:tvos`, `:visionos`, or `:osx`).
101
101
  #
102
102
  attr_reader :platform_name
103
103
 
@@ -139,10 +139,10 @@ module Pod
139
139
  when PodTarget
140
140
  local = sandbox.local?(target.pod_name)
141
141
  checkout_options = sandbox.checkout_sources[target.pod_name]
142
- [label, TargetCacheKey.from_pod_target(sandbox, target, :is_local_pod => local,
143
- :checkout_options => checkout_options)]
142
+ [label, TargetCacheKey.from_pod_target(sandbox, target_by_label, target,
143
+ :is_local_pod => local, :checkout_options => checkout_options)]
144
144
  when AggregateTarget
145
- [label, TargetCacheKey.from_aggregate_target(sandbox, target)]
145
+ [label, TargetCacheKey.from_aggregate_target(sandbox, target_by_label, target)]
146
146
  else
147
147
  raise "[BUG] Unknown target type #{target}"
148
148
  end
@@ -58,6 +58,10 @@ module Pod
58
58
  other_files = other.key_hash['FILES']
59
59
  return :project if this_files != other_files
60
60
 
61
+ this_resources = key_hash['RESOURCES']
62
+ other_resources = other.key_hash['RESOURCES']
63
+ return :project if this_resources != other_resources
64
+
61
65
  this_build_settings = key_hash['BUILD_SETTINGS_CHECKSUM']
62
66
  other_build_settings = other.key_hash['BUILD_SETTINGS_CHECKSUM']
63
67
  return :project if this_build_settings != other_build_settings
@@ -98,6 +102,9 @@ module Pod
98
102
  if specs = cache_hash['SPECS']
99
103
  cache_hash['SPECS'] = specs.sort_by(&:downcase)
100
104
  end
105
+ if resources = cache_hash['RESOURCES']
106
+ cache_hash['RESOURCES'] = resources.sort_by(&:downcase)
107
+ end
101
108
  type = cache_hash['CHECKSUM'] ? :pod_target : :aggregate
102
109
  TargetCacheKey.new(sandbox, type, cache_hash)
103
110
  end
@@ -106,6 +113,9 @@ module Pod
106
113
  #
107
114
  # @param [Sandbox] sandbox The sandbox to use to construct a TargetCacheKey object.
108
115
  #
116
+ # @param [Hash] target_by_label
117
+ # Maps target names to PodTarget objects.
118
+ #
109
119
  # @param [PodTarget] pod_target
110
120
  # The pod target used to construct a TargetCacheKey object.
111
121
  #
@@ -117,7 +127,7 @@ module Pod
117
127
  #
118
128
  # @return [TargetCacheKey]
119
129
  #
120
- def self.from_pod_target(sandbox, pod_target, is_local_pod: false, checkout_options: nil)
130
+ def self.from_pod_target(sandbox, target_by_label, pod_target, is_local_pod: false, checkout_options: nil)
121
131
  build_settings = {}
122
132
  build_settings[pod_target.label.to_s] = Hash[pod_target.build_settings.map do |k, v|
123
133
  [k, Digest::MD5.hexdigest(v.xcconfig.to_s)]
@@ -129,6 +139,20 @@ module Pod
129
139
  build_settings[name] = Hash[settings_by_config.map { |k, v| [k, Digest::MD5.hexdigest(v.xcconfig.to_s)] }]
130
140
  end
131
141
 
142
+ # find resources from upstream dependencies that will be named in the `{name}-resources.sh` script
143
+ resource_dependencies = []
144
+ pod_target.dependencies.each do |name|
145
+ next unless target_by_label[name]
146
+
147
+ upstream = target_by_label[name]
148
+
149
+ # pod target
150
+ resource_dependencies.append(upstream.resource_paths.values.flatten) if upstream.respond_to?(:resource_paths)
151
+
152
+ # aggregate target
153
+ resource_dependencies.append(upstream.resource_paths_by_config.values.flatten) if upstream.respond_to?(:resource_paths_by_config)
154
+ end
155
+
132
156
  contents = {
133
157
  'CHECKSUM' => pod_target.root_spec.checksum,
134
158
  'SPECS' => pod_target.specs.map(&:to_s).sort_by(&:downcase),
@@ -140,6 +164,7 @@ module Pod
140
164
  contents['FILES'] = relative_file_paths.sort_by(&:downcase)
141
165
  end
142
166
  contents['CHECKOUT_OPTIONS'] = checkout_options if checkout_options
167
+ contents['RESOURCES'] = resource_dependencies.flatten.uniq.sort_by(&:downcase) if resource_dependencies.any?
143
168
  TargetCacheKey.new(sandbox, :pod_target, contents)
144
169
  end
145
170
 
@@ -152,12 +177,24 @@ module Pod
152
177
  #
153
178
  # @return [TargetCacheKey]
154
179
  #
155
- def self.from_aggregate_target(sandbox, aggregate_target)
180
+ def self.from_aggregate_target(sandbox, target_by_label, aggregate_target)
156
181
  build_settings = {}
157
182
  aggregate_target.user_build_configurations.keys.each do |configuration|
158
183
  build_settings[configuration] = Digest::MD5.hexdigest(aggregate_target.build_settings(configuration).xcconfig.to_s)
159
184
  end
160
185
 
186
+ # find resources from upstream dependencies that will be named in the `{name}-resources.sh` script
187
+ resource_dependencies = []
188
+ aggregate_target.pod_targets.each do |name|
189
+ upstream = target_by_label[name]
190
+
191
+ # pod target
192
+ resource_dependencies.append(upstream.resource_paths.values.flatten) if upstream.respond_to?(:resource_paths)
193
+
194
+ # aggregate target
195
+ resource_dependencies.append(upstream.resource_paths_by_config.values.flatten) if upstream.respond_to?(:resource_paths_by_config)
196
+ end
197
+
161
198
  contents = {
162
199
  'BUILD_SETTINGS_CHECKSUM' => build_settings,
163
200
  }
@@ -167,6 +204,7 @@ module Pod
167
204
  res.relative_path_from(sandbox.project_path.dirname).to_s
168
205
  end
169
206
  contents['FILES'] = (relative_resource_file_paths + relative_on_demand_resource_file_paths).sort_by(&:downcase)
207
+ contents['RESOURCES'] = resource_dependencies.flatten.uniq.sort_by(&:downcase) if resource_dependencies.any?
170
208
  end
171
209
  TargetCacheKey.new(sandbox, :aggregate, contents)
172
210
  end
@@ -314,6 +314,7 @@ module Pod
314
314
  phase.input_file_list_paths = script_phase[:input_file_lists]
315
315
  phase.output_file_list_paths = script_phase[:output_file_lists]
316
316
  phase.dependency_file = script_phase[:dependency_file]
317
+ phase.always_out_of_date = script_phase[:always_out_of_date]
317
318
  # At least with Xcode 10 `showEnvVarsInLog` is *NOT* set to any value even if it's checked and it only
318
319
  # gets set to '0' if the user has explicitly disabled this.
319
320
  if (show_env_vars_in_log = script_phase.fetch(:show_env_vars_in_log, '1')) == '0'
@@ -894,6 +894,7 @@ module Pod
894
894
  :osx => Version.new('10.8'),
895
895
  :watchos => Version.new('2.0'),
896
896
  :tvos => Version.new('9.0'),
897
+ :visionos => Version.new('1.0'),
897
898
  }.freeze
898
899
 
899
900
  # Returns the compiler flags for the source files of the given specification.
@@ -103,11 +103,13 @@ module Pod
103
103
  ios_deployment_target = platforms.select { |p| p.name == :ios }.map(&:deployment_target).min
104
104
  watchos_deployment_target = platforms.select { |p| p.name == :watchos }.map(&:deployment_target).min
105
105
  tvos_deployment_target = platforms.select { |p| p.name == :tvos }.map(&:deployment_target).min
106
+ visionos_deployment_target = platforms.select { |p| p.name == :visionos }.map(&:deployment_target).min
106
107
  project.build_configurations.each do |build_configuration|
107
108
  build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target
108
109
  build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target
109
110
  build_configuration.build_settings['WATCHOS_DEPLOYMENT_TARGET'] = watchos_deployment_target.to_s if watchos_deployment_target
110
111
  build_configuration.build_settings['TVOS_DEPLOYMENT_TARGET'] = tvos_deployment_target.to_s if tvos_deployment_target
112
+ build_configuration.build_settings['XROS_DEPLOYMENT_TARGET'] = visionos_deployment_target.to_s if visionos_deployment_target
111
113
  build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO'
112
114
  build_configuration.build_settings['CLANG_ENABLE_OBJC_ARC'] = 'YES'
113
115
  build_configuration.build_settings['CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED'] = 'YES'
@@ -359,7 +359,7 @@ module Pod
359
359
  else
360
360
  "'@loader_path/Frameworks'"
361
361
  end
362
- paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}' if uses_swift
362
+ paths << '${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}' if uses_swift
363
363
  else
364
364
  paths << "'@executable_path/Frameworks'"
365
365
  paths << "'@loader_path/Frameworks'"
@@ -866,7 +866,7 @@ module Pod
866
866
  search_paths = vendored_static_library_search_paths + vendored_dynamic_library_search_paths
867
867
  if target.uses_swift? || other_swift_flags_without_swift?
868
868
  search_paths << '/usr/lib/swift'
869
- search_paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}'
869
+ search_paths << '${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}'
870
870
  search_paths << '$(PLATFORM_DIR)/Developer/Library/Frameworks' if test_xcconfig?
871
871
  end
872
872
  return search_paths if target.build_as_framework? || !target.should_build?
@@ -152,6 +152,8 @@ module Pod
152
152
  platform_message = '[watchOS] '
153
153
  elsif result.platforms == [:tvos]
154
154
  platform_message = '[tvOS] '
155
+ elsif result.platforms == [:visionos]
156
+ platform_message = '[visionOS] '
155
157
  end
156
158
 
157
159
  subspecs_message = ''
@@ -1104,6 +1106,9 @@ module Pod
1104
1106
  when :tvos
1105
1107
  command += %w(CODE_SIGN_IDENTITY=- -sdk appletvsimulator)
1106
1108
  command += Fourflusher::SimControl.new.destination(:oldest, 'tvOS', deployment_target)
1109
+ when :visionos
1110
+ command += %w(CODE_SIGN_IDENTITY=- -sdk xrsimulator)
1111
+ command += Fourflusher::SimControl.new.destination(:oldest, 'visionOS', deployment_target)
1107
1112
  end
1108
1113
 
1109
1114
  if analyze
data/lib/cocoapods.rb CHANGED
@@ -4,6 +4,8 @@ require 'xcodeproj'
4
4
  # It is very likely that we'll need these and as some of those paths will atm
5
5
  # result in a I18n deprecation warning, we load those here now so that we can
6
6
  # get rid of that warning.
7
+ require 'active_support'
8
+ require 'active_support/core_ext'
7
9
  require 'active_support/core_ext/string/strip'
8
10
  require 'active_support/core_ext/string/inflections'
9
11
  require 'active_support/core_ext/array/conversions'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.1
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Duran
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-04-18 00:00:00.000000000 Z
14
+ date: 2023-10-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: cocoapods-core
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 1.12.1
22
+ version: 1.14.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 1.12.1
29
+ version: 1.14.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -72,9 +72,6 @@ dependencies:
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 1.6.0
77
- - - "<"
78
75
  - !ruby/object:Gem::Version
79
76
  version: '2.0'
80
77
  type: :runtime
@@ -82,9 +79,6 @@ dependencies:
82
79
  version_requirements: !ruby/object:Gem::Requirement
83
80
  requirements:
84
81
  - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 1.6.0
87
- - - "<"
88
82
  - !ruby/object:Gem::Version
89
83
  version: '2.0'
90
84
  - !ruby/object:Gem::Dependency
@@ -187,7 +181,7 @@ dependencies:
187
181
  requirements:
188
182
  - - ">="
189
183
  - !ruby/object:Gem::Version
190
- version: 1.21.0
184
+ version: 1.23.0
191
185
  - - "<"
192
186
  - !ruby/object:Gem::Version
193
187
  version: '2.0'
@@ -197,7 +191,7 @@ dependencies:
197
191
  requirements:
198
192
  - - ">="
199
193
  - !ruby/object:Gem::Version
200
- version: 1.21.0
194
+ version: 1.23.0
201
195
  - - "<"
202
196
  - !ruby/object:Gem::Version
203
197
  version: '2.0'
@@ -539,7 +533,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
539
533
  requirements:
540
534
  - - ">="
541
535
  - !ruby/object:Gem::Version
542
- version: '2.6'
536
+ version: '2.7'
543
537
  required_rubygems_version: !ruby/object:Gem::Requirement
544
538
  requirements:
545
539
  - - ">="