cocoapods 1.12.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
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'