cocoapods 0.34.4 → 0.35.0.rc1

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +108 -1
  3. data/bin/pod +20 -2
  4. data/lib/cocoapods.rb +1 -0
  5. data/lib/cocoapods/command.rb +17 -11
  6. data/lib/cocoapods/command/repo/push.rb +1 -1
  7. data/lib/cocoapods/command/search.rb +1 -0
  8. data/lib/cocoapods/gem_version.rb +1 -1
  9. data/lib/cocoapods/generator/acknowledgements/plist.rb +4 -10
  10. data/lib/cocoapods/generator/header.rb +75 -0
  11. data/lib/cocoapods/generator/prefix_header.rb +15 -34
  12. data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +2 -2
  13. data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +4 -1
  14. data/lib/cocoapods/hooks/library_representation.rb +1 -1
  15. data/lib/cocoapods/installer.rb +3 -3
  16. data/lib/cocoapods/installer/analyzer.rb +35 -37
  17. data/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +72 -0
  18. data/lib/cocoapods/installer/file_references_installer.rb +10 -9
  19. data/lib/cocoapods/installer/target_installer.rb +21 -21
  20. data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +17 -17
  21. data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +19 -19
  22. data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +7 -3
  23. data/lib/cocoapods/project.rb +1 -1
  24. data/lib/cocoapods/resolver.rb +235 -98
  25. data/lib/cocoapods/resolver/lazy_specification.rb +60 -0
  26. data/lib/cocoapods/sandbox.rb +2 -1
  27. data/lib/cocoapods/sandbox/file_accessor.rb +26 -19
  28. data/lib/cocoapods/sandbox/headers_store.rb +12 -7
  29. data/lib/cocoapods/sources_manager.rb +6 -6
  30. data/lib/cocoapods/target.rb +1 -1
  31. data/lib/cocoapods/target/pod_target.rb +2 -2
  32. data/lib/cocoapods/user_interface.rb +1 -1
  33. data/lib/cocoapods/user_interface/error_report.rb +3 -0
  34. data/lib/cocoapods/validator.rb +2 -2
  35. metadata +21 -26
  36. data/lib/cocoapods/command/push.rb +0 -21
@@ -47,11 +47,11 @@ module Pod
47
47
  # @return [Xcodeproj::Config]
48
48
  #
49
49
  def generate
50
- header_search_path_flags = target.sandbox.public_headers.search_paths
50
+ header_search_path_flags = target.sandbox.public_headers.search_paths(target.platform)
51
51
  @xcconfig = Xcodeproj::Config.new(
52
52
  'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
53
53
  'OTHER_LIBTOOLFLAGS' => '$(OTHER_LDFLAGS)',
54
- 'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(target.sandbox.public_headers.search_paths),
54
+ 'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(header_search_path_flags),
55
55
  'PODS_ROOT' => target.relative_pods_root,
56
56
  'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
57
57
  'OTHER_CFLAGS' => '$(inherited) ' + XCConfigHelper.quote(header_search_path_flags, '-isystem')
@@ -45,7 +45,10 @@ module Pod
45
45
  # @return [Xcodeproj::Config]
46
46
  #
47
47
  def generate
48
- search_paths = target.build_headers.search_paths.concat(target.sandbox.public_headers.search_paths)
48
+ target_search_paths = target.build_headers.search_paths(target.platform)
49
+ sandbox_search_paths = target.sandbox.public_headers.search_paths(target.platform)
50
+ search_paths = target_search_paths.concat(sandbox_search_paths).uniq
51
+
49
52
  config = {
50
53
  'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
51
54
  'PODS_ROOT' => '${SRCROOT}',
@@ -69,7 +69,7 @@ module Pod
69
69
  # process.
70
70
  #
71
71
  def target
72
- library.target
72
+ library.native_target
73
73
  end
74
74
 
75
75
  #-----------------------------------------------------------------------#
@@ -418,7 +418,7 @@ module Pod
418
418
  pod_targets.sort_by(&:name).each do |pod_target|
419
419
  pod_target.file_accessors.each do |file_accessor|
420
420
  file_accessor.spec_consumer.frameworks.each do |framework|
421
- pod_target.target.add_system_framework(framework)
421
+ pod_target.native_target.add_system_framework(framework)
422
422
  end
423
423
  end
424
424
  end
@@ -428,7 +428,7 @@ module Pod
428
428
  def set_target_dependencies
429
429
  aggregate_targets.each do |aggregate_target|
430
430
  aggregate_target.pod_targets.each do |pod_target|
431
- aggregate_target.target.add_dependency(pod_target.target)
431
+ aggregate_target.native_target.add_dependency(pod_target.native_target)
432
432
  pod_target.dependencies.each do |dep|
433
433
 
434
434
  unless dep == pod_target.pod_name
@@ -437,7 +437,7 @@ module Pod
437
437
  unless pod_dependency_target
438
438
  puts "[BUG] DEP: #{dep}"
439
439
  end
440
- pod_target.target.add_dependency(pod_dependency_target.target)
440
+ pod_target.native_target.add_dependency(pod_dependency_target.native_target)
441
441
  end
442
442
  end
443
443
  end
@@ -8,6 +8,8 @@ module Pod
8
8
 
9
9
  autoload :SandboxAnalyzer, 'cocoapods/installer/analyzer/sandbox_analyzer'
10
10
 
11
+ autoload :LockingDependencyAnalyzer, 'cocoapods/installer/analyzer/locking_dependency_analyzer'
12
+
11
13
  # @return [Sandbox] The sandbox where the Pods should be installed.
12
14
  #
13
15
  attr_reader :sandbox
@@ -149,17 +151,13 @@ module Pod
149
151
  pods_state = nil
150
152
  UI.section 'Finding Podfile changes' do
151
153
  pods_by_state = lockfile.detect_changes_with_podfile(podfile)
152
- pods_by_state.dup.each do |state, full_names|
153
- pods = full_names.map { |fn| Specification.root_name(fn) }.uniq
154
- pods_by_state[state] = pods
155
- end
156
154
  pods_state = SpecsState.new(pods_by_state)
157
155
  pods_state.print
158
156
  end
159
157
  pods_state
160
158
  else
161
159
  state = SpecsState.new
162
- state.added.concat(podfile.dependencies.map(&:root_name).uniq)
160
+ state.added.concat(podfile.dependencies.map(&:name).uniq)
163
161
  state
164
162
  end
165
163
  end
@@ -231,21 +229,17 @@ module Pod
231
229
  # is in update mode, to prevent it from upgrading the Pods that weren't
232
230
  # changed in the {Podfile}.
233
231
  #
234
- # @return [Array<Dependency>] the dependencies generate by the lockfile
235
- # that prevent the resolver to update a Pod.
232
+ # @return [Molinillo::DependencyGraph<Dependency>] the dependencies
233
+ # generated by the lockfile that prevent the resolver to update
234
+ # a Pod.
236
235
  #
237
236
  def generate_version_locking_dependencies
238
- if update_mode == :all
239
- []
237
+ if update_mode == :all || !lockfile
238
+ LockingDependencyAnalyzer.unlocked_dependency_graph
240
239
  else
241
- locking_pods = result.podfile_state.unchanged
242
- if update_mode == :selected
243
- # If selected Pods should been updated, filter them out of the list
244
- locking_pods = locking_pods.select { |pod| !update[:pods].include?(pod) }
245
- end
246
- locking_pods.map do |pod|
247
- lockfile.dependencies_to_lock_pod_named(pod)
248
- end.flatten
240
+ pods_to_update = result.podfile_state.changed + result.podfile_state.deleted
241
+ pods_to_update += update[:pods] if update_mode == :selected
242
+ LockingDependencyAnalyzer.generate_version_locking_dependencies(lockfile, pods_to_update)
249
243
  end
250
244
  end
251
245
 
@@ -274,6 +268,11 @@ module Pod
274
268
  deps_to_fetch_if_needed = []
275
269
  deps_with_external_source = podfile.dependencies.select(&:external_source)
276
270
 
271
+ deps_with_different_sources = podfile.dependencies.group_by(&:root_name).select { |_root_name, dependencies| dependencies.map(&:external_source).uniq.count > 1 }
272
+ deps_with_different_sources.each do |root_name, dependencies|
273
+ raise Informative, "There are multiple dependencies with different sources for `#{root_name}` in #{UI.path podfile.defined_in_file}:\n\n- #{dependencies.map(&:to_s).join("\n- ")}"
274
+ end
275
+
277
276
  if update_mode == :all
278
277
  deps_to_fetch = deps_with_external_source
279
278
  else
@@ -281,14 +280,14 @@ module Pod
281
280
  if update_mode == :selected
282
281
  pods_to_fetch += update[:pods]
283
282
  end
284
- deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.root_name) }
285
- deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.root_name) }
286
- deps_to_fetch += deps_to_fetch_if_needed.select { |dep| sandbox.specification(dep.root_name).nil? || !dep.external_source[:local].nil? || !dep.external_source[:path].nil? || !sandbox.pod_dir(dep.root_name).directory? }
283
+ deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.name) }
284
+ deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.name) }
285
+ deps_to_fetch += deps_to_fetch_if_needed.select { |dep| sandbox.specification(dep.name).nil? || !dep.external_source[:local].nil? || !dep.external_source[:path].nil? || !sandbox.pod_dir(dep.name).directory? }
287
286
  end
288
287
 
289
288
  unless deps_to_fetch.empty?
290
289
  UI.section 'Fetching external sources' do
291
- deps_to_fetch.uniq.sort.each do |dependency|
290
+ deps_to_fetch.uniq(&:root_name).sort.each do |dependency|
292
291
  source = ExternalSources.from_dependency(dependency, podfile.defined_in_file)
293
292
  source.fetch(sandbox)
294
293
  end
@@ -316,6 +315,13 @@ module Pod
316
315
  # grouped by target.
317
316
  #
318
317
  def resolve_dependencies
318
+ duplicate_dependencies = podfile.dependencies.group_by(&:name).
319
+ select { |_name, dependencies| dependencies.count > 1 }
320
+ duplicate_dependencies.each do |name, dependencies|
321
+ UI.warn "There are duplicate dependencies on `#{name}` in #{UI.path podfile.defined_in_file}:\n\n" \
322
+ "- #{dependencies.map(&:to_s).join("\n- ")}"
323
+ end
324
+
319
325
  specs_by_target = nil
320
326
  UI.section "Resolving dependencies of #{UI.path podfile.defined_in_file}" do
321
327
  resolver = Resolver.new(sandbox, podfile, locked_dependencies, sources)
@@ -352,8 +358,9 @@ module Pod
352
358
 
353
359
  # @!group Analysis internal products
354
360
 
355
- # @return [Array<Dependency>] the dependencies generate by the lockfile
356
- # that prevent the resolver to update a Pod.
361
+ # @return [Molinillo::DependencyGraph<Dependency>] the dependencies
362
+ # generated by the lockfile that prevent the resolver to update a
363
+ # Pod.
357
364
  #
358
365
  attr_reader :locked_dependencies
359
366
 
@@ -363,23 +370,17 @@ module Pod
363
370
 
364
371
  # Returns the sources used to query for specifications
365
372
  #
366
- # @note Currently, this defaults to {SourcesManager.all} when no
367
- # Podfile sources are defined, but this implicit declaration of
368
- # sources is deprecated.
373
+ # When no explicit Podfile sources are defined, this defaults to all
374
+ # available sources ({SourcesManager.all}).
369
375
  #
370
376
  # @return [Array<Source>] the sources to be used in finding
371
- # specifications, as specified by the {#podfile}.
377
+ # specifications, as specified by the {#podfile} or all sources.
372
378
  #
373
379
  def sources
374
380
  @sources ||= begin
375
381
  sources = podfile.sources
376
382
  if sources.empty?
377
- SourcesManager.all.tap do |all|
378
- UI.warn all.reduce("The use of implicit sources has been " \
379
- "deprecated. To continue using all of the sources currently " \
380
- "on your machine, add the following to the top of your " \
381
- "Podfile:\n") { |w, s| w << "\n source '#{s.url}'" } + "\n"
382
- end
383
+ SourcesManager.all
383
384
  else
384
385
  sources.map do |url|
385
386
  SourcesManager.find_or_create_source_with_url(url)
@@ -604,7 +605,7 @@ module Pod
604
605
  #
605
606
  class SpecsState
606
607
  # @param [Hash{Symbol=>String}] pods_by_state
607
- # The **root** name of the pods grouped by their state
608
+ # The name of the pods grouped by their state
608
609
  # (`:added`, `:removed`, `:changed` or `:unchanged`).
609
610
  #
610
611
  def initialize(pods_by_state = nil)
@@ -656,12 +657,9 @@ module Pod
656
657
  # @param [Symbol]
657
658
  # the state of the Pod.
658
659
  #
659
- # @raise If there is an attempt to add the name of a subspec.
660
- #
661
660
  # @return [void]
662
661
  #
663
662
  def add_name(name, state)
664
- raise '[Bug] Attempt to add subspec to the pods state' if name.include?('/')
665
663
  send(state) << name
666
664
  end
667
665
  end
@@ -0,0 +1,72 @@
1
+ require 'molinillo/dependency_graph'
2
+
3
+ module Pod
4
+ class Installer
5
+ class Analyzer
6
+ # Generates dependencies that require the specific version of the Pods
7
+ # that haven't changed in the {Lockfile}.
8
+ module LockingDependencyAnalyzer
9
+ # Generates dependencies that require the specific version of the Pods
10
+ # that haven't changed in the {Lockfile}.
11
+ #
12
+ # These dependencies are passed to the {Resolver}, unless the installer
13
+ # is in update mode, to prevent it from upgrading the Pods that weren't
14
+ # changed in the {Podfile}.
15
+ #
16
+ # @return [Molinillo::DependencyGraph<Dependency>] the dependencies
17
+ # generated by the lockfile that prevent the resolver to update
18
+ # a Pod.
19
+ #
20
+ def self.generate_version_locking_dependencies(lockfile, pods_to_update)
21
+ dependency_graph = Molinillo::DependencyGraph.new
22
+
23
+ if lockfile
24
+ explicit_dependencies = lockfile.to_hash['DEPENDENCIES'] || []
25
+ explicit_dependencies.each do |string|
26
+ dependency = Dependency.new(string)
27
+ dependency_graph.add_root_vertex(dependency.name, nil)
28
+ end
29
+
30
+ pods = lockfile.to_hash['PODS'] || []
31
+ pods.each do |pod|
32
+ add_to_dependency_graph(pod, [], dependency_graph)
33
+ end
34
+
35
+ pods_to_update.each { |u| dependency_graph.detach_vertex_named(u) }
36
+ end
37
+
38
+ dependency_graph
39
+ end
40
+
41
+ # Generates a completely 'unlocked' dependency graph.
42
+ #
43
+ # @return [Molinillo::DependencyGraph<Dependency>] an empty dependency
44
+ # graph
45
+ #
46
+ def self.unlocked_dependency_graph
47
+ Molinillo::DependencyGraph.new
48
+ end
49
+
50
+ private
51
+
52
+ def self.add_child_vertex_to_graph(dependency_string, parents, dependency_graph)
53
+ dependency = Dependency.from_string(dependency_string)
54
+ dependency_graph.add_child_vertex(dependency.name, parents.empty? ? dependency : nil, parents, nil)
55
+ dependency
56
+ end
57
+
58
+ def self.add_to_dependency_graph(object, parents, dependency_graph)
59
+ case object
60
+ when String
61
+ add_child_vertex_to_graph(object, parents, dependency_graph)
62
+ when Hash
63
+ object.each do |key, value|
64
+ dependency = add_child_vertex_to_graph(key, parents, dependency_graph)
65
+ value.each { |v| add_to_dependency_graph(v, [dependency.name], dependency_graph) }
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -8,7 +8,7 @@ module Pod
8
8
  #
9
9
  attr_reader :sandbox
10
10
 
11
- # @return [Array<Library>] The libraries of the installation.
11
+ # @return [Array<PodTarget>] The libraries of the installation.
12
12
  #
13
13
  attr_reader :libraries
14
14
 
@@ -17,7 +17,7 @@ module Pod
17
17
  attr_reader :pods_project
18
18
 
19
19
  # @param [Sandbox] sandbox @see sandbox
20
- # @param [Array<Library>] libraries @see libraries
20
+ # @param [Array<PodTarget>] libraries @see libraries
21
21
  # @param [Project] libraries @see libraries
22
22
  #
23
23
  def initialize(sandbox, libraries, pods_project)
@@ -114,15 +114,15 @@ module Pod
114
114
  libraries.each do |library|
115
115
  library.file_accessors.each do |file_accessor|
116
116
  headers_sandbox = Pathname.new(file_accessor.spec.root.name)
117
- library.build_headers.add_search_path(headers_sandbox)
118
- sandbox.public_headers.add_search_path(headers_sandbox)
117
+ library.build_headers.add_search_path(headers_sandbox, library.platform)
118
+ sandbox.public_headers.add_search_path(headers_sandbox, library.platform)
119
119
 
120
120
  header_mappings(headers_sandbox, file_accessor, file_accessor.headers).each do |namespaced_path, files|
121
- library.build_headers.add_files(namespaced_path, files)
121
+ library.build_headers.add_files(namespaced_path, files, library.platform)
122
122
  end
123
123
 
124
124
  header_mappings(headers_sandbox, file_accessor, file_accessor.public_headers).each do |namespaced_path, files|
125
- sandbox.public_headers.add_files(namespaced_path, files)
125
+ sandbox.public_headers.add_files(namespaced_path, files, library.platform)
126
126
  end
127
127
  end
128
128
  end
@@ -167,11 +167,12 @@ module Pod
167
167
  # Computes the destination sub-directory in the sandbox
168
168
  #
169
169
  # @param [Pathname] headers_sandbox
170
- # The sandbox where the headers links should be stored for this
170
+ # The sandbox where the header links should be stored for this
171
171
  # Pod.
172
172
  #
173
- # @param [Specification::Consumer] consumer
174
- # The consumer for which the headers need to be linked.
173
+ # @param [Sandbox::FileAccessor] file_accessor
174
+ # The consumer file accessor for which the headers need to be
175
+ # linked.
175
176
  #
176
177
  # @param [Array<Pathname>] headers
177
178
  # The absolute paths of the headers which need to be mapped.
@@ -10,16 +10,16 @@ module Pod
10
10
  #
11
11
  attr_reader :sandbox
12
12
 
13
- # @return [Library] The library whose target needs to be generated.
13
+ # @return [Target] The library whose target needs to be generated.
14
14
  #
15
- attr_reader :library
15
+ attr_reader :target
16
16
 
17
17
  # @param [Project] project @see project
18
- # @param [Library] library @see library
18
+ # @param [Target] target @see target
19
19
  #
20
- def initialize(sandbox, library)
20
+ def initialize(sandbox, target)
21
21
  @sandbox = sandbox
22
- @library = library
22
+ @target = target
23
23
  end
24
24
 
25
25
  private
@@ -36,31 +36,31 @@ module Pod
36
36
  # @return [void]
37
37
  #
38
38
  def add_target
39
- name = library.label
40
- platform = library.platform.name
41
- deployment_target = library.platform.deployment_target.to_s
42
- @target = project.new_target(:static_library, name, platform, deployment_target)
39
+ name = target.label
40
+ platform = target.platform.name
41
+ deployment_target = target.platform.deployment_target.to_s
42
+ @native_target = project.new_target(:static_library, name, platform, deployment_target)
43
43
 
44
- library.user_build_configurations.each do |bc_name, type|
45
- configuration = @target.add_build_configuration(bc_name, type)
44
+ target.user_build_configurations.each do |bc_name, type|
45
+ configuration = @native_target.add_build_configuration(bc_name, type)
46
46
  end
47
47
 
48
48
  settings = { 'OTHER_LDFLAGS' => '', 'OTHER_LIBTOOLFLAGS' => '' }
49
- if library.archs
50
- settings['ARCHS'] = library.archs
49
+ if target.archs
50
+ settings['ARCHS'] = target.archs
51
51
  end
52
52
 
53
- @target.build_configurations.each do |configuration|
53
+ @native_target.build_configurations.each do |configuration|
54
54
  configuration.build_settings.merge!(settings)
55
55
  end
56
56
 
57
- library.target = @target
57
+ target.native_target = @native_target
58
58
  end
59
59
 
60
60
  # Creates the directory where to store the support files of the target.
61
61
  #
62
62
  def create_support_files_dir
63
- library.support_files_dir.mkdir
63
+ target.support_files_dir.mkdir
64
64
  end
65
65
 
66
66
  # Generates a dummy source file for each target so libraries that contain
@@ -69,11 +69,11 @@ module Pod
69
69
  # @return [void]
70
70
  #
71
71
  def create_dummy_source
72
- path = library.dummy_source_path
73
- generator = Generator::DummySource.new(library.label)
72
+ path = target.dummy_source_path
73
+ generator = Generator::DummySource.new(target.label)
74
74
  generator.save_as(path)
75
75
  file_reference = add_file_to_support_group(path)
76
- target.source_build_phase.add_file_reference(file_reference)
76
+ native_target.source_build_phase.add_file_reference(file_reference)
77
77
  end
78
78
 
79
79
  # @return [PBXNativeTarget] the target generated by the installation
@@ -81,7 +81,7 @@ module Pod
81
81
  #
82
82
  # @note Generated by the {#add_target} step.
83
83
  #
84
- attr_reader :target
84
+ attr_reader :native_target
85
85
 
86
86
  private
87
87
 
@@ -98,7 +98,7 @@ module Pod
98
98
  # @return [TargetDefinition] the target definition of the library.
99
99
  #
100
100
  def target_definition
101
- library.target_definition
101
+ target.target_definition
102
102
  end
103
103
 
104
104
  # @return [PBXGroup] the group where the file references to the support
@@ -9,7 +9,7 @@ module Pod
9
9
  # @return [void]
10
10
  #
11
11
  def install!
12
- UI.message "- Installing target `#{library.name}` #{library.platform}" do
12
+ UI.message "- Installing target `#{target.name}` #{target.platform}" do
13
13
  add_target
14
14
  create_support_files_dir
15
15
  create_suport_files_group
@@ -33,8 +33,8 @@ module Pod
33
33
  #
34
34
  def create_suport_files_group
35
35
  parent = project.support_files_group
36
- name = library.name
37
- dir = library.support_files_dir
36
+ name = target.name
37
+ dir = target.support_files_dir
38
38
  @support_files_group = parent.new_group(name, dir)
39
39
  end
40
40
 
@@ -43,11 +43,11 @@ module Pod
43
43
  # @return [void]
44
44
  #
45
45
  def create_xcconfig_file
46
- target.build_configurations.each do |configuration|
47
- path = library.xcconfig_path(configuration.name)
48
- gen = Generator::XCConfig::AggregateXCConfig.new(library, configuration.name)
46
+ native_target.build_configurations.each do |configuration|
47
+ path = target.xcconfig_path(configuration.name)
48
+ gen = Generator::XCConfig::AggregateXCConfig.new(target, configuration.name)
49
49
  gen.save_as(path)
50
- library.xcconfigs[configuration.name] = gen.xcconfig
50
+ target.xcconfigs[configuration.name] = gen.xcconfig
51
51
  xcconfig_file_ref = add_file_to_support_group(path)
52
52
  configuration.base_configuration_reference = xcconfig_file_ref
53
53
  end
@@ -57,8 +57,8 @@ module Pod
57
57
  # pods and the installed specifications of a pod.
58
58
  #
59
59
  def create_target_environment_header
60
- path = library.target_environment_header_path
61
- generator = Generator::TargetEnvironmentHeader.new(library.specs_by_build_configuration)
60
+ path = target.target_environment_header_path
61
+ generator = Generator::TargetEnvironmentHeader.new(target.specs_by_build_configuration)
62
62
  generator.save_as(path)
63
63
  add_file_to_support_group(path)
64
64
  end
@@ -66,15 +66,15 @@ module Pod
66
66
  # Generates the bridge support metadata if requested by the {Podfile}.
67
67
  #
68
68
  # @note The bridge support metadata is added to the resources of the
69
- # library because it is needed for environments interpreted at
69
+ # target because it is needed for environments interpreted at
70
70
  # runtime.
71
71
  #
72
72
  # @return [void]
73
73
  #
74
74
  def create_bridge_support_file
75
75
  if target_definition.podfile.generate_bridge_support?
76
- path = library.bridge_support_path
77
- headers = target.headers_build_phase.files.map { |bf| sandbox.root + bf.file_ref.path }
76
+ path = target.bridge_support_path
77
+ headers = native_target.headers_build_phase.files.map { |bf| sandbox.root + bf.file_ref.path }
78
78
  generator = Generator::BridgeSupport.new(headers)
79
79
  generator.save_as(path)
80
80
  add_file_to_support_group(path)
@@ -91,15 +91,15 @@ module Pod
91
91
  # @return [void]
92
92
  #
93
93
  def create_copy_resources_script
94
- path = library.copy_resources_script_path
95
- file_accessors = library.pod_targets.map(&:file_accessors).flatten
94
+ path = target.copy_resources_script_path
95
+ file_accessors = target.pod_targets.map(&:file_accessors).flatten
96
96
  resource_paths = file_accessors.map { |accessor| accessor.resources.flatten.map { |res| res.relative_path_from(project.path.dirname) } }.flatten
97
97
  resource_bundles = file_accessors.map { |accessor| accessor.resource_bundles.keys.map { |name| "${BUILT_PRODUCTS_DIR}/#{name}.bundle" } }.flatten
98
98
  resources = []
99
99
  resources.concat(resource_paths)
100
100
  resources.concat(resource_bundles)
101
101
  resources << bridge_support_file if bridge_support_file
102
- generator = Generator::CopyResourcesScript.new(resources, library.platform)
102
+ generator = Generator::CopyResourcesScript.new(resources, target.platform)
103
103
  generator.save_as(path)
104
104
  add_file_to_support_group(path)
105
105
  end
@@ -109,10 +109,10 @@ module Pod
109
109
  # @return [void]
110
110
  #
111
111
  def create_acknowledgements
112
- basepath = library.acknowledgements_basepath
112
+ basepath = target.acknowledgements_basepath
113
113
  Generator::Acknowledgements.generators.each do |generator_class|
114
114
  path = generator_class.path_from_basepath(basepath)
115
- file_accessors = library.pod_targets.map(&:file_accessors).flatten
115
+ file_accessors = target.pod_targets.map(&:file_accessors).flatten
116
116
  generator = generator_class.new(file_accessors)
117
117
  generator.save_as(path)
118
118
  add_file_to_support_group(path)