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

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
  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