cocoapods 1.12.0 → 1.13.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: ef9725752e53e158770daed057cf73b9f7cf849e1ef4c663a2256f360fbfd7da
4
- data.tar.gz: 6a52819a3e1a7e232a1d1ea14e0cedf6e27ac6c523fd265a9882a4bd54d1a9aa
3
+ metadata.gz: 351d42241021bbf2982a2031406a62a7829075ebf1797b1149ca2207a75645a0
4
+ data.tar.gz: 3bfb129706090a443739d23e99b355c09a8e2e5ba97c700f4d2f9ca3f858adec
5
5
  SHA512:
6
- metadata.gz: 3d4a47b0ff16089ad7d81eb95a55672fe2cda75bc9cfe963fe736e17290340a6e6fdd899d36fdde7ae8a75f0e03a25da67f23b52449444e7dd3daebb2391cbdb
7
- data.tar.gz: 81c62f774bafafd9e324e41174cc060fdf218bae6de2817b2c952982c9b709fc12589e4662fff1386e66a9a880672797678736e51e98a922f6e1de3bb59e3706
6
+ metadata.gz: c883065405b1143221bec0680be744e098a8cac54b468da9442246b943ca3978b80ef28bb63e762a2dbbda4b0571a30d8ad8fc81be89bcc0340d5463fbc7f52d
7
+ data.tar.gz: 350ffaeffc77cac95347ff5834af721fa8f2ee30d9a226ad55d363d19fa62dfade61115cbc9b1b3bb2d4e97bf213131e4d16114e7632e111118cda9a42588a10
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.13.0 (2023-09-22)
8
+
9
+ ##### Enhancements
10
+
11
+ * Add `visionOS` as a new platform.
12
+ [Gabriel Donadel](https://github.com/gabrieldonadel)
13
+ [#11965](https://github.com/CocoaPods/CocoaPods/pull/11965)
14
+
15
+ * Extend `script_phase` DSL to support `always_out_of_date` attribute.
16
+ [Alvar Hansen](https://github.com/alvarhansen)
17
+ [#12055](https://github.com/CocoaPods/CocoaPods/pull/12055)
18
+
19
+ ##### Bug Fixes
20
+
21
+ * Use `safe_load` during custom YAML config loading.
22
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
23
+ [#11974](https://github.com/CocoaPods/CocoaPods/pull/11974)
24
+
25
+ * Xcode 15 fix: Replace `DT_TOOLCHAIN_DIR` with `TOOLCHAIN_DIR` when generating script.
26
+ [Marcus Wu](https://github.com/marcuswu0814)
27
+ [#12009](https://github.com/CocoaPods/CocoaPods/pull/12009)
28
+
29
+ ## 1.12.1 (2023-04-18)
30
+
31
+ ##### Enhancements
32
+
33
+ * None.
34
+
35
+ ##### Bug Fixes
36
+
37
+ * Xcode 14.3 fix: Pass the -f option when resolving the path to the symlinked source.
38
+ [Chris Vasselli](https://github.com/chrisvasselli)
39
+ [#11828](https://github.com/CocoaPods/CocoaPods/pull/11828)
40
+ [#11808](https://github.com/CocoaPods/CocoaPods/issues/11808)
41
+
42
+ * Fix typo in validation for `--validation-dir` help message
43
+ [Austin Evans](https://github.com/ajevans99)
44
+ [#11857](https://github.com/CocoaPods/CocoaPods/issues/11857)
45
+
46
+ * Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
47
+ [Paul Beusterien](https://github.com/paulb777)
48
+ [#11846](https://github.com/CocoaPods/CocoaPods/issues/11846)
49
+
7
50
  ## 1.12.0 (2023-02-27)
8
51
 
9
52
  ##### Enhancements
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 "/")
@@ -38,7 +38,7 @@ module Pod
38
38
  ['--test-specs=test-spec1,test-spec2,etc', 'List of test specs to run'],
39
39
  ['--analyze', 'Validate with the Xcode Static Analysis tool'],
40
40
  ['--configuration=CONFIGURATION', 'Build using the given configuration (defaults to Release)'],
41
- ['--validaton-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
41
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
42
42
  ].concat(super)
43
43
  end
44
44
 
@@ -38,7 +38,7 @@ module Pod
38
38
  'This takes precedence over the Swift versions specified by the spec or a `.swift-version` file'],
39
39
  ['--no-overwrite', 'Disallow pushing that would overwrite an existing spec'],
40
40
  ['--update-sources', 'Make sure sources are up-to-date before a push'],
41
- ['--validaton-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
41
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
42
42
  ].concat(super)
43
43
  end
44
44
 
@@ -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 ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
@@ -37,7 +37,7 @@ module Pod
37
37
  ['--test-specs=test-spec1,test-spec2,etc', 'List of test specs to run'],
38
38
  ['--analyze', 'Validate with the Xcode Static Analysis tool'],
39
39
  ['--configuration=CONFIGURATION', 'Build using the given configuration (defaults to Release)'],
40
- ['--validaton-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
40
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
41
41
  ].concat(super)
42
42
  end
43
43
 
@@ -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.0'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.13.0'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -203,7 +203,7 @@ module Pod
203
203
  f << "@import Foundation;\n"
204
204
  f << "@import UIKit;\n" if platform == :ios || platform == :tvos
205
205
  f << "@import Cocoa;\n" if platform == :osx
206
- f << "#{import_statement}int main() {}\n"
206
+ f << "#{import_statement}int main(void) {}\n"
207
207
  end
208
208
  end
209
209
  source_file
@@ -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
 
@@ -83,7 +83,7 @@ install_framework()
83
83
 
84
84
  if [ -L "${source}" ]; then
85
85
  echo "Symlinked..."
86
- source="$(readlink "${source}")"
86
+ source="$(readlink -f "${source}")"
87
87
  fi
88
88
 
89
89
  if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
@@ -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
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.0
4
+ version: 1.13.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-02-27 00:00:00.000000000 Z
14
+ date: 2023-09-22 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.0
22
+ version: 1.13.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.0
29
+ version: 1.13.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -187,7 +187,7 @@ dependencies:
187
187
  requirements:
188
188
  - - ">="
189
189
  - !ruby/object:Gem::Version
190
- version: 1.21.0
190
+ version: 1.23.0
191
191
  - - "<"
192
192
  - !ruby/object:Gem::Version
193
193
  version: '2.0'
@@ -197,7 +197,7 @@ dependencies:
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: 1.21.0
200
+ version: 1.23.0
201
201
  - - "<"
202
202
  - !ruby/object:Gem::Version
203
203
  version: '2.0'