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 +4 -4
- data/CHANGELOG.md +45 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/embed_frameworks_script.rb +2 -2
- data/lib/cocoapods/installer/analyzer/podfile_dependency_cache.rb +1 -0
- data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +23 -4
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +11 -4
- data/lib/cocoapods/resolver.rb +2 -2
- data/lib/cocoapods/resolver/lazy_specification.rb +2 -2
- data/lib/cocoapods/sources_manager.rb +6 -1
- data/lib/cocoapods/validator.rb +19 -21
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91a0b13ca93c3781d072736e1e1ff9d200dd43c9
|
4
|
+
data.tar.gz: '0265518cae07022eca43ac72ae9e011dbc9b93bc'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: faf6624fea1e6e33486154b899249c986058e121801e50109ec60fad4c4ee10f3b9669b5a814d2c1a7915e6013cc7d7870942a9b1898e28b53d049876b54388f
|
7
|
+
data.tar.gz: 9d102fcddf3d7e680fdfa3d9a6665be1a644ebf8b9489556f084c5d0d2fe71be5187f04427f2fd803730344c50c5b5cb30b18083406d3c942fac145d85b6f28a
|
data/CHANGELOG.md
CHANGED
@@ -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
|
@@ -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
|
160
|
-
local destination="${
|
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
|
-
|
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
|
-
|
95
|
-
|
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,
|
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
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
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
|
data/lib/cocoapods/resolver.rb
CHANGED
@@ -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.
|
110
|
-
(vertex.recursive_predecessors & vertices).all? { |v| !explicit_dependencies.include?(v.name) || v.payload.
|
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,
|
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,
|
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 => {
|
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
|
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -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.
|
368
|
-
error('spec', "Validating a
|
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(&:
|
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? &&
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
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.
|
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-
|
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.
|
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.
|
29
|
+
version: 1.7.0.beta.2
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|