cocoapods 1.4.0.rc.1 → 1.4.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 +5 -5
- data/CHANGELOG.md +27 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +2 -2
- data/lib/cocoapods/installer.rb +13 -0
- data/lib/cocoapods/installer/pod_source_installer.rb +16 -0
- data/lib/cocoapods/installer/xcode/pods_project_generator.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +12 -6
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +2 -2
- data/lib/cocoapods/resolver.rb +3 -3
- data/lib/cocoapods/resolver/lazy_specification.rb +6 -3
- data/lib/cocoapods/target/pod_target.rb +3 -3
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0ef975b90a00794720b4ee7f518780d588916450692e9c8316337cb7035d0714
|
4
|
+
data.tar.gz: '048a8ba73eeb3b2630dca90ce7d1dd2f04f9ce68f045f025ed21249c496448d0'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c71ca98c34dcfac5cec43b9bb2fc16726d5d190b0a6f34d49d06f4189b86d6997b965cf04018b756324597643a35b4df6b5482dc71c06c2d45019fe722d1f676
|
7
|
+
data.tar.gz: 9a8521c02a86e9056bc1b8387297b95694e60e2c314cfcac2b5c8b54ccd4a1a8f575f3e6317b5301d7ff5ef94e1e1e88e8f9ea44a619bcec5f72ef03a312b903
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,33 @@ 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.4.0 (2018-01-18)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Show warning when Pod source uses unencrypted HTTP
|
12
|
+
[KrauseFx](https://github.com/KrauseFx)
|
13
|
+
[#7293](https://github.com/CocoaPods/CocoaPods/issues/7293)
|
14
|
+
|
15
|
+
##### Bug Fixes
|
16
|
+
|
17
|
+
* Do not include test spec resources and framework paths of dependent targets into test scripts
|
18
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
19
|
+
[#7318](https://github.com/CocoaPods/CocoaPods/pull/7318)
|
20
|
+
|
21
|
+
* Restore `development_pod_targets` public method in installer
|
22
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
23
|
+
[#7292](https://github.com/CocoaPods/CocoaPods/pull/7292)
|
24
|
+
|
25
|
+
* Fix resolution when multiple sources provide the same pods, and there are
|
26
|
+
(potential) dependencies between the sources.
|
27
|
+
[Samuel Giddins](https://github.com/segiddins)
|
28
|
+
[#7031](https://github.com/CocoaPods/CocoaPods/issues/7031)
|
29
|
+
|
30
|
+
* Ensure that externally-sourced (e.g. local & git) pods are allowed to resolve
|
31
|
+
to prerelease versions.
|
32
|
+
[segiddins](https://github.com/segiddins)
|
33
|
+
|
7
34
|
## 1.4.0.rc.1 (2017-12-16)
|
8
35
|
|
9
36
|
##### Enhancements
|
@@ -75,8 +75,8 @@ module Pod
|
|
75
75
|
if @test_xcconfig
|
76
76
|
test_dependent_targets = [target, *target.recursive_test_dependent_targets].uniq
|
77
77
|
@xcconfig.merge! XCConfigHelper.search_paths_for_dependent_targets(target, test_dependent_targets - recursive_dependent_targets, @test_xcconfig)
|
78
|
-
XCConfigHelper.generate_vendored_build_settings(nil, target.
|
79
|
-
XCConfigHelper.generate_other_ld_flags(nil, target.
|
78
|
+
XCConfigHelper.generate_vendored_build_settings(nil, target.all_dependent_targets, @xcconfig, true, @test_xcconfig)
|
79
|
+
XCConfigHelper.generate_other_ld_flags(nil, target.all_dependent_targets, @xcconfig)
|
80
80
|
XCConfigHelper.generate_ld_runpath_search_paths(target, false, true, @xcconfig)
|
81
81
|
end
|
82
82
|
@xcconfig
|
data/lib/cocoapods/installer.rb
CHANGED
@@ -644,6 +644,19 @@ module Pod
|
|
644
644
|
|
645
645
|
#-------------------------------------------------------------------------#
|
646
646
|
|
647
|
+
public
|
648
|
+
|
649
|
+
# @return [Array<PodTarget>] The targets of the development pods generated by
|
650
|
+
# the installation process. This can be used as a convenience method for external scripts.
|
651
|
+
#
|
652
|
+
def development_pod_targets
|
653
|
+
pod_targets.select do |pod_target|
|
654
|
+
sandbox.development_pods.keys.include?(pod_target.pod_name)
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
#-------------------------------------------------------------------------#
|
659
|
+
|
647
660
|
private
|
648
661
|
|
649
662
|
# @!group Private helpers
|
@@ -117,6 +117,7 @@ module Pod
|
|
117
117
|
# @return [void]
|
118
118
|
#
|
119
119
|
def download_source
|
120
|
+
verify_source_is_secure(root_spec)
|
120
121
|
download_result = Downloader.download(download_request, root, :can_cache => can_cache?)
|
121
122
|
|
122
123
|
if (@specific_source = download_result.checkout_options) && specific_source != root_spec.source
|
@@ -124,6 +125,21 @@ module Pod
|
|
124
125
|
end
|
125
126
|
end
|
126
127
|
|
128
|
+
# Verify the source of the spec is secure, which is used to
|
129
|
+
# show a warning to the user if that isn't the case
|
130
|
+
# This method doesn't verify all protocols, but currently
|
131
|
+
# only prohibits unencrypted http:// connections
|
132
|
+
#
|
133
|
+
def verify_source_is_secure(root_spec)
|
134
|
+
return if root_spec.source.nil? || root_spec.source[:http].nil?
|
135
|
+
http_source = root_spec.source[:http]
|
136
|
+
return if http_source.downcase.start_with?('https://')
|
137
|
+
|
138
|
+
UI.warn "'#{root_spec.name}' uses the unencrypted http protocol to transfer the Pod. " \
|
139
|
+
'Please be sure you\'re in a safe network with only trusted hosts in there. ' \
|
140
|
+
'Please reach out to the library author to notify them of this security issue.'
|
141
|
+
end
|
142
|
+
|
127
143
|
def download_request
|
128
144
|
Downloader::Request.new(
|
129
145
|
:spec => root_spec,
|
@@ -288,7 +288,7 @@ module Pod
|
|
288
288
|
private
|
289
289
|
|
290
290
|
def add_pod_target_test_dependencies(pod_target, frameworks_group)
|
291
|
-
test_dependent_targets = pod_target.
|
291
|
+
test_dependent_targets = pod_target.all_dependent_targets
|
292
292
|
pod_target.test_specs_by_native_target.each do |test_native_target, test_specs|
|
293
293
|
test_dependent_targets.reject(&:should_build?).each do |test_dependent_target|
|
294
294
|
add_resource_bundles_to_native_target(test_dependent_target, test_native_target)
|
@@ -242,7 +242,7 @@ module Pod
|
|
242
242
|
product_type = target.product_type_for_test_type(test_type)
|
243
243
|
name = target.test_target_label(test_type)
|
244
244
|
platform_name = target.platform.name
|
245
|
-
language = target.
|
245
|
+
language = target.all_dependent_targets.any?(&:uses_swift?) ? :swift : :objc
|
246
246
|
native_test_target = project.new_target(product_type, name, platform_name, deployment_target, nil, language)
|
247
247
|
native_test_target.product_reference.name = name
|
248
248
|
|
@@ -401,9 +401,12 @@ module Pod
|
|
401
401
|
#
|
402
402
|
def create_test_target_copy_resources_script(test_type)
|
403
403
|
path = target.copy_resources_script_path_for_test_type(test_type)
|
404
|
-
pod_targets = target.
|
404
|
+
pod_targets = target.all_dependent_targets
|
405
405
|
resource_paths_by_config = target.user_build_configurations.keys.each_with_object({}) do |config, resources_by_config|
|
406
|
-
resources_by_config[config] = pod_targets.flat_map
|
406
|
+
resources_by_config[config] = pod_targets.flat_map do |pod_target|
|
407
|
+
include_test_spec_paths = pod_target == target
|
408
|
+
pod_target.resource_paths(include_test_spec_paths)
|
409
|
+
end
|
407
410
|
end
|
408
411
|
generator = Generator::CopyResourcesScript.new(resource_paths_by_config, target.platform)
|
409
412
|
update_changed_file(generator, path)
|
@@ -419,9 +422,12 @@ module Pod
|
|
419
422
|
#
|
420
423
|
def create_test_target_embed_frameworks_script(test_type)
|
421
424
|
path = target.embed_frameworks_script_path_for_test_type(test_type)
|
422
|
-
pod_targets = target.
|
425
|
+
pod_targets = target.all_dependent_targets
|
423
426
|
framework_paths_by_config = target.user_build_configurations.keys.each_with_object({}) do |config, paths_by_config|
|
424
|
-
paths_by_config[config] = pod_targets.flat_map
|
427
|
+
paths_by_config[config] = pod_targets.flat_map do |pod_target|
|
428
|
+
include_test_spec_paths = pod_target == target
|
429
|
+
pod_target.framework_paths(include_test_spec_paths)
|
430
|
+
end
|
425
431
|
end
|
426
432
|
generator = Generator::EmbedFrameworksScript.new(framework_paths_by_config)
|
427
433
|
update_changed_file(generator, path)
|
@@ -435,7 +441,7 @@ module Pod
|
|
435
441
|
#
|
436
442
|
def test_target_swift_debug_hack(test_target_bc)
|
437
443
|
return unless test_target_bc.debug?
|
438
|
-
return unless target.
|
444
|
+
return unless target.all_dependent_targets.any?(&:uses_swift?)
|
439
445
|
ldflags = test_target_bc.build_settings['OTHER_LDFLAGS'] ||= '$(inherited)'
|
440
446
|
ldflags << ' -lswiftSwiftOnoneSupport'
|
441
447
|
end
|
@@ -52,7 +52,7 @@ module Pod
|
|
52
52
|
def add_copy_resources_script_phase(native_target)
|
53
53
|
test_type = target.test_type_for_product_type(native_target.symbol_type)
|
54
54
|
script_path = "${PODS_ROOT}/#{target.copy_resources_script_path_for_test_type(test_type).relative_path_from(target.sandbox.root)}"
|
55
|
-
resource_paths = target.
|
55
|
+
resource_paths = target.all_dependent_targets.flat_map(&:resource_paths)
|
56
56
|
input_paths = []
|
57
57
|
output_paths = []
|
58
58
|
unless resource_paths.empty?
|
@@ -74,7 +74,7 @@ module Pod
|
|
74
74
|
def add_embed_frameworks_script_phase(native_target)
|
75
75
|
test_type = target.test_type_for_product_type(native_target.symbol_type)
|
76
76
|
script_path = "${PODS_ROOT}/#{target.embed_frameworks_script_path_for_test_type(test_type).relative_path_from(target.sandbox.root)}"
|
77
|
-
framework_paths = target.
|
77
|
+
framework_paths = target.all_dependent_targets.flat_map(&:framework_paths)
|
78
78
|
input_paths = []
|
79
79
|
output_paths = []
|
80
80
|
unless framework_paths.empty?
|
data/lib/cocoapods/resolver.rb
CHANGED
@@ -261,6 +261,7 @@ module Pod
|
|
261
261
|
name = name_for(dependency)
|
262
262
|
[
|
263
263
|
activated.vertex_named(name).payload ? 0 : 1,
|
264
|
+
dependency.external_source ? 0 : 1,
|
264
265
|
dependency.prerelease? ? 0 : 1,
|
265
266
|
conflicts[name] ? 0 : 1,
|
266
267
|
search_for(dependency).count,
|
@@ -351,8 +352,7 @@ module Pod
|
|
351
352
|
all_specifications(installation_options.warn_for_multiple_pod_sources).
|
352
353
|
select { |s| requirement.satisfied_by? s.version }.
|
353
354
|
map { |s| s.subspec_by_name(dependency.name, false, true) }.
|
354
|
-
compact
|
355
|
-
reverse
|
355
|
+
compact
|
356
356
|
end
|
357
357
|
|
358
358
|
# @return [Set] Loads or returns a previously initialized set for the Pod
|
@@ -508,7 +508,7 @@ module Pod
|
|
508
508
|
end,
|
509
509
|
)
|
510
510
|
end
|
511
|
-
raise type
|
511
|
+
raise type.new(message).tap { |e| e.set_backtrace(error.backtrace) }
|
512
512
|
end
|
513
513
|
|
514
514
|
# Returns whether the given spec is platform-compatible with the dependency
|
@@ -37,12 +37,12 @@ module Pod
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
# returns the highest versioned spec last
|
40
41
|
def all_specifications(warn_for_multiple_pod_sources)
|
41
42
|
@all_specifications ||= begin
|
42
43
|
sources_by_version = {}
|
43
44
|
versions_by_source.each do |source, versions|
|
44
45
|
versions.each { |v| (sources_by_version[v] ||= []) << source }
|
45
|
-
sources_by_version
|
46
46
|
end
|
47
47
|
|
48
48
|
if warn_for_multiple_pod_sources
|
@@ -56,8 +56,11 @@ module Pod
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
|
60
|
-
|
59
|
+
# sort versions from high to low
|
60
|
+
sources_by_version.sort_by(&:first).flat_map do |version, sources|
|
61
|
+
# within each version, we want the prefered (first-specified) source
|
62
|
+
# to be the _last_ one
|
63
|
+
sources.reverse_each.map { |source| LazySpecification.new(name, version, source) }
|
61
64
|
end
|
62
65
|
end
|
63
66
|
end
|
@@ -468,10 +468,10 @@ module Pod
|
|
468
468
|
end
|
469
469
|
end
|
470
470
|
|
471
|
-
# @return [Array<PodTarget>] the canonical list of
|
472
|
-
# This includes the
|
471
|
+
# @return [Array<PodTarget>] the canonical list of dependent targets this target has a dependency upon.
|
472
|
+
# This list includes the target itself as well as its recursive dependent and test dependent targets.
|
473
473
|
#
|
474
|
-
def
|
474
|
+
def all_dependent_targets
|
475
475
|
[self, *recursive_dependent_targets, *recursive_test_dependent_targets].uniq
|
476
476
|
end
|
477
477
|
|
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.4.0
|
4
|
+
version: 1.4.0
|
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:
|
14
|
+
date: 2018-01-18 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.4.0
|
22
|
+
version: 1.4.0
|
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.4.0
|
29
|
+
version: 1.4.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.0.
|
56
|
+
version: 1.0.2
|
57
57
|
- - "<"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '2.0'
|
@@ -63,7 +63,7 @@ dependencies:
|
|
63
63
|
requirements:
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 1.0.
|
66
|
+
version: 1.0.2
|
67
67
|
- - "<"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '2.0'
|
@@ -524,9 +524,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
524
524
|
version: '0'
|
525
525
|
requirements: []
|
526
526
|
rubyforge_project:
|
527
|
-
rubygems_version: 2.4
|
527
|
+
rubygems_version: 2.7.4
|
528
528
|
signing_key:
|
529
529
|
specification_version: 3
|
530
530
|
summary: The Cocoa library package manager.
|
531
531
|
test_files: []
|
532
|
-
has_rdoc:
|