cocoapods 1.7.0.beta.1 → 1.7.0.beta.2

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
  SHA1:
3
- metadata.gz: 251d2a4d591d6dc009ac406e8ada03758161935b
4
- data.tar.gz: ad7bfa1ad9867f8f6bb43f3006263cd83bd7cb6d
3
+ metadata.gz: 91a0b13ca93c3781d072736e1e1ff9d200dd43c9
4
+ data.tar.gz: '0265518cae07022eca43ac72ae9e011dbc9b93bc'
5
5
  SHA512:
6
- metadata.gz: 2910aeb0f9ca431d6a516db10233f27353815bb137a6a59f6e5c5559e7c931cc8eff3834182a783b968cd226e0a4bb54f93fea49233d775c91d936428eb1a184
7
- data.tar.gz: 81fcb38ee8e277d599cc09d0e7c1f1cefba5a23423d55d6722ea162afdb216379146bfe53e365e4e6269d3c02e4b817fcb0882741f2533bb25ef4ec713d5f6de
6
+ metadata.gz: faf6624fea1e6e33486154b899249c986058e121801e50109ec60fad4c4ee10f3b9669b5a814d2c1a7915e6013cc7d7870942a9b1898e28b53d049876b54388f
7
+ data.tar.gz: 9d102fcddf3d7e680fdfa3d9a6665be1a644ebf8b9489556f084c5d0d2fe71be5187f04427f2fd803730344c50c5b5cb30b18083406d3c942fac145d85b6f28a
@@ -4,6 +4,51 @@ 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.beta.2 (2019-03-08)
8
+
9
+ ##### Enhancements
10
+
11
+ * Integrate `xcfilelist` input/output paths for script phases.
12
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
13
+ [#8585](https://github.com/CocoaPods/CocoaPods/pull/8585)
14
+
15
+ ##### Bug Fixes
16
+
17
+ * Do not warn of `.swift-version` file being deprecated if pod does not use Swift.
18
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
19
+ [#8593](https://github.com/CocoaPods/CocoaPods/pull/8593)
20
+
21
+ * Generate sibling targets for incremental installation.
22
+ [Sebastian Shanus](https://github.com/sebastianv1) & [Igor Makarov](https://github.com/igor-makarov)
23
+ [#8577](https://github.com/CocoaPods/CocoaPods/issues/8577)
24
+
25
+ * Validator should filter our app specs from subspec analysis.
26
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
27
+ [#8592](https://github.com/CocoaPods/CocoaPods/pull/8592)
28
+
29
+ * Do not warn that `--swift-version` parameter is deprecated.
30
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
31
+ [#8586](https://github.com/CocoaPods/CocoaPods/pull/8586)
32
+
33
+ * Include `bcsymbolmap` file output paths into script phase.
34
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
35
+ [#8563](https://github.com/CocoaPods/CocoaPods/pull/8563)
36
+
37
+ * Copy `bcsymbolmap` files into correct destination to avoid invalid app archives
38
+ [florianbuerger](https://github.com/florianbuerger)
39
+ [#8558](https://github.com/CocoaPods/CocoaPods/pull/8558)
40
+
41
+ * Fix: unset GIT_DIR and GIT_WORK_TREE for git operations
42
+ [tripleCC](https://github.com/tripleCC)
43
+ [#7958](https://github.com/CocoaPods/CocoaPods/issues/7958)
44
+
45
+ * Do not use spaces around variable assignment in generated embed framework script
46
+ [florianbuerger](https://github.com/florianbuerger)
47
+ [#8548](https://github.com/CocoaPods/CocoaPods/pull/8548)
48
+
49
+ * Do not link specs into user targets that are only used by app specs.
50
+ [Samuel Giddins](https://github.com/segiddins)
51
+
7
52
  ## 1.7.0.beta.1 (2019-02-22)
8
53
 
9
54
  ##### 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.1'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.7.0.beta.2'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -156,8 +156,8 @@ module Pod
156
156
 
157
157
  # Copies the bcsymbolmap files of a vendored framework
158
158
  install_bcsymbolmap() {
159
- local bcsymbolmap_path = "$1"
160
- local destination="${TARGET_BUILD_DIR}"
159
+ local bcsymbolmap_path="$1"
160
+ local destination="${BUILT_PRODUCTS_DIR}"
161
161
  echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\""
162
162
  rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
163
163
  }
@@ -37,6 +37,7 @@ module Pod
37
37
  # A warmed, immutable cache of all the dependencies in the {Podfile}
38
38
  #
39
39
  def self.from_podfile(podfile)
40
+ raise ArgumentError, 'Must be initialized with a podfile' unless podfile
40
41
  podfile_dependencies = []
41
42
  dependencies_by_target_definition = {}
42
43
  podfile.target_definition_list.each do |target_definition|
@@ -75,28 +75,42 @@ module Pod
75
75
  return full_install_results
76
76
  end
77
77
 
78
+ pod_targets_to_generate = Set[]
79
+ aggregate_targets_to_generate = Set[]
78
80
  added_targets, removed_targets = compute_added_and_removed_targets(target_by_label,
79
81
  cache_key_by_target_label.keys,
80
82
  cache.cache_key_by_target_label.keys)
81
83
  added_pod_targets, added_aggregate_targets = added_targets.partition { |target| target.is_a?(PodTarget) }
82
84
  removed_aggregate_targets = removed_targets.select { |target| target.is_a?(AggregateTarget) }
85
+ pod_targets_to_generate.merge(added_pod_targets)
86
+ aggregate_targets_to_generate.merge(added_aggregate_targets + removed_aggregate_targets)
83
87
 
84
88
  changed_targets = compute_changed_targets_from_cache(cache_key_by_target_label, target_by_label, cache)
85
89
  changed_pod_targets, changed_aggregate_targets = changed_targets.partition { |target| target.is_a?(PodTarget) }
90
+ pod_targets_to_generate.merge(changed_pod_targets)
91
+ aggregate_targets_to_generate.merge(changed_aggregate_targets)
86
92
 
87
93
  dirty_targets = compute_dirty_targets(pod_targets + aggregate_targets)
88
94
  dirty_pod_targets, dirty_aggregate_targets = dirty_targets.partition { |target| target.is_a?(PodTarget) }
95
+ pod_targets_to_generate.merge(dirty_pod_targets)
96
+ aggregate_targets_to_generate.merge(dirty_aggregate_targets)
89
97
 
90
- pod_targets_to_generate = (changed_pod_targets + added_pod_targets + dirty_pod_targets).uniq
98
+ # Since multi xcodeproj will group targets by PodTarget#pod_name into individual projects, we
99
+ # need to append these "sibling" targets to the list of targets we need to generate before finalizing the total list,
100
+ # otherwise we will end up with missing targets.
101
+ #
102
+ sibling_pod_targets = compute_sibling_pod_targets(pod_targets, pod_targets_to_generate)
103
+ pod_targets_to_generate.merge(sibling_pod_targets)
91
104
 
92
105
  # We either return the full list of aggregate targets or none since the aggregate targets go into the Pods.xcodeproj
93
106
  # and so we need to regenerate all aggregate targets when regenerating Pods.xcodeproj.
94
- aggregate_target_to_generate =
95
- unless (changed_aggregate_targets + added_aggregate_targets + removed_aggregate_targets + dirty_aggregate_targets).empty?
107
+
108
+ total_aggregate_targets_to_generate =
109
+ unless aggregate_targets_to_generate.empty?
96
110
  aggregate_targets
97
111
  end
98
112
 
99
- ProjectCacheAnalysisResult.new(pod_targets_to_generate, aggregate_target_to_generate, cache_key_by_target_label,
113
+ ProjectCacheAnalysisResult.new(pod_targets_to_generate.to_a, total_aggregate_targets_to_generate, cache_key_by_target_label,
100
114
  build_configurations, project_object_version)
101
115
  end
102
116
 
@@ -150,6 +164,11 @@ module Pod
150
164
  support_files_dir_exists && xcodeproj_exists
151
165
  end
152
166
  end
167
+
168
+ def compute_sibling_pod_targets(pod_targets, pod_targets_to_generate)
169
+ pod_targets_by_name = pod_targets.group_by(&:pod_name)
170
+ pod_targets_to_generate.flat_map { |t| pod_targets_by_name[t.pod_name] }
171
+ end
153
172
  end
154
173
  end
155
174
  end
@@ -233,6 +233,8 @@ module Pod
233
233
  phase.shell_path = script_phase[:shell_path] || '/bin/sh'
234
234
  phase.input_paths = script_phase[:input_files]
235
235
  phase.output_paths = script_phase[:output_files]
236
+ phase.input_file_list_paths = script_phase[:input_file_lists]
237
+ phase.output_file_list_paths = script_phase[:output_file_lists]
236
238
  # At least with Xcode 10 `showEnvVarsInLog` is *NOT* set to any value even if it's checked and it only
237
239
  # gets set to '0' if the user has explicitly disabled this.
238
240
  if (show_env_vars_in_log = script_phase.fetch(:show_env_vars_in_log, '1')) == '0'
@@ -324,10 +326,15 @@ module Pod
324
326
  def framework_output_paths(framework_input_paths)
325
327
  framework_input_paths.flat_map do |framework_path|
326
328
  framework_output_path = "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/#{File.basename(framework_path.source_path)}"
327
- dsym_path = if (dsym_input_path = framework_path.dsym_path)
328
- "${DWARF_DSYM_FOLDER_PATH}/#{File.basename(dsym_input_path)}"
329
- end
330
- [framework_output_path, dsym_path]
329
+ dsym_output_path = if (dsym_input_path = framework_path.dsym_path)
330
+ "${DWARF_DSYM_FOLDER_PATH}/#{File.basename(dsym_input_path)}"
331
+ end
332
+ bcsymbol_output_paths = unless framework_path.bcsymbolmap_paths.nil?
333
+ framework_path.bcsymbolmap_paths.map do |bcsymbolmap_path|
334
+ "${BUILT_PRODUCTS_DIR}/#{File.basename(bcsymbolmap_path)}"
335
+ end
336
+ end
337
+ [framework_output_path, dsym_output_path, *bcsymbol_output_paths]
331
338
  end.compact.uniq
332
339
  end
333
340
  end
@@ -106,8 +106,8 @@ module Pod
106
106
  resolver_specs_by_target[target] = vertices.
107
107
  map do |vertex|
108
108
  payload = vertex.payload
109
- non_library = (!explicit_dependencies.include?(vertex.name) || payload.test_specification? || payload.app_specification?) &&
110
- (vertex.recursive_predecessors & vertices).all? { |v| !explicit_dependencies.include?(v.name) || v.payload.test_specification? }
109
+ non_library = (!explicit_dependencies.include?(vertex.name) || payload.non_library_specification?) &&
110
+ (vertex.recursive_predecessors & vertices).all? { |v| !explicit_dependencies.include?(v.name) || v.payload.non_library_specification? }
111
111
  spec_source = payload.respond_to?(:spec_source) && payload.spec_source
112
112
  ResolverSpecification.new(payload, non_library, spec_source)
113
113
  end.
@@ -21,12 +21,12 @@ module Pod
21
21
  @spec_source = spec_source
22
22
  end
23
23
 
24
- def subspec_by_name(name = nil, raise_if_missing = true, include_test_specifications = false)
24
+ def subspec_by_name(name = nil, raise_if_missing = true, include_non_library_specifications = false)
25
25
  subspec =
26
26
  if !name || name == self.name
27
27
  self
28
28
  else
29
- specification.subspec_by_name(name, raise_if_missing, include_test_specifications)
29
+ specification.subspec_by_name(name, raise_if_missing, include_non_library_specifications)
30
30
  end
31
31
  return unless subspec
32
32
 
@@ -106,7 +106,12 @@ module Pod
106
106
  def repo_git(args, include_error: false)
107
107
  Executable.capture_command('git', ['-C', repo] + args,
108
108
  :capture => include_error ? :merge : :out,
109
- :env => { 'GIT_CONFIG' => nil }).
109
+ :env => {
110
+ 'GIT_CONFIG' => nil,
111
+ 'GIT_DIR' => nil,
112
+ 'GIT_WORK_TREE' => nil,
113
+ }
114
+ ).
110
115
  first.strip
111
116
  end
112
117
 
@@ -125,7 +125,6 @@ module Pod
125
125
  $stdout.flush
126
126
 
127
127
  perform_linting
128
- warn_for_dot_swift_file_deprecation
129
128
  perform_extensive_analysis(a_spec) if a_spec && !quick
130
129
 
131
130
  UI.puts ' -> '.send(result_color) << (a_spec ? a_spec.to_s : file.basename.to_s)
@@ -350,22 +349,11 @@ module Pod
350
349
  @results.concat(linter.results.to_a)
351
350
  end
352
351
 
353
- # Warns the user to delete the `.swift-version` file in favor of the `swift_versions` DSL attribute. This is
354
- # intentionally not a lint warning since we do not want to break existing setups and instead just soft deprecate
355
- # this slowly.
356
- #
357
- def warn_for_dot_swift_file_deprecation
358
- if swift_version.nil? && (!spec.nil? && spec.swift_versions.empty?) && !dot_swift_version.nil?
359
- UI.warn 'Usage of the `.swift_version` file has been deprecated! Please delete the file and use the ' \
360
- "`swift_versions` attribute within your podspec instead.\n".yellow
361
- end
362
- end
363
-
364
352
  # Perform analysis for a given spec (or subspec)
365
353
  #
366
354
  def perform_extensive_analysis(spec)
367
- if spec.test_specification?
368
- error('spec', "Validating a test spec (`#{spec.name}`) is not supported.")
355
+ if spec.non_library_specification?
356
+ error('spec', "Validating a non library spec (`#{spec.name}`) is not supported.")
369
357
  return false
370
358
  end
371
359
  validate_homepage(spec)
@@ -407,7 +395,7 @@ module Pod
407
395
  # Recursively perform the extensive analysis on all subspecs
408
396
  #
409
397
  def perform_extensive_subspec_analysis(spec)
410
- spec.subspecs.reject(&:test_specification?).send(fail_fast ? :all? : :each) do |subspec|
398
+ spec.subspecs.reject(&:non_library_specification?).send(fail_fast ? :all? : :each) do |subspec|
411
399
  @subspec_name = subspec.name
412
400
  perform_extensive_analysis(subspec)
413
401
  end
@@ -487,6 +475,7 @@ module Pod
487
475
  def validate_swift_version
488
476
  return unless uses_swift?
489
477
  spec_swift_versions = spec.swift_versions.map(&:to_s)
478
+
490
479
  unless spec_swift_versions.empty?
491
480
  message = nil
492
481
  if !dot_swift_version.nil? && !spec_swift_versions.include?(dot_swift_version)
@@ -501,12 +490,21 @@ module Pod
501
490
  end
502
491
  end
503
492
 
504
- if swift_version.nil? && spec_swift_versions.empty? && dot_swift_version.nil?
505
- warning('swift',
506
- 'The validator used ' \
507
- "Swift `#{DEFAULT_SWIFT_VERSION}` by default because no Swift version was specified. " \
508
- 'To specify a Swift version during validation, add the `swift_versions` attribute in your podspec. ' \
509
- 'Note that usage of the `--swift-version` parameter or a `.swift-version` file is now deprecated.')
493
+ if swift_version.nil? && spec.swift_versions.empty?
494
+ if !dot_swift_version.nil?
495
+ # The user will be warned to delete the `.swift-version` file in favor of the `swift_versions` DSL attribute.
496
+ # This is intentionally not a lint warning since we do not want to break existing setups and instead just soft
497
+ # deprecate this slowly.
498
+ #
499
+ UI.warn 'Usage of the `.swift_version` file has been deprecated! Please delete the file and use the ' \
500
+ "`swift_versions` attribute within your podspec instead.\n".yellow
501
+ else
502
+ warning('swift',
503
+ 'The validator used ' \
504
+ "Swift `#{DEFAULT_SWIFT_VERSION}` by default because no Swift version was specified. " \
505
+ 'To specify a Swift version during validation, add the `swift_versions` attribute in your podspec. ' \
506
+ 'Note that usage of a `.swift-version` file is now deprecated.')
507
+ end
510
508
  end
511
509
  end
512
510
 
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.1
4
+ version: 1.7.0.beta.2
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-02-22 00:00:00.000000000 Z
14
+ date: 2019-03-08 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.1
22
+ version: 1.7.0.beta.2
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.1
29
+ version: 1.7.0.beta.2
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement