cocoapods 1.7.0.beta.3 → 1.7.0.rc.1

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: 1ee8d12451f183094a65d40b6e47d8748aa0fa4eea250c41d9c7a5f482f955b1
4
- data.tar.gz: 53769ab0555e4c167f0157a9531d0218b920a005363ac53f838a6e0aba13f844
3
+ metadata.gz: 643fc24912e72d9f38aaf90853b155a6b5468d5a370e1f97fb31e89b248f200a
4
+ data.tar.gz: daee7ef9f7178e551ef6e585a7524752c26436e8f70cc98c2ba997786d67cc80
5
5
  SHA512:
6
- metadata.gz: 3b5533caea792d552f80b53b9003f1929e6ddb730ea85f53b46572fdc2077088df36ddf1d0e9673f7d8b9c647944ec04c025e2f4b3183930598230da1c8f0834
7
- data.tar.gz: 4741c555db345c178def609f871abd490ed023dc88c9ee18e32fa7a6fbb01b4d73a1ffd89e94bf9e98917281d3641dcaa7ff1fc614fc61e99ca946b45d451316
6
+ metadata.gz: 6830b2ef5e87f413426ec1b78cb87b182883c1e910173d9d630a6541f4d00d89e32c5a24ac0dc11ac5fdc63b8a50b7bd8cb8c15dd4bb86d2a671edc3a716995a
7
+ data.tar.gz: 6684ac7cf04ade56943495ed8f8b860b23340d572275768985b0aa2eca7ad877352bd334ed93981080eb2bf8b9f0ff45ef787af2581b3fd29f96f05d2b4546e2
@@ -4,6 +4,40 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.7.0.rc.1 (2019-05-02)
8
+
9
+ ##### Enhancements
10
+
11
+ * Replace Pods project `Dependencies` group with `Development Pods` and `Pods` groups.
12
+ [Sebastian Shanus](https://github.com/sebastianv1)
13
+ [#8659](https://github.com/CocoaPods/CocoaPods/issues/8659)
14
+
15
+ * Add an error message for :podspec pods not matching the version in Pods and on disk
16
+ [orta](https://github.com/orta)
17
+ [#8676](https://github.com/CocoaPods/CocoaPods/issues/8676)
18
+
19
+ ##### Bug Fixes
20
+
21
+ * Allow insecure loads in requires_app_host's Info.plist
22
+ [Paul Beusterien](https://github.com/paulb777)
23
+ [#8747](https://github.com/CocoaPods/CocoaPods/pull/8747)
24
+
25
+ * Fix a regression for static libraries with a custom module name
26
+ [Eric Amorde](https://github.com/amorde)
27
+ [#8695](https://github.com/CocoaPods/CocoaPods/issues/8695)
28
+
29
+ * Fix target cache key SPECS key ordering.
30
+ [Sebastian Shanus](https://github.com/sebastianv1)
31
+ [#8657](https://github.com/CocoaPods/CocoaPods/issues/8657)
32
+
33
+ * Fix regression not compiling xcdatamodeld files in static frameworks
34
+ [Paul Beusterien](https://github.com/paulb777)
35
+ [#8702](https://github.com/CocoaPods/CocoaPods/issues/8702)
36
+
37
+ * Fix: AppIcon not found when executing `pod lib lint`
38
+ [Itay Brenner](https://github.com/itaybre)
39
+ [#8648](https://github.com/CocoaPods/CocoaPods/issues/8648)
40
+
7
41
  ## 1.7.0.beta.3 (2019-03-28)
8
42
 
9
43
  ##### Enhancements
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.7.0.beta.3'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.7.0.rc.1'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -94,6 +94,10 @@ module Pod
94
94
  output << indent << "</dict>\n"
95
95
  when String
96
96
  output << indent << "<string>#{value}</string>\n"
97
+ when true
98
+ output << indent << "<true/>\n"
99
+ when false
100
+ output << indent << "<false/>\n"
97
101
  end
98
102
  output
99
103
  end
@@ -74,7 +74,10 @@ module Pod
74
74
  def self.from_cache_hash(key_hash)
75
75
  cache_hash = key_hash.dup
76
76
  if files = cache_hash['FILES']
77
- cache_hash['FILES'] = files.sort
77
+ cache_hash['FILES'] = files.sort_by(&:downcase)
78
+ end
79
+ if specs = cache_hash['SPECS']
80
+ cache_hash['SPECS'] = specs.sort_by(&:downcase)
78
81
  end
79
82
  type = cache_hash['CHECKSUM'] ? :pod_target : :aggregate
80
83
  TargetCacheKey.new(type, cache_hash)
@@ -105,10 +108,10 @@ module Pod
105
108
 
106
109
  contents = {
107
110
  'CHECKSUM' => pod_target.root_spec.checksum,
108
- 'SPECS' => pod_target.specs.map(&:to_s).sort,
111
+ 'SPECS' => pod_target.specs.map(&:to_s).sort_by(&:downcase),
109
112
  'BUILD_SETTINGS_CHECKSUM' => build_settings,
110
113
  }
111
- contents['FILES'] = pod_target.all_files.sort if is_local_pod
114
+ contents['FILES'] = pod_target.all_files.sort_by(&:downcase) if is_local_pod
112
115
  contents['CHECKOUT_OPTIONS'] = checkout_options if checkout_options
113
116
  TargetCacheKey.new(:pod_target, contents)
114
117
  end
@@ -46,7 +46,9 @@ module Pod
46
46
  # the file reference can use so that we only have to call `save` once for all projects.
47
47
  project.path.mkpath
48
48
  if parent_project
49
- parent_project.add_subproject_reference(project, parent_project.dependencies_group)
49
+ pod_name = pod_name_from_grouping(pod_targets)
50
+ is_local = sandbox.local?(pod_name)
51
+ parent_project.add_pod_subproject(project, is_local)
50
52
  end
51
53
 
52
54
  install_file_references(project, pod_targets)
@@ -65,6 +67,13 @@ module Pod
65
67
  return {} unless project
66
68
  install_aggregate_targets(project, aggregate_targets)
67
69
  end
70
+
71
+ def pod_name_from_grouping(pod_targets)
72
+ # The presumption here for multi pods project is that we group by `pod_name`, thus the grouping of `pod_targets`
73
+ # should share the same `pod_name`.
74
+ raise '[BUG] Expected at least 1 pod target' if pod_targets.empty?
75
+ pod_targets.first.pod_name
76
+ end
68
77
  end
69
78
  end
70
79
  end
@@ -182,10 +182,10 @@ module Pod
182
182
  pod_target_installation_results_hash = target_installation_results.pod_target_installation_results
183
183
  aggregate_target_installation_results_hash = target_installation_results.aggregate_target_installation_results
184
184
 
185
- AggregateTargetDependencyInstaller.new(aggregate_target_installation_results_hash,
185
+ AggregateTargetDependencyInstaller.new(sandbox, aggregate_target_installation_results_hash,
186
186
  pod_target_installation_results_hash, metadata_cache).install!
187
187
 
188
- PodTargetDependencyInstaller.new(pod_target_installation_results_hash, metadata_cache).install!
188
+ PodTargetDependencyInstaller.new(sandbox, pod_target_installation_results_hash, metadata_cache).install!
189
189
  end
190
190
 
191
191
  # @param [String] pod The root name of the development pod.
@@ -18,13 +18,19 @@ module Pod
18
18
  #
19
19
  attr_reader :metadata_cache
20
20
 
21
+ # @return [Sandbox] The sandbox used for this installation.
22
+ #
23
+ attr_reader :sandbox
24
+
21
25
  # Initialize a new instance.
22
26
  #
27
+ # @param [Sandbox] sandbox @see #sandbox
23
28
  # @param [Hash{String => TargetInstallationResult}] aggregate_target_installation_results @see #aggregate_target_installation_results
24
29
  # @param [Hash{String => TargetInstallationResult}] pod_target_installation_results @see #pod_target_installation_results
25
30
  # @param [ProjectMetadataCache] metadata_cache @see #metadata_cache
26
31
  #
27
- def initialize(aggregate_target_installation_results, pod_target_installation_results, metadata_cache)
32
+ def initialize(sandbox, aggregate_target_installation_results, pod_target_installation_results, metadata_cache)
33
+ @sandbox = sandbox
28
34
  @aggregate_target_installation_results = aggregate_target_installation_results
29
35
  @pod_target_installation_results = pod_target_installation_results
30
36
  @metadata_cache = metadata_cache
@@ -51,8 +57,9 @@ module Pod
51
57
  configure_app_extension_api_only_to_native_target(pod_target_native_target) if is_app_extension
52
58
  else
53
59
  # Hit the cache
60
+ is_local = sandbox.local?(pod_target.pod_name)
54
61
  cached_dependency = metadata_cache.target_label_by_metadata[pod_target.label]
55
- project.add_cached_subproject_reference(cached_dependency, project.dependencies_group)
62
+ project.add_cached_pod_subproject(cached_dependency, is_local)
56
63
  Project.add_cached_dependency(aggregate_native_target, cached_dependency)
57
64
  end
58
65
  end
@@ -74,7 +74,7 @@ module Pod
74
74
 
75
75
  Pod::Generator::AppTargetHelper.add_app_host_main_file(project, app_host_target, platform_name, @group, app_target_label) if add_main
76
76
  Pod::Generator::AppTargetHelper.add_launchscreen_storyboard(project, app_host_target, @group, deployment_target, app_target_label) if platform == :ios
77
- additional_entries = platform == :ios ? ADDITIONAL_IOS_INFO_PLIST_ENTRIES : {}
77
+ additional_entries = ADDITIONAL_INFO_PLIST_ENTRIES.merge(platform == :ios ? ADDITIONAL_IOS_INFO_PLIST_ENTRIES : {})
78
78
  create_info_plist_file_with_sandbox(sandbox, app_host_info_plist_path, app_host_target, '1.0.0', platform,
79
79
  :appl, additional_entries)
80
80
  @group.new_file(app_host_info_plist_path)
@@ -83,6 +83,12 @@ module Pod
83
83
 
84
84
  private
85
85
 
86
+ ADDITIONAL_INFO_PLIST_ENTRIES = {
87
+ 'NSAppTransportSecurity' => {
88
+ 'NSAllowsArbitraryLoads' => true,
89
+ },
90
+ }.freeze
91
+
86
92
  ADDITIONAL_IOS_INFO_PLIST_ENTRIES = {
87
93
  'UILaunchStoryboardName' => 'LaunchScreen',
88
94
  'UISupportedInterfaceOrientations' => %w(
@@ -14,12 +14,18 @@ module Pod
14
14
  #
15
15
  attr_reader :metadata_cache
16
16
 
17
+ # @return [Sandbox] The sandbox used for this installation.
18
+ #
19
+ attr_reader :sandbox
20
+
17
21
  # Initialize a new instance.
18
22
  #
23
+ # @param [Sandbox] sandbox @see #sandbox
19
24
  # @param [TargetInstallationResults] pod_target_installation_results @see #pod_target_installation_results
20
25
  # @param [ProjectMetadataCache] metadata_cache @see #metadata_cache
21
26
  #
22
- def initialize(pod_target_installation_results, metadata_cache)
27
+ def initialize(sandbox, pod_target_installation_results, metadata_cache)
28
+ @sandbox = sandbox
23
29
  @pod_target_installation_results = pod_target_installation_results
24
30
  @metadata_cache = metadata_cache
25
31
  end
@@ -68,17 +74,18 @@ module Pod
68
74
  pod_target_installation_results, metadata_cache, frameworks_group)
69
75
  dependent_targets = pod_target.dependent_targets
70
76
  dependent_targets.each do |dependent_target|
77
+ is_local = sandbox.local?(dependent_target.pod_name)
71
78
  if installation_result = pod_target_installation_results[dependent_target.name]
72
79
  dependent_project = installation_result.native_target.project
73
80
  if dependent_project != project
74
- project.add_subproject_reference(dependent_project, project.dependencies_group)
81
+ project.add_pod_subproject(dependent_project, is_local)
75
82
  end
76
83
  native_target.add_dependency(installation_result.native_target)
77
84
  add_framework_file_reference_to_native_target(native_target, pod_target, dependent_target, frameworks_group)
78
85
  else
79
86
  # Hit the cache
80
87
  cached_dependency = metadata_cache.target_label_by_metadata[dependent_target.label]
81
- project.add_cached_subproject_reference(cached_dependency, project.dependencies_group)
88
+ project.add_cached_pod_subproject(cached_dependency, is_local)
82
89
  Project.add_cached_dependency(native_target, cached_dependency)
83
90
  end
84
91
  end
@@ -93,17 +100,18 @@ module Pod
93
100
 
94
101
  test_dependent_targets = pod_target.test_dependent_targets_by_spec_name.fetch(test_spec.name, []).unshift(pod_target).uniq
95
102
  test_dependent_targets.each do |test_dependent_target|
103
+ is_local = sandbox.local?(test_dependent_target.pod_name)
96
104
  if dependency_installation_result = pod_target_installation_results[test_dependent_target.name]
97
105
  dependent_test_project = dependency_installation_result.native_target.project
98
106
  if dependent_test_project != project
99
- project.add_subproject_reference(dependent_test_project, project.dependencies_group)
107
+ project.add_pod_subproject(dependent_test_project, is_local)
100
108
  end
101
109
  test_native_target.add_dependency(dependency_installation_result.native_target)
102
110
  add_framework_file_reference_to_native_target(test_native_target, pod_target, test_dependent_target, frameworks_group)
103
111
  else
104
112
  # Hit the cache
105
113
  cached_dependency = metadata_cache.target_label_by_metadata[test_dependent_target.label]
106
- project.add_cached_subproject_reference(cached_dependency, project.dependencies_group)
114
+ project.add_cached_pod_subproject(cached_dependency, is_local)
107
115
  Project.add_cached_dependency(test_native_target, cached_dependency)
108
116
  end
109
117
  end
@@ -119,6 +127,7 @@ module Pod
119
127
 
120
128
  app_dependent_targets = pod_target.app_dependent_targets_by_spec_name.fetch(app_spec.name, []).unshift(pod_target).uniq
121
129
  app_dependent_targets.each do |app_dependent_target|
130
+ is_local = sandbox.local?(app_dependent_target.pod_name)
122
131
  if dependency_installation_result = pod_target_installation_results[app_dependent_target.name]
123
132
  resource_bundle_native_targets = dependency_installation_result.app_resource_bundle_targets[app_spec.name]
124
133
  unless resource_bundle_native_targets.nil?
@@ -128,14 +137,14 @@ module Pod
128
137
  end
129
138
  dependency_project = dependency_installation_result.native_target.project
130
139
  if dependency_project != project
131
- project.add_subproject_reference(dependency_project, project.dependencies_group)
140
+ project.add_pod_subproject(dependency_project, is_local)
132
141
  end
133
142
  app_native_target.add_dependency(dependency_installation_result.native_target)
134
143
  add_framework_file_reference_to_native_target(app_native_target, pod_target, app_dependent_target, frameworks_group)
135
144
  else
136
145
  # Hit the cache
137
146
  cached_dependency = metadata_cache.target_label_by_metadata[app_dependent_target.label]
138
- project.add_cached_subproject_reference(cached_dependency, project.dependencies_group)
147
+ project.add_cached_pod_subproject(cached_dependency, is_local)
139
148
  Project.add_cached_dependency(native_target, cached_dependency)
140
149
  end
141
150
  end
@@ -303,7 +303,7 @@ module Pod
303
303
  other_file_refs = project_file_references_array(other_source_files, 'other source')
304
304
  native_target.add_file_references(other_file_refs, nil)
305
305
 
306
- next unless target.build_as_dynamic_framework?
306
+ next unless target.build_as_framework?
307
307
 
308
308
  filter_resource_file_references(file_accessor.resources.flatten) do |compile_phase_refs, resource_phase_refs|
309
309
  native_target.add_file_references(compile_phase_refs, nil)
@@ -130,6 +130,40 @@ module Pod
130
130
  group
131
131
  end
132
132
 
133
+ # Creates a new subproject reference for the given project and configures its
134
+ # group location.
135
+ #
136
+ # @param [Project] project
137
+ # The subproject to be added.
138
+ #
139
+ # @param [Bool] development
140
+ # Whether the project should be added to the Development Pods group.
141
+ # For projects where `pod_target_subproject` is enabled, all subprojects are added into the Dependencies group.
142
+ #
143
+ # @return [PBXFileReference] The new file reference.
144
+ #
145
+ def add_pod_subproject(project, development = false)
146
+ parent_group = group_for_subproject_reference(development)
147
+ add_subproject_reference(project, parent_group)
148
+ end
149
+
150
+ # Creates a new subproject reference for the given cached metadata and configures its
151
+ # group location.
152
+ #
153
+ # @param [TargetMetadata] metadata
154
+ # The project metadata to be added.
155
+ #
156
+ # @param [Bool] development
157
+ # Whether the project should be added to the Development Pods group.
158
+ # For projects where `pod_target_subproject` is enabled, all subprojects are added into the Dependencies group.
159
+ #
160
+ # @return [PBXFileReference] The new file reference.
161
+ #
162
+ def add_cached_pod_subproject(metadata, development = false)
163
+ parent_group = group_for_subproject_reference(development)
164
+ add_cached_subproject_reference(metadata, parent_group)
165
+ end
166
+
133
167
  # @return [Array<PBXGroup>] Returns all the group of the Pods.
134
168
  #
135
169
  def pod_groups
@@ -489,6 +523,16 @@ module Pod
489
523
  ref
490
524
  end
491
525
 
526
+ # Returns the parent group a new subproject reference should belong to.
527
+ #
528
+ def group_for_subproject_reference(development)
529
+ if pod_target_subproject
530
+ dependencies_group
531
+ else
532
+ development ? development_pods : pods
533
+ end
534
+ end
535
+
492
536
  #-------------------------------------------------------------------------#
493
537
  end
494
538
  end
@@ -439,8 +439,14 @@ module Pod
439
439
  # Conflict was caused by a requirement from a local dependency.
440
440
  # Tell user to use `pod update`.
441
441
  o << "\nIt seems like you've changed the constraints of dependency `#{name}` " \
442
- "inside your development pod `#{local_pod_parent.name}`.\nYou should run `pod update #{name}` to apply " \
442
+ "inside your development pod `#{local_pod_parent.name}`.\nYou should run `pod update #{name}` to apply "\
443
443
  "changes you've made."
444
+ elsif !conflict.possibility && conflict.locked_requirement && conflict.locked_requirement.external_source && conflict.locked_requirement.external_source[:podspec] &&
445
+ conflict.requirement && conflict.requirement.external_source && conflict.requirement.external_source[:podspec]
446
+ # The internal version of the Podspec doesn't match the external definition of a podspec
447
+ o << "\nIt seems like you've changed the version of the dependency `#{name}` " \
448
+ "and it differs from the version stored in `Pods/Local Podspecs`.\nYou should run `pod update #{name} --no-repo-update` to apply " \
449
+ 'changes made locally.'
444
450
  elsif (conflict.possibility && conflict.possibility.version.prerelease?) &&
445
451
  (conflict.requirement && !(
446
452
  conflict.requirement.prerelease? ||
@@ -150,7 +150,7 @@ module Pod
150
150
  # @return [Pathname] the pathname for headers in the sandbox.
151
151
  #
152
152
  def headers_sandbox
153
- Pathname.new(pod_name)
153
+ Pathname.new(product_module_name)
154
154
  end
155
155
 
156
156
  # @return [Hash{FileAccessor => Hash}] Hash of file accessors by header mappings.
@@ -555,6 +555,11 @@ module Pod
555
555
  app_project = Xcodeproj::Project.new(validation_dir + 'App.xcodeproj')
556
556
  app_target = Pod::Generator::AppTargetHelper.add_app_target(app_project, consumer.platform_name, deployment_target)
557
557
  Pod::Generator::AppTargetHelper.add_swift_version(app_target, derived_swift_version)
558
+ # Lint will fail if a AppIcon is set but no image is found with such name
559
+ # Happens only with Static Frameworks enabled but shouldn't be set anyway
560
+ app_target.build_configurations.each do |config|
561
+ config.build_settings.delete('ASSETCATALOG_COMPILER_APPICON_NAME')
562
+ end
558
563
  app_project.save
559
564
  app_project.recreate_user_schemes
560
565
  end
@@ -1,11 +1,13 @@
1
1
  module Pod
2
2
  module VersionMetadata
3
+ CACHE_VERSION = '001'.freeze
4
+
3
5
  def self.gem_version
4
6
  Pod::VERSION
5
7
  end
6
8
 
7
9
  def self.project_cache_version
8
- VersionMetadata.gem_version
10
+ "#{VersionMetadata.gem_version}.project-cache.#{CACHE_VERSION}"
9
11
  end
10
12
  end
11
13
  end
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.7.0.beta.3
4
+ version: 1.7.0.rc.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: 2019-03-27 00:00:00.000000000 Z
14
+ date: 2019-05-02 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.7.0.beta.3
22
+ version: 1.7.0.rc.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.7.0.beta.3
29
+ version: 1.7.0.rc.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement