cocoapods 1.11.0.beta.1 → 1.11.1

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: 9fcadf827e9027cd39852af93dcf24362edbb7079702070590bd5aee2358f6aa
4
- data.tar.gz: 1f097f852a1037fa1eb692387373a3ba6d198310d10bf1203cb8ebfbff44f540
3
+ metadata.gz: 13b8afbc6a86002603657c70845d730e56705ce8d220c63949cd72b5b6b6cbe9
4
+ data.tar.gz: cbaca99762be90fc614455732acb9e1f3ed9d4c0ea1890a76983fcf4adfcaf6d
5
5
  SHA512:
6
- metadata.gz: df4609fa035e9a2d0b0665ce69291d7733e8ded721842985c1a996015f28bdb87cc952017c5fcc7fe990f6a5c9c99f23b952c48536f96e0d18f6b879800b6a3e
7
- data.tar.gz: 4e7dd86c41aad6d81b78be0f760cae0866780e30c4bd37b7386ce517ebe6aaa8d3d73388387ec467ebd75b4ad5fbaa4847e9b3cd6ddc12dbf9901025b1bb4a3d
6
+ metadata.gz: 2c0be8b7faa61f7bd79a17e9bd9d768f32ae534c51ce2a7d295e0d187a7c195470a250d283013b26c258f577ae3795f2038508a2627d676ecb21930b1e46b747
7
+ data.tar.gz: 45c4012f332e01e96c8140a3e41da6e245550b984d58012921b5fca2f76ea039b9d20cee0d67b9fdba0979bf4d2987af755d66be1204e0b73a4ef5340c105ab1
data/CHANGELOG.md CHANGED
@@ -4,6 +4,66 @@ 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.11.1 (2021-09-13)
8
+
9
+ ##### Enhancements
10
+
11
+ * None.
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Handle spec repo urls with user info when determining if they are CDN.
16
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
17
+ [#10941](https://github.com/CocoaPods/CocoaPods/issues/10941)
18
+
19
+ * Set `INFOPLIST_FILE` build setting to `$(SRCROOT)/App/App-Info.plist` during lint.
20
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
21
+ [#10927](https://github.com/CocoaPods/CocoaPods/issues/10927)
22
+
23
+ * Set `PRODUCT_BUNDLE_IDENTIFIER` for generated app during lint.
24
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
25
+ [#10933](https://github.com/CocoaPods/CocoaPods/issues/10933)
26
+
27
+
28
+ ## 1.11.0 (2021-09-01)
29
+
30
+ ##### Enhancements
31
+
32
+ * None.
33
+
34
+ ##### Bug Fixes
35
+
36
+ * None.
37
+
38
+
39
+ ## 1.11.0.rc.1 (2021-08-25)
40
+
41
+ ##### Enhancements
42
+
43
+ * None.
44
+
45
+ ##### Bug Fixes
46
+
47
+ * Correctly process multiple `xcframeworks` a pod provides.
48
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
49
+ [#10378](https://github.com/CocoaPods/CocoaPods/issues/10378)
50
+
51
+
52
+ ## 1.11.0.beta.2 (2021-08-11)
53
+
54
+ ##### Enhancements
55
+
56
+ * Integrate ODR categories into projects.
57
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
58
+ [#10855](https://github.com/CocoaPods/CocoaPods/pull/10855)
59
+
60
+ ##### Bug Fixes
61
+
62
+ * Pass correct paths for `select_slice` method.
63
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
64
+ [#10430](https://github.com/CocoaPods/CocoaPods/issues/10430)
65
+
66
+
7
67
  ## 1.11.0.beta.1 (2021-08-09)
8
68
 
9
69
  ##### Enhancements
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.11.0.beta.1'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.11.1'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -70,8 +70,8 @@ copy_dir()
70
70
  local destination="$2"
71
71
 
72
72
  # Use filter instead of exclude so missing patterns don't throw errors.
73
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \\"- CVS/\\" --filter \\"- .svn/\\" --filter \\"- .git/\\" --filter \\"- .hg/\\" \\"${source}\\" \\"${destination}\\""
74
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" "${source}" "${destination}"
73
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \\"- CVS/\\" --filter \\"- .svn/\\" --filter \\"- .git/\\" --filter \\"- .hg/\\" \\"${source}*\\" \\"${destination}\\""
74
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" "${source}"/* "${destination}"
75
75
  }
76
76
 
77
77
  SELECT_SLICE_RETVAL=""
@@ -130,38 +130,11 @@ select_slice() {
130
130
  done
131
131
  }
132
132
 
133
- install_library() {
134
- local source="$1"
135
- local name="$2"
136
- local destination="#{Target::BuildSettings::XCFRAMEWORKS_BUILD_DIR_VARIABLE}/${name}"
137
-
138
- # Libraries can contain headers, module maps, and a binary, so we'll copy everything in the folder over
139
-
140
- local source="$binary"
141
- echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \\"- CVS/\\" --filter \\"- .svn/\\" --filter \\"- .git/\\" --filter \\"- .hg/\\" \\"${source}/*\\" \\"${destination}\\""
142
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" "${source}/*" "${destination}"
143
- }
144
-
145
- # Copies a framework to derived data for use in later build phases
146
- install_framework()
147
- {
148
- local source="$1"
149
- local name="$2"
150
- local destination="#{Pod::Target::BuildSettings::XCFRAMEWORKS_BUILD_DIR_VARIABLE}/${name}"
151
-
152
- if [ ! -d "$destination" ]; then
153
- mkdir -p "$destination"
154
- fi
155
-
156
- copy_dir "$source" "$destination"
157
- echo "Copied $source to $destination"
158
- }
159
-
160
133
  install_xcframework() {
161
134
  local basepath="$1"
162
135
  local name="$2"
163
136
  local package_type="$3"
164
- local paths=("$@")
137
+ local paths=("${@:4}")
165
138
 
166
139
  # Locate the correct slice of the .xcframework for the current architectures
167
140
  select_slice "${paths[@]}"
@@ -179,7 +152,6 @@ install_xcframework() {
179
152
  fi
180
153
 
181
154
  copy_dir "$source/" "$destination"
182
-
183
155
  echo "Copied $source to $destination"
184
156
  }
185
157
 
@@ -162,8 +162,11 @@ module Pod
162
162
  'BUILD_SETTINGS_CHECKSUM' => build_settings,
163
163
  }
164
164
  if aggregate_target.includes_resources? || aggregate_target.includes_on_demand_resources?
165
- relative_file_paths = aggregate_target.resource_paths_by_config.values.flatten.uniq + aggregate_target.on_demand_resources.map(&:to_s)
166
- contents['FILES'] = relative_file_paths.sort_by(&:downcase)
165
+ relative_resource_file_paths = aggregate_target.resource_paths_by_config.values.flatten.uniq
166
+ relative_on_demand_resource_file_paths = aggregate_target.on_demand_resources.map do |res|
167
+ res.relative_path_from(sandbox.project_path.dirname).to_s
168
+ end
169
+ contents['FILES'] = (relative_resource_file_paths + relative_on_demand_resource_file_paths).sort_by(&:downcase)
167
170
  end
168
171
  TargetCacheKey.new(sandbox, :aggregate, contents)
169
172
  end
@@ -32,7 +32,8 @@ module Pod
32
32
  # For messages extensions, this only applies if it's embedded in a messages
33
33
  # application.
34
34
  #
35
- EMBED_FRAMEWORK_TARGET_TYPES = [:application, :application_on_demand_install_capable, :unit_test_bundle, :ui_test_bundle, :watch2_extension, :messages_application].freeze
35
+ EMBED_FRAMEWORK_TARGET_TYPES = [:application, :application_on_demand_install_capable, :unit_test_bundle,
36
+ :ui_test_bundle, :watch2_extension, :messages_application].freeze
36
37
 
37
38
  # @return [String] the name of the embed frameworks phase
38
39
  #
@@ -457,9 +458,9 @@ module Pod
457
458
  #
458
459
  # @return [void]
459
460
  #
460
- def add_on_demand_resources(sandbox, project, native_targets, file_accessors, parent_odr_group,
461
- target_odr_group_name)
462
- asset_tags_added = Set.new
461
+ def update_on_demand_resources(sandbox, project, native_targets, file_accessors, parent_odr_group,
462
+ target_odr_group_name)
463
+ category_to_tags = {}
463
464
  file_accessors = Array(file_accessors)
464
465
  native_targets = Array(native_targets)
465
466
 
@@ -469,8 +470,9 @@ module Pod
469
470
  old_odr_file_refs = old_target_odr_group&.recursive_children_groups&.each_with_object({}) do |group, hash|
470
471
  hash[group.name] = group.files
471
472
  end || {}
472
- native_targets.each do |user_target|
473
- user_target.remove_on_demand_resources(old_odr_file_refs)
473
+ native_targets.each do |native_target|
474
+ native_target.remove_on_demand_resources(old_odr_file_refs)
475
+ update_on_demand_resources_build_settings(native_target, nil => old_odr_file_refs.keys)
474
476
  end
475
477
  old_target_odr_group&.remove_from_project
476
478
  return
@@ -480,17 +482,18 @@ module Pod
480
482
  current_file_refs = target_odr_group.recursive_children_groups.flat_map(&:files)
481
483
 
482
484
  added_file_refs = file_accessors.flat_map do |file_accessor|
483
- target_odr_files_refs = Hash[file_accessor.on_demand_resources.map do |tag, resources|
485
+ target_odr_files_refs = Hash[file_accessor.on_demand_resources.map do |tag, value|
484
486
  tag_group = target_odr_group[tag] || target_odr_group.new_group(tag)
485
- asset_tags_added << tag
486
- resources_file_refs = resources.map do |resource|
487
+ category_to_tags[value[:category]] ||= []
488
+ category_to_tags[value[:category]] << tag
489
+ resources_file_refs = value[:paths].map do |resource|
487
490
  odr_resource_file_ref = Pathname.new(resource).relative_path_from(sandbox.root)
488
491
  tag_group.find_file_by_path(odr_resource_file_ref.to_s) || tag_group.new_file(odr_resource_file_ref)
489
492
  end
490
493
  [tag, resources_file_refs]
491
494
  end]
492
- native_targets.each do |user_target|
493
- user_target.add_on_demand_resources(target_odr_files_refs)
495
+ native_targets.each do |native_target|
496
+ native_target.add_on_demand_resources(target_odr_files_refs)
494
497
  end
495
498
  target_odr_files_refs.values.flatten
496
499
  end
@@ -506,10 +509,42 @@ module Pod
506
509
  end
507
510
  target_odr_group.recursive_children_groups.each { |g| g.remove_from_project if g.empty? }
508
511
 
509
- unless asset_tags_added.empty?
510
- attributes = project.root_object.attributes
511
- attributes['KnownAssetTags'] = (attributes['KnownAssetTags'] ||= []) | asset_tags_added.to_a
512
- project.root_object.attributes = attributes
512
+ attributes = project.root_object.attributes
513
+ attributes['KnownAssetTags'] = (attributes['KnownAssetTags'] ||= []) | category_to_tags.values.flatten
514
+ project.root_object.attributes = attributes
515
+
516
+ native_targets.each do |native_target|
517
+ update_on_demand_resources_build_settings(native_target, category_to_tags)
518
+ end
519
+ end
520
+
521
+ def update_on_demand_resources_build_settings(native_target, category_to_tags)
522
+ %w[ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS ON_DEMAND_RESOURCES_PREFETCH_ORDER].each do |category_key|
523
+ native_target.build_configurations.each do |c|
524
+ key = case category_key
525
+ when 'ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS'
526
+ :initial_install
527
+ when 'ON_DEMAND_RESOURCES_PREFETCH_ORDER'
528
+ :prefetched
529
+ else
530
+ :download_on_demand
531
+ end
532
+ tags_for_category = (c.build_settings[category_key] || '').split
533
+ category_to_tags_dup = category_to_tags.dup
534
+ tags_to_add = category_to_tags_dup.delete(key) || []
535
+ tags_to_delete = category_to_tags_dup.values.flatten
536
+ tags_for_category = (tags_for_category + tags_to_add - tags_to_delete).flatten.compact.uniq
537
+ if tags_for_category.empty?
538
+ val = c.build_settings.delete(category_key)
539
+ native_target.project.mark_dirty! unless val.nil?
540
+ else
541
+ tags = tags_for_category.join(' ')
542
+ unless c.build_settings[category_key] == tags
543
+ c.build_settings[category_key] = tags
544
+ native_target.project.mark_dirty!
545
+ end
546
+ end
547
+ end
513
548
  end
514
549
  end
515
550
  end
@@ -596,10 +631,12 @@ module Pod
596
631
  output_paths_by_config = {}
597
632
  if use_input_output_paths
598
633
  target.resource_paths_by_config.each do |config, resource_paths|
599
- input_paths_key = XCFileListConfigKey.new(target.copy_resources_script_input_files_path(config), target.copy_resources_script_input_files_relative_path)
634
+ input_paths_key = XCFileListConfigKey.new(target.copy_resources_script_input_files_path(config),
635
+ target.copy_resources_script_input_files_relative_path)
600
636
  input_paths_by_config[input_paths_key] = [script_path] + resource_paths
601
637
 
602
- output_paths_key = XCFileListConfigKey.new(target.copy_resources_script_output_files_path(config), target.copy_resources_script_output_files_relative_path)
638
+ output_paths_key = XCFileListConfigKey.new(target.copy_resources_script_output_files_path(config),
639
+ target.copy_resources_script_output_files_relative_path)
603
640
  output_paths_by_config[output_paths_key] = TargetIntegrator.resource_output_paths(resource_paths)
604
641
  end
605
642
  end
@@ -607,7 +644,9 @@ module Pod
607
644
  native_targets.each do |native_target|
608
645
  # Static library targets cannot include resources. Skip this phase from being added instead.
609
646
  next if native_target.symbol_type == :static_library
610
- TargetIntegrator.create_or_update_copy_resources_script_phase_to_target(native_target, script_path, input_paths_by_config, output_paths_by_config)
647
+ TargetIntegrator.create_or_update_copy_resources_script_phase_to_target(native_target, script_path,
648
+ input_paths_by_config,
649
+ output_paths_by_config)
611
650
  end
612
651
  end
613
652
 
@@ -720,8 +759,8 @@ module Pod
720
759
  # The 'Pods' group would always be there for production code however for tests its sometimes not added.
721
760
  # This ensures its always present and makes it easier for existing and new tests.
722
761
  parent_odr_group = target.user_project.main_group['Pods'] || target.user_project.new_group('Pods')
723
- TargetIntegrator.add_on_demand_resources(target.sandbox, target.user_project, target.user_targets,
724
- library_file_accessors, parent_odr_group, target_odr_group_name)
762
+ TargetIntegrator.update_on_demand_resources(target.sandbox, target.user_project, target.user_targets,
763
+ library_file_accessors, parent_odr_group, target_odr_group_name)
725
764
  end
726
765
  end
727
766
 
@@ -62,7 +62,8 @@ module Pod
62
62
  # @param [Hash] info_plist_entries see #info_plist_entries
63
63
  # @param [String] product_basename see #product_basename
64
64
  #
65
- def initialize(sandbox, project, platform, subgroup_name, group_name, app_target_label, add_main: true, add_launchscreen_storyboard: platform == :ios, info_plist_entries: {}, product_basename: nil)
65
+ def initialize(sandbox, project, platform, subgroup_name, group_name, app_target_label, add_main: true,
66
+ add_launchscreen_storyboard: platform == :ios, info_plist_entries: {}, product_basename: nil)
66
67
  @sandbox = sandbox
67
68
  @project = project
68
69
  @platform = platform
@@ -271,17 +271,17 @@ module Pod
271
271
  fa.spec.test_specification? && pod_target.test_app_hosts_by_spec[fa.spec]&.first == app_spec
272
272
  end
273
273
  target_odr_group_name = "#{pod_target.label}-OnDemandResources"
274
- UserProjectIntegrator::TargetIntegrator.add_on_demand_resources(target.sandbox, native_target.project,
275
- native_target, file_accessors,
276
- parent_odr_group, target_odr_group_name)
274
+ UserProjectIntegrator::TargetIntegrator.update_on_demand_resources(target.sandbox, native_target.project,
275
+ native_target, file_accessors,
276
+ parent_odr_group, target_odr_group_name)
277
277
  end
278
278
 
279
279
  # Now add the ODRs of our own app spec declaration.
280
280
  file_accessor = target.file_accessors.find { |fa| fa.spec == app_spec }
281
281
  target_odr_group_name = "#{target.subspec_label(app_spec)}-OnDemandResources"
282
- UserProjectIntegrator::TargetIntegrator.add_on_demand_resources(target.sandbox, native_target.project,
283
- native_target, file_accessor,
284
- parent_odr_group, target_odr_group_name)
282
+ UserProjectIntegrator::TargetIntegrator.update_on_demand_resources(target.sandbox, native_target.project,
283
+ native_target, file_accessor,
284
+ parent_odr_group, target_odr_group_name)
285
285
  end
286
286
 
287
287
  # @return [String] the message that should be displayed for the target
@@ -48,17 +48,23 @@ module Pod
48
48
  # @param [Hash] additional_entries
49
49
  # any additional entries to include in this Info.plist file.
50
50
  #
51
+ # @param [String] build_setting_value
52
+ # an optional value to set for the `INFOPLIST_FILE` build setting on the
53
+ # native target. If none is specified then the value is calculated from the
54
+ # Info.plist path relative to the sandbox root.
55
+ #
51
56
  # @return [void]
52
57
  #
53
58
  def create_info_plist_file_with_sandbox(sandbox, path, native_target, version, platform,
54
- bundle_package_type = :fmwk, additional_entries: {})
59
+ bundle_package_type = :fmwk, additional_entries: {},
60
+ build_setting_value: nil)
55
61
  UI.message "- Generating Info.plist file at #{UI.path(path)}" do
56
62
  generator = Generator::InfoPlistFile.new(version, platform, bundle_package_type, additional_entries)
57
63
  update_changed_file(generator, path)
58
64
 
59
- relative_path_string = path.relative_path_from(sandbox.root).to_s
65
+ build_setting_value ||= path.relative_path_from(sandbox.root).to_s
60
66
  native_target.build_configurations.each do |c|
61
- c.build_settings['INFOPLIST_FILE'] = relative_path_string
67
+ c.build_settings['INFOPLIST_FILE'] = build_setting_value
62
68
  end
63
69
  end
64
70
  end
@@ -219,7 +219,7 @@ module Pod
219
219
  file_accessors.map(&:preserve_paths),
220
220
  file_accessors.map(&:readme),
221
221
  file_accessors.map(&:resources),
222
- file_accessors.flat_map { |f| f.on_demand_resources.values.flatten },
222
+ file_accessors.map(&:on_demand_resources_files),
223
223
  file_accessors.map(&:source_files),
224
224
  file_accessors.map(&:module_map),
225
225
  ]
@@ -334,20 +334,26 @@ module Pod
334
334
  resource_bundles.values.flatten
335
335
  end
336
336
 
337
- # @return [Hash{String => Array<Pathname>}] The paths of the on demand resources specified
338
- # keyed by their tag.
337
+ # @return [Hash{String => Hash] The expanded paths of the on demand resources specified
338
+ # keyed by their tag including their category.
339
339
  #
340
340
  def on_demand_resources
341
341
  result = {}
342
342
  spec_consumer.on_demand_resources.each do |tag_name, file_patterns|
343
- paths = expanded_paths(file_patterns,
343
+ paths = expanded_paths(file_patterns[:paths],
344
344
  :exclude_patterns => spec_consumer.exclude_files,
345
345
  :include_dirs => true)
346
- result[tag_name] = paths
346
+ result[tag_name] = { :paths => paths, :category => file_patterns[:category] }
347
347
  end
348
348
  result
349
349
  end
350
350
 
351
+ # @return [Array<Pathname>] The expanded paths of the on demand resources.
352
+ #
353
+ def on_demand_resources_files
354
+ on_demand_resources.values.flat_map { |v| v[:paths] }
355
+ end
356
+
351
357
  # @return [Pathname] The of the prefix header file of the specification.
352
358
  #
353
359
  def prefix_header
@@ -71,12 +71,15 @@ module Pod
71
71
  # The URL of the source.
72
72
  #
73
73
  def cdn_url?(url)
74
- return unless url =~ %r{^https?:\/\/}
74
+ return false unless url =~ %r{^https?:\/\/}
75
75
 
76
76
  uri_options = {}
77
77
 
78
78
  netrc_info = Netrc.read
79
- netrc_host = URI.parse(url).host
79
+ uri = URI.parse(url)
80
+ return false unless uri.userinfo.nil?
81
+
82
+ netrc_host = uri.host
80
83
  credentials = netrc_info[netrc_host]
81
84
  uri_options[:http_basic_authentication] = credentials if credentials
82
85
 
@@ -288,7 +288,7 @@ module Pod
288
288
  @on_demand_resources ||= begin
289
289
  pod_targets.flat_map do |pod_target|
290
290
  library_file_accessors = pod_target.file_accessors.select { |fa| fa.spec.library_specification? }
291
- library_file_accessors.flat_map { |fa| fa.on_demand_resources.values.flatten }
291
+ library_file_accessors.flat_map(&:on_demand_resources_files)
292
292
  end.uniq
293
293
  end
294
294
  end
@@ -203,7 +203,7 @@ module Pod
203
203
  end
204
204
  end
205
205
 
206
- # @return [Array<String>] The list of all files tracked.
206
+ # @return [Array<Pathname>] The list of all files tracked.
207
207
  #
208
208
  def all_files
209
209
  Sandbox::FileAccessor.all_files(file_accessors)
@@ -583,12 +583,21 @@ module Pod
583
583
  app_target = Pod::Generator::AppTargetHelper.add_app_target(app_project, consumer.platform_name, deployment_target)
584
584
  sandbox = Sandbox.new(config.sandbox_root)
585
585
  info_plist_path = app_project.path.dirname.+('App/App-Info.plist')
586
- Pod::Installer::Xcode::PodsProjectGenerator::TargetInstallerHelper.create_info_plist_file_with_sandbox(sandbox, info_plist_path, app_target, '1.0.0', Platform.new(consumer.platform_name), :appl)
586
+ Pod::Installer::Xcode::PodsProjectGenerator::TargetInstallerHelper.create_info_plist_file_with_sandbox(sandbox,
587
+ info_plist_path,
588
+ app_target,
589
+ '1.0.0',
590
+ Platform.new(consumer.platform_name),
591
+ :appl,
592
+ :build_setting_value => '$(SRCROOT)/App/App-Info.plist')
587
593
  Pod::Generator::AppTargetHelper.add_swift_version(app_target, derived_swift_version)
588
- # Lint will fail if a AppIcon is set but no image is found with such name
589
- # Happens only with Static Frameworks enabled but shouldn't be set anyway
590
594
  app_target.build_configurations.each do |config|
595
+ # Lint will fail if a AppIcon is set but no image is found with such name
596
+ # Happens only with Static Frameworks enabled but shouldn't be set anyway
591
597
  config.build_settings.delete('ASSETCATALOG_COMPILER_APPICON_NAME')
598
+ # Ensure this is set generally but we have seen an issue with ODRs:
599
+ # see: https://github.com/CocoaPods/CocoaPods/issues/10933
600
+ config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'org.cocoapods.${PRODUCT_NAME:rfc1034identifier}'
592
601
  end
593
602
  app_project.save
594
603
  app_project.recreate_user_schemes
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.11.0.beta.1
4
+ version: 1.11.1
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: 2021-08-09 00:00:00.000000000 Z
14
+ date: 2021-09-12 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.11.0.beta.1
22
+ version: 1.11.1
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.11.0.beta.1
29
+ version: 1.11.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -541,11 +541,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
541
541
  version: '2.6'
542
542
  required_rubygems_version: !ruby/object:Gem::Requirement
543
543
  requirements:
544
- - - ">"
544
+ - - ">="
545
545
  - !ruby/object:Gem::Version
546
- version: 1.3.1
546
+ version: '0'
547
547
  requirements: []
548
- rubygems_version: 3.1.3
548
+ rubygems_version: 3.0.9
549
549
  signing_key:
550
550
  specification_version: 4
551
551
  summary: The Cocoa library package manager.