cocoapods 1.10.0 → 1.11.0
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 +4 -4
- data/CHANGELOG.md +261 -5
- data/README.md +11 -11
- data/lib/cocoapods/command/outdated.rb +12 -1
- data/lib/cocoapods/command/repo/push.rb +17 -0
- data/lib/cocoapods/command/spec/cat.rb +3 -1
- data/lib/cocoapods/command/spec/lint.rb +1 -1
- data/lib/cocoapods/command/spec/which.rb +3 -1
- data/lib/cocoapods/command/spec.rb +18 -9
- data/lib/cocoapods/config.rb +1 -1
- data/lib/cocoapods/downloader/cache.rb +95 -6
- data/lib/cocoapods/downloader.rb +4 -2
- data/lib/cocoapods/external_sources/podspec_source.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/acknowledgements.rb +1 -1
- data/lib/cocoapods/generator/app_target_helper.rb +7 -3
- data/lib/cocoapods/generator/copy_dsyms_script.rb +4 -4
- data/lib/cocoapods/generator/copy_xcframework_script.rb +4 -48
- data/lib/cocoapods/generator/embed_frameworks_script.rb +2 -1
- data/lib/cocoapods/generator/script_phase_constants.rb +1 -0
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +31 -4
- data/lib/cocoapods/installer/analyzer.rb +12 -8
- data/lib/cocoapods/installer/podfile_validator.rb +2 -2
- data/lib/cocoapods/installer/pre_integrate_hooks_context.rb +9 -0
- data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +9 -2
- data/lib/cocoapods/installer/project_cache/project_installation_cache.rb +15 -2
- data/lib/cocoapods/installer/project_cache/target_cache_key.rb +7 -4
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +149 -9
- data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +10 -3
- data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +25 -6
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_dependency_installer.rb +6 -19
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +70 -58
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +48 -6
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb +2 -2
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +2 -5
- data/lib/cocoapods/installer/xcode/pods_project_generator.rb +1 -1
- data/lib/cocoapods/installer.rb +52 -4
- data/lib/cocoapods/resolver.rb +4 -4
- data/lib/cocoapods/sandbox/file_accessor.rb +57 -10
- data/lib/cocoapods/sandbox/headers_store.rb +3 -1
- data/lib/cocoapods/sandbox/path_list.rb +1 -1
- data/lib/cocoapods/sandbox/pod_dir_cleaner.rb +1 -1
- data/lib/cocoapods/sources_manager.rb +14 -8
- data/lib/cocoapods/target/aggregate_target.rb +23 -1
- data/lib/cocoapods/target/build_settings.rb +45 -20
- data/lib/cocoapods/target/pod_target.rb +47 -22
- data/lib/cocoapods/target.rb +1 -1
- data/lib/cocoapods/user_interface.rb +4 -0
- data/lib/cocoapods/validator.rb +25 -5
- data/lib/cocoapods/version_metadata.rb +1 -1
- data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +10 -1
- data/lib/cocoapods/xcode/xcframework.rb +8 -3
- metadata +26 -19
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'cocoapods-core/source'
|
2
|
+
require 'cocoapods/open-uri'
|
2
3
|
require 'netrc'
|
3
4
|
require 'set'
|
4
5
|
require 'rest'
|
@@ -70,15 +71,20 @@ module Pod
|
|
70
71
|
# The URL of the source.
|
71
72
|
#
|
72
73
|
def cdn_url?(url)
|
73
|
-
|
74
|
-
require 'typhoeus'
|
74
|
+
return unless url =~ %r{^https?:\/\/}
|
75
75
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
76
|
+
uri_options = {}
|
77
|
+
|
78
|
+
netrc_info = Netrc.read
|
79
|
+
netrc_host = URI.parse(url).host
|
80
|
+
credentials = netrc_info[netrc_host]
|
81
|
+
uri_options[:http_basic_authentication] = credentials if credentials
|
82
|
+
|
83
|
+
response = OpenURI.open_uri(url.chomp('/') + '/CocoaPods-version.yml', uri_options)
|
84
|
+
response_hash = YAML.load(response.read) # rubocop:disable Security/YAMLLoad
|
85
|
+
response_hash.is_a?(Hash) && !Source::Metadata.new(response_hash).latest_cocoapods_version.nil?
|
86
|
+
rescue ::OpenURI::HTTPError, SocketError
|
87
|
+
return false
|
82
88
|
rescue => e
|
83
89
|
raise Informative, "Couldn't determine repo type for URL: `#{url}`: #{e}"
|
84
90
|
end
|
@@ -225,6 +225,12 @@ module Pod
|
|
225
225
|
!resource_paths_by_config.each_value.all?(&:empty?)
|
226
226
|
end
|
227
227
|
|
228
|
+
# @return [Boolean] Whether the target contains any on demand resources
|
229
|
+
#
|
230
|
+
def includes_on_demand_resources?
|
231
|
+
!on_demand_resources.empty?
|
232
|
+
end
|
233
|
+
|
228
234
|
# @return [Boolean] Whether the target contains frameworks to be embedded into
|
229
235
|
# the user target
|
230
236
|
#
|
@@ -273,6 +279,20 @@ module Pod
|
|
273
279
|
end
|
274
280
|
end
|
275
281
|
|
282
|
+
# @return [Array<Pathname>] Uniqued On Demand Resources for this target.
|
283
|
+
#
|
284
|
+
# @note On Demand Resources are not separated by config as they are integrated directly into the users target via
|
285
|
+
# the resources build phase.
|
286
|
+
#
|
287
|
+
def on_demand_resources
|
288
|
+
@on_demand_resources ||= begin
|
289
|
+
pod_targets.flat_map do |pod_target|
|
290
|
+
library_file_accessors = pod_target.file_accessors.select { |fa| fa.spec.library_specification? }
|
291
|
+
library_file_accessors.flat_map(&:on_demand_resources_files)
|
292
|
+
end.uniq
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
276
296
|
# @return [Hash{String => Array<String>}] Uniqued Resources grouped by config
|
277
297
|
#
|
278
298
|
def resource_paths_by_config
|
@@ -292,7 +312,9 @@ module Pod
|
|
292
312
|
extname = File.extname(resource_path)
|
293
313
|
if self.class.resource_extension_compilable?(extname)
|
294
314
|
output_extname = self.class.output_extension_for_resource(extname)
|
295
|
-
|
315
|
+
output_path_components = Pathname(resource_path).each_filename.select { |component| File.extname(component) == '.lproj' }
|
316
|
+
output_path_components << File.basename(resource_path)
|
317
|
+
built_product_dir.join(*output_path_components).sub_ext(output_extname).to_s
|
296
318
|
else
|
297
319
|
resource_path
|
298
320
|
end
|
@@ -140,12 +140,12 @@ module Pod
|
|
140
140
|
end
|
141
141
|
private_class_method :define_build_settings_method
|
142
142
|
|
143
|
-
# @param [XCFramework] xcframework the xcframework
|
143
|
+
# @param [XCFramework] xcframework the xcframework slice that will be copied to the intermediates dir
|
144
144
|
#
|
145
145
|
# @return [String] the path to the directory containing the xcframework slice
|
146
146
|
#
|
147
147
|
def self.xcframework_intermediate_dir(xcframework)
|
148
|
-
"#{XCFRAMEWORKS_BUILD_DIR_VARIABLE}/#{xcframework.
|
148
|
+
"#{XCFRAMEWORKS_BUILD_DIR_VARIABLE}/#{xcframework.target_name}"
|
149
149
|
end
|
150
150
|
|
151
151
|
class << self
|
@@ -346,18 +346,26 @@ module Pod
|
|
346
346
|
#
|
347
347
|
# @param [Boolean] test_bundle
|
348
348
|
#
|
349
|
-
def _ld_runpath_search_paths(requires_host_target: false, test_bundle: false)
|
349
|
+
def _ld_runpath_search_paths(requires_host_target: false, test_bundle: false, uses_swift: false)
|
350
|
+
paths = []
|
351
|
+
if uses_swift
|
352
|
+
paths << '/usr/lib/swift'
|
353
|
+
paths << '$(PLATFORM_DIR)/Developer/Library/Frameworks' if test_bundle
|
354
|
+
end
|
350
355
|
if target.platform.symbolic_name == :osx
|
351
|
-
|
352
|
-
|
356
|
+
paths << "'@executable_path/../Frameworks'"
|
357
|
+
paths << if test_bundle
|
358
|
+
"'@loader_path/../Frameworks'"
|
359
|
+
else
|
360
|
+
"'@loader_path/Frameworks'"
|
361
|
+
end
|
362
|
+
paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}' if uses_swift
|
353
363
|
else
|
354
|
-
paths
|
355
|
-
|
356
|
-
"'@loader_path/Frameworks'",
|
357
|
-
]
|
364
|
+
paths << "'@executable_path/Frameworks'"
|
365
|
+
paths << "'@loader_path/Frameworks'"
|
358
366
|
paths << "'@executable_path/../../Frameworks'" if requires_host_target
|
359
|
-
paths
|
360
367
|
end
|
368
|
+
paths
|
361
369
|
end
|
362
370
|
private :_ld_runpath_search_paths
|
363
371
|
|
@@ -500,12 +508,14 @@ module Pod
|
|
500
508
|
pod_targets - subset_targets
|
501
509
|
end
|
502
510
|
|
511
|
+
# @param [String] target_name the name of the target this xcframework belongs to
|
512
|
+
#
|
503
513
|
# @param [Pathname,String] path the path to the xcframework bundle
|
504
514
|
#
|
505
515
|
# @return [Xcode::XCFramework] the xcframework at the given path
|
506
516
|
#
|
507
|
-
def load_xcframework(path)
|
508
|
-
Xcode::XCFramework.new(path)
|
517
|
+
def load_xcframework(target_name, path)
|
518
|
+
Xcode::XCFramework.new(target_name, path)
|
509
519
|
end
|
510
520
|
|
511
521
|
# A subclass that generates build settings for a {PodTarget}
|
@@ -616,9 +626,15 @@ module Pod
|
|
616
626
|
select { |xcf| xcf.build_type.static_framework? }.
|
617
627
|
map(&:name).
|
618
628
|
uniq
|
629
|
+
|
630
|
+
# Include direct dynamic dependencies to the linker flags. We used to add those in the 'Link Binary With Libraries'
|
631
|
+
# phase but we no longer do since we cannot differentiate between debug or release configurations within
|
632
|
+
# that phase.
|
633
|
+
frameworks.concat target.dependent_targets_by_config[@configuration].flat_map { |pt| pt.build_settings[@configuration].dynamic_frameworks_to_import }
|
634
|
+
else
|
635
|
+
# Also include any vendored dynamic frameworks of dependencies.
|
636
|
+
frameworks.concat dependent_targets.reject(&:should_build?).flat_map { |pt| pt.build_settings[@configuration].dynamic_frameworks_to_import }
|
619
637
|
end
|
620
|
-
# Also include any vendored dynamic frameworks of dependencies.
|
621
|
-
frameworks.concat dependent_targets.reject(&:should_build?).flat_map { |pt| pt.build_settings[@configuration].dynamic_frameworks_to_import }
|
622
638
|
else
|
623
639
|
frameworks.concat dependent_targets_to_link.flat_map { |pt| pt.build_settings[@configuration].frameworks_to_import }
|
624
640
|
end
|
@@ -721,7 +737,9 @@ module Pod
|
|
721
737
|
|
722
738
|
# @return [Array<Xcode::XCFramework>]
|
723
739
|
define_build_settings_method :vendored_xcframeworks, :memoized => true do
|
724
|
-
file_accessors.flat_map
|
740
|
+
file_accessors.flat_map do |file_accessor|
|
741
|
+
file_accessor.vendored_xcframeworks.map { |path| load_xcframework(file_accessor.spec.name, path) }
|
742
|
+
end
|
725
743
|
end
|
726
744
|
|
727
745
|
# @return [Array<String>]
|
@@ -840,10 +858,15 @@ module Pod
|
|
840
858
|
|
841
859
|
# @return [Array<String>]
|
842
860
|
define_build_settings_method :library_search_paths_to_import, :memoized => true do
|
843
|
-
|
844
|
-
|
861
|
+
search_paths = vendored_static_library_search_paths + vendored_dynamic_library_search_paths
|
862
|
+
if target.uses_swift? || other_swift_flags_without_swift?
|
863
|
+
search_paths << '/usr/lib/swift'
|
864
|
+
search_paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}'
|
865
|
+
search_paths << '$(PLATFORM_DIR)/Developer/Library/Frameworks' if test_xcconfig?
|
866
|
+
end
|
867
|
+
return search_paths if target.build_as_framework? || !target.should_build?
|
845
868
|
|
846
|
-
|
869
|
+
search_paths << target.configuration_build_dir(CONFIGURATION_BUILD_DIR_VARIABLE)
|
847
870
|
end
|
848
871
|
|
849
872
|
#-------------------------------------------------------------------------#
|
@@ -948,7 +971,8 @@ module Pod
|
|
948
971
|
# @return [Array<String>]
|
949
972
|
define_build_settings_method :ld_runpath_search_paths, :build_setting => true, :memoized => true do
|
950
973
|
return if library_xcconfig?
|
951
|
-
_ld_runpath_search_paths(:test_bundle => test_xcconfig
|
974
|
+
_ld_runpath_search_paths(:test_bundle => test_xcconfig?,
|
975
|
+
:uses_swift => other_swift_flags_without_swift? || dependent_targets.any?(&:uses_swift?))
|
952
976
|
end
|
953
977
|
|
954
978
|
#-------------------------------------------------------------------------#
|
@@ -1251,7 +1275,8 @@ module Pod
|
|
1251
1275
|
return unless pod_targets.any?(&:build_as_dynamic?) || any_vendored_dynamic_artifacts?
|
1252
1276
|
symbol_type = target.user_targets.map(&:symbol_type).uniq.first
|
1253
1277
|
test_bundle = symbol_type == :octest_bundle || symbol_type == :unit_test_bundle || symbol_type == :ui_test_bundle
|
1254
|
-
_ld_runpath_search_paths(:requires_host_target => target.requires_host_target?, :test_bundle => test_bundle
|
1278
|
+
_ld_runpath_search_paths(:requires_host_target => target.requires_host_target?, :test_bundle => test_bundle,
|
1279
|
+
:uses_swift => pod_targets.any?(&:uses_swift?))
|
1255
1280
|
end
|
1256
1281
|
|
1257
1282
|
# @return [Boolean]
|
@@ -203,7 +203,7 @@ module Pod
|
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
206
|
-
# @return [Array<
|
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)
|
@@ -268,6 +268,23 @@ module Pod
|
|
268
268
|
root_spec.module_name
|
269
269
|
end
|
270
270
|
|
271
|
+
# @param [Specification] spec the specification
|
272
|
+
#
|
273
|
+
# @return [String] the product basename of the specification's target
|
274
|
+
def product_basename_for_spec(spec)
|
275
|
+
user_specified = build_settings_by_config_for_spec(spec).
|
276
|
+
each_value.
|
277
|
+
map { |settings| settings.merged_pod_target_xcconfigs['PRODUCT_NAME'] }.
|
278
|
+
compact.
|
279
|
+
uniq
|
280
|
+
|
281
|
+
if user_specified.size == 1
|
282
|
+
user_specified.first
|
283
|
+
else
|
284
|
+
spec_label(spec)
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
271
288
|
# @return [Bool] Whether or not this target should be built.
|
272
289
|
#
|
273
290
|
# A target should not be built if it has no source files.
|
@@ -294,22 +311,26 @@ module Pod
|
|
294
311
|
test_specs.map { |test_spec| test_spec.consumer(platform) }
|
295
312
|
end
|
296
313
|
|
297
|
-
# @return [Array<Specification::Consumer>] the
|
314
|
+
# @return [Array<Specification::Consumer>] the app specification consumers for
|
298
315
|
# the target.
|
299
316
|
#
|
300
317
|
def app_spec_consumers
|
301
318
|
app_specs.map { |app_spec| app_spec.consumer(platform) }
|
302
319
|
end
|
303
320
|
|
304
|
-
#
|
321
|
+
# Checks whether the target itself plus its specs uses Swift code.
|
322
|
+
# This check excludes source files from non library specs.
|
323
|
+
# Note that if a target does not need to be built (no source code),
|
324
|
+
# we fallback to check whether it indicates a swift version.
|
325
|
+
#
|
326
|
+
# @return [Boolean] Whether the target uses Swift code.
|
305
327
|
#
|
306
328
|
def uses_swift?
|
307
329
|
return @uses_swift if defined? @uses_swift
|
308
|
-
@uses_swift =
|
330
|
+
@uses_swift = (!should_build? && !spec_swift_versions.empty?) ||
|
309
331
|
file_accessors.select { |a| a.spec.library_specification? }.any? do |file_accessor|
|
310
332
|
uses_swift_for_spec?(file_accessor.spec)
|
311
333
|
end
|
312
|
-
end
|
313
334
|
end
|
314
335
|
|
315
336
|
# Checks whether a specification uses Swift or not.
|
@@ -373,7 +394,7 @@ module Pod
|
|
373
394
|
!test_specs.empty?
|
374
395
|
end
|
375
396
|
|
376
|
-
# @return [Boolean] Whether the target has any
|
397
|
+
# @return [Boolean] Whether the target has any app specifications.
|
377
398
|
#
|
378
399
|
def contains_app_specifications?
|
379
400
|
!app_specs.empty?
|
@@ -422,7 +443,7 @@ module Pod
|
|
422
443
|
@xcframeworks ||= begin
|
423
444
|
file_accessors.each_with_object({}) do |file_accessor, hash|
|
424
445
|
frameworks = file_accessor.vendored_xcframeworks.map do |framework_path|
|
425
|
-
Xcode::XCFramework.new(framework_path)
|
446
|
+
Xcode::XCFramework.new(file_accessor.spec.name, framework_path)
|
426
447
|
end
|
427
448
|
hash[file_accessor.spec.name] = frameworks
|
428
449
|
end
|
@@ -455,7 +476,7 @@ module Pod
|
|
455
476
|
prefix = Pod::Target::BuildSettings::CONFIGURATION_BUILD_DIR_VARIABLE
|
456
477
|
prefix = configuration_build_dir unless file_accessor.spec.test_specification?
|
457
478
|
resource_bundle_paths = file_accessor.resource_bundles.keys.map { |name| "#{prefix}/#{name.shellescape}.bundle" }
|
458
|
-
hash[file_accessor.spec.name] = resource_paths + resource_bundle_paths
|
479
|
+
hash[file_accessor.spec.name] = (resource_paths + resource_bundle_paths).map(&:to_s)
|
459
480
|
end
|
460
481
|
end
|
461
482
|
end
|
@@ -512,7 +533,7 @@ module Pod
|
|
512
533
|
# @return [Specification] The root specification for the target.
|
513
534
|
#
|
514
535
|
def root_spec
|
515
|
-
specs.first.root
|
536
|
+
@root_spec ||= specs.first.root
|
516
537
|
end
|
517
538
|
|
518
539
|
# @return [String] The name of the Pod that this target refers to.
|
@@ -619,13 +640,16 @@ module Pod
|
|
619
640
|
end
|
620
641
|
end
|
621
642
|
|
622
|
-
def
|
643
|
+
def spec_label(spec)
|
623
644
|
case spec.spec_type
|
645
|
+
when :library then label
|
624
646
|
when :test then test_target_label(spec)
|
625
647
|
when :app then app_target_label(spec)
|
626
648
|
else raise ArgumentError, "Unhandled spec type #{spec.spec_type.inspect} for #{spec.inspect}"
|
627
649
|
end
|
628
650
|
end
|
651
|
+
# for backwards compatibility
|
652
|
+
alias non_library_spec_label spec_label
|
629
653
|
|
630
654
|
# @param [Specification] spec
|
631
655
|
# The spec to return scheme configuration for.
|
@@ -645,7 +669,7 @@ module Pod
|
|
645
669
|
# @return [Pathname] The absolute path of the copy resources script for the given spec.
|
646
670
|
#
|
647
671
|
def copy_resources_script_path_for_spec(spec)
|
648
|
-
support_files_dir + "#{
|
672
|
+
support_files_dir + "#{spec_label(spec)}-resources.sh"
|
649
673
|
end
|
650
674
|
|
651
675
|
# @param [Specification] spec
|
@@ -654,7 +678,7 @@ module Pod
|
|
654
678
|
# @return [Pathname] The absolute path of the copy resources script input file list for the given spec.
|
655
679
|
#
|
656
680
|
def copy_resources_script_input_files_path_for_spec(spec)
|
657
|
-
support_files_dir + "#{
|
681
|
+
support_files_dir + "#{spec_label(spec)}-resources-input-files.xcfilelist"
|
658
682
|
end
|
659
683
|
|
660
684
|
# @param [Specification] spec
|
@@ -663,7 +687,7 @@ module Pod
|
|
663
687
|
# @return [Pathname] The absolute path of the copy resources script output file list for the given spec.
|
664
688
|
#
|
665
689
|
def copy_resources_script_output_files_path_for_spec(spec)
|
666
|
-
support_files_dir + "#{
|
690
|
+
support_files_dir + "#{spec_label(spec)}-resources-output-files.xcfilelist"
|
667
691
|
end
|
668
692
|
|
669
693
|
# @param [Specification] spec
|
@@ -672,7 +696,7 @@ module Pod
|
|
672
696
|
# @return [Pathname] The absolute path of the embed frameworks script for the given spec.
|
673
697
|
#
|
674
698
|
def embed_frameworks_script_path_for_spec(spec)
|
675
|
-
support_files_dir + "#{
|
699
|
+
support_files_dir + "#{spec_label(spec)}-frameworks.sh"
|
676
700
|
end
|
677
701
|
|
678
702
|
# @param [Specification] spec
|
@@ -681,7 +705,7 @@ module Pod
|
|
681
705
|
# @return [Pathname] The absolute path of the embed frameworks script input file list for the given spec.
|
682
706
|
#
|
683
707
|
def embed_frameworks_script_input_files_path_for_spec(spec)
|
684
|
-
support_files_dir + "#{
|
708
|
+
support_files_dir + "#{spec_label(spec)}-frameworks-input-files.xcfilelist"
|
685
709
|
end
|
686
710
|
|
687
711
|
# @param [Specification] spec
|
@@ -690,7 +714,7 @@ module Pod
|
|
690
714
|
# @return [Pathname] The absolute path of the embed frameworks script output file list for the given spec.
|
691
715
|
#
|
692
716
|
def embed_frameworks_script_output_files_path_for_spec(spec)
|
693
|
-
support_files_dir + "#{
|
717
|
+
support_files_dir + "#{spec_label(spec)}-frameworks-output-files.xcfilelist"
|
694
718
|
end
|
695
719
|
|
696
720
|
# @return [Pathname] The absolute path of the copy xcframeworks script.
|
@@ -721,7 +745,7 @@ module Pod
|
|
721
745
|
# @todo Remove in 2.0
|
722
746
|
#
|
723
747
|
def prepare_artifacts_script_path_for_spec(spec)
|
724
|
-
support_files_dir + "#{
|
748
|
+
support_files_dir + "#{spec_label(spec)}-artifacts.sh"
|
725
749
|
end
|
726
750
|
|
727
751
|
# @param [Specification] spec
|
@@ -734,7 +758,7 @@ module Pod
|
|
734
758
|
# @todo Remove in 2.0
|
735
759
|
#
|
736
760
|
def prepare_artifacts_script_input_files_path_for_spec(spec)
|
737
|
-
support_files_dir + "#{
|
761
|
+
support_files_dir + "#{spec_label(spec)}-artifacts-input-files.xcfilelist"
|
738
762
|
end
|
739
763
|
|
740
764
|
# @param [Specification] spec
|
@@ -747,7 +771,7 @@ module Pod
|
|
747
771
|
# @todo Remove in 2.0
|
748
772
|
#
|
749
773
|
def prepare_artifacts_script_output_files_path_for_spec(spec)
|
750
|
-
support_files_dir + "#{
|
774
|
+
support_files_dir + "#{spec_label(spec)}-artifacts-output-files.xcfilelist"
|
751
775
|
end
|
752
776
|
|
753
777
|
# @return [Pathname] The absolute path of the copy dSYMs script.
|
@@ -774,7 +798,7 @@ module Pod
|
|
774
798
|
# @return [Pathname] The absolute path of the Info.plist for the given spec.
|
775
799
|
#
|
776
800
|
def info_plist_path_for_spec(spec)
|
777
|
-
support_files_dir + "#{
|
801
|
+
support_files_dir + "#{spec_label(spec)}-Info.plist"
|
778
802
|
end
|
779
803
|
|
780
804
|
# @param [Specification] spec
|
@@ -783,7 +807,7 @@ module Pod
|
|
783
807
|
# @return [Pathname] the absolute path of the prefix header file for the given spec.
|
784
808
|
#
|
785
809
|
def prefix_header_path_for_spec(spec)
|
786
|
-
support_files_dir + "#{
|
810
|
+
support_files_dir + "#{spec_label(spec)}-prefix.pch"
|
787
811
|
end
|
788
812
|
|
789
813
|
# @return [Array<String>] The names of the Pods on which this target
|
@@ -1054,7 +1078,8 @@ module Pod
|
|
1054
1078
|
#
|
1055
1079
|
def uses_modular_headers?(only_if_defines_modules = true)
|
1056
1080
|
return false if only_if_defines_modules && !defines_module?
|
1057
|
-
|
1081
|
+
return @uses_modular_headers if defined? @uses_modular_headers
|
1082
|
+
@uses_modular_headers = spec_consumers.none?(&:header_mappings_dir) && spec_consumers.none?(&:header_dir)
|
1058
1083
|
end
|
1059
1084
|
|
1060
1085
|
private
|
data/lib/cocoapods/target.rb
CHANGED
@@ -350,7 +350,7 @@ module Pod
|
|
350
350
|
end
|
351
351
|
|
352
352
|
def self.resource_extension_compilable?(input_extension)
|
353
|
-
output_extension_for_resource(input_extension) != input_extension
|
353
|
+
output_extension_for_resource(input_extension) != input_extension && input_extension != '.xcassets'
|
354
354
|
end
|
355
355
|
|
356
356
|
#-------------------------------------------------------------------------#
|