cocoapods 0.39.0.beta.5 → 0.39.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +1 -2
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +22 -2
- data/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +1 -1
- data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +1 -0
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +35 -15
- data/lib/cocoapods/resolver.rb +3 -8
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9b6307f3481f68a070b2041113029c82645970c
|
4
|
+
data.tar.gz: e2930c2cd0e469383e9f12957ea91d3e577e02ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2f291a5925c5f21e2798eec82e84f90ba152b4cfdf464bd47e76dbfc1e111dd32ddf6b934b2ba9f7458f6775f61e2933a4c72af14986f74512158e9f15be846
|
7
|
+
data.tar.gz: 8cd1087485caa43c0ea13619e73f28f79f925ee92767797c3622380ec724e746223057632484020b6bede6b089fe1eb4b59f79ff29ea80816bea92f5f612c711
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,19 @@ 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
|
+
## 0.39.0.rc.1 (2015-10-05)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Support for adding dependency target vendored libraries and frameworks to build settings.
|
12
|
+
[Kevin Coleman](https://github.com/kcoleman731)
|
13
|
+
[#4278](https://github.com/CocoaPods/CocoaPods/pull/4278)
|
14
|
+
|
15
|
+
* Always link the aggregate target as static to the user project.
|
16
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
17
|
+
[#4137](https://github.com/CocoaPods/CocoaPods/pull/4137)
|
18
|
+
|
19
|
+
|
7
20
|
## 0.39.0.beta.5 (2015-10-01)
|
8
21
|
|
9
22
|
##### Breaking
|
@@ -43,7 +43,6 @@ module Pod
|
|
43
43
|
target_search_paths = target.build_headers.search_paths(target.platform)
|
44
44
|
sandbox_search_paths = target.sandbox.public_headers.search_paths(target.platform)
|
45
45
|
search_paths = target_search_paths.concat(sandbox_search_paths).uniq
|
46
|
-
framework_search_paths = target.dependent_targets.flat_map(&:file_accessors).flat_map(&:vendored_frameworks).map { |fw| '${PODS_ROOT}/' << fw.dirname.relative_path_from(target.sandbox.root).to_s }
|
47
46
|
|
48
47
|
config = {
|
49
48
|
'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
|
@@ -51,7 +50,7 @@ module Pod
|
|
51
50
|
'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(search_paths),
|
52
51
|
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
|
53
52
|
'SKIP_INSTALL' => 'YES',
|
54
|
-
'FRAMEWORK_SEARCH_PATHS' => '$(inherited) '
|
53
|
+
'FRAMEWORK_SEARCH_PATHS' => '$(inherited) '
|
55
54
|
# 'USE_HEADERMAP' => 'NO'
|
56
55
|
}
|
57
56
|
|
@@ -52,6 +52,26 @@ module Pod
|
|
52
52
|
def self.add_settings_for_file_accessors_of_target(target, xcconfig)
|
53
53
|
target.file_accessors.each do |file_accessor|
|
54
54
|
XCConfigHelper.add_spec_build_settings_to_xcconfig(file_accessor.spec_consumer, xcconfig)
|
55
|
+
end
|
56
|
+
XCConfigHelper.add_vendored_dependency_build_settings(target, xcconfig)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Adds build settings for vendored frameworks and libraries.
|
60
|
+
#
|
61
|
+
# @param [PodTarget] target
|
62
|
+
# The pod target, which holds the list of +Spec::FileAccessor+.
|
63
|
+
#
|
64
|
+
# @param [Xcodeproj::Config] xcconfig
|
65
|
+
# The xcconfig to edit.
|
66
|
+
#
|
67
|
+
def self.add_vendored_dependency_build_settings(target, xcconfig)
|
68
|
+
if target.requires_frameworks?
|
69
|
+
target.dependent_targets.each do |dependent_target|
|
70
|
+
XCConfigHelper.add_vendored_dependency_build_settings(dependent_target, xcconfig)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
target.file_accessors.each do |file_accessor|
|
55
75
|
file_accessor.vendored_frameworks.each do |vendored_framework|
|
56
76
|
XCConfigHelper.add_framework_build_settings(vendored_framework, xcconfig, target.sandbox.root)
|
57
77
|
end
|
@@ -91,7 +111,7 @@ module Pod
|
|
91
111
|
#
|
92
112
|
def self.add_framework_build_settings(framework_path, xcconfig, sandbox_root)
|
93
113
|
name = File.basename(framework_path, '.framework')
|
94
|
-
dirname = '$
|
114
|
+
dirname = '${PODS_ROOT}/' + framework_path.dirname.relative_path_from(sandbox_root).to_s
|
95
115
|
build_settings = {
|
96
116
|
'OTHER_LDFLAGS' => "-framework #{name}",
|
97
117
|
'FRAMEWORK_SEARCH_PATHS' => quote([dirname]),
|
@@ -113,7 +133,7 @@ module Pod
|
|
113
133
|
#
|
114
134
|
def self.add_library_build_settings(library_path, xcconfig, sandbox_root)
|
115
135
|
name = File.basename(library_path, '.a').sub(/\Alib/, '')
|
116
|
-
dirname = '$
|
136
|
+
dirname = '${PODS_ROOT}/' + library_path.dirname.relative_path_from(sandbox_root).to_s
|
117
137
|
build_settings = {
|
118
138
|
'OTHER_LDFLAGS' => "-l#{name}",
|
119
139
|
'LIBRARY_SEARCH_PATHS' => '$(inherited) ' + quote([dirname]),
|
@@ -24,7 +24,7 @@ module Pod
|
|
24
24
|
explicit_dependencies = lockfile.to_hash['DEPENDENCIES'] || []
|
25
25
|
explicit_dependencies.each do |string|
|
26
26
|
dependency = Dependency.new(string)
|
27
|
-
dependency_graph.
|
27
|
+
dependency_graph.add_vertex(dependency.name, nil, true)
|
28
28
|
end
|
29
29
|
|
30
30
|
pods = lockfile.to_hash['PODS'] || []
|
@@ -127,13 +127,36 @@ module Pod
|
|
127
127
|
# @todo This can be removed for CocoaPods 1.0
|
128
128
|
#
|
129
129
|
def update_to_cocoapods_0_39
|
130
|
-
|
131
|
-
|
130
|
+
targets_to_embed = native_targets.select do |target|
|
131
|
+
EMBED_FRAMEWORK_TARGET_TYPES.include?(target.symbol_type)
|
132
|
+
end
|
133
|
+
requires_update = targets_to_embed.any? do |target|
|
134
|
+
!target.shell_script_build_phases.find { |bp| bp.name == EMBED_FRAMEWORK_PHASE_NAME }
|
132
135
|
end
|
133
136
|
if requires_update
|
134
|
-
|
135
|
-
|
137
|
+
targets_to_embed.each do |native_target|
|
138
|
+
add_embed_frameworks_script_phase_to_target(native_target)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
frameworks = user_project.frameworks_group
|
143
|
+
native_targets.each do |native_target|
|
144
|
+
build_phase = native_target.frameworks_build_phase
|
145
|
+
|
146
|
+
product_ref = frameworks.files.find { |f| f.path == target.product_name }
|
147
|
+
if product_ref
|
148
|
+
build_file = build_phase.build_file(product_ref)
|
149
|
+
if build_file &&
|
150
|
+
build_file.settings.is_a?(Hash) &&
|
151
|
+
build_file.settings['ATTRIBUTES'].is_a?(Array) &&
|
152
|
+
build_file.settings['ATTRIBUTES'].include?('Weak')
|
153
|
+
build_file.settings = nil
|
154
|
+
requires_update = true
|
155
|
+
end
|
156
|
+
end
|
136
157
|
end
|
158
|
+
|
159
|
+
requires_update
|
137
160
|
end
|
138
161
|
|
139
162
|
# Adds spec product reference to the frameworks build phase of the
|
@@ -161,15 +184,8 @@ module Pod
|
|
161
184
|
target_basename = target.product_basename
|
162
185
|
new_product_ref = frameworks.files.find { |f| f.path == target.product_name } ||
|
163
186
|
frameworks.new_product_ref_for_target(target_basename, target.product_type)
|
164
|
-
|
187
|
+
build_phase.build_file(new_product_ref) ||
|
165
188
|
build_phase.add_file_reference(new_product_ref, true)
|
166
|
-
if target.requires_frameworks?
|
167
|
-
# Weak link the aggregate target's product, because as it contains
|
168
|
-
# no symbols, it isn't copied into the app bundle. dyld will so
|
169
|
-
# never try to find the missing executable at runtime.
|
170
|
-
build_file.settings ||= {}
|
171
|
-
build_file.settings['ATTRIBUTES'] = ['Weak']
|
172
|
-
end
|
173
189
|
end
|
174
190
|
end
|
175
191
|
|
@@ -179,12 +195,16 @@ module Pod
|
|
179
195
|
#
|
180
196
|
def add_embed_frameworks_script_phase
|
181
197
|
native_targets_to_embed_in.each do |native_target|
|
182
|
-
|
183
|
-
script_path = target.embed_frameworks_script_relative_path
|
184
|
-
phase.shell_script = %("#{script_path}"\n)
|
198
|
+
add_embed_frameworks_script_phase_to_target(native_target)
|
185
199
|
end
|
186
200
|
end
|
187
201
|
|
202
|
+
def add_embed_frameworks_script_phase_to_target(native_target)
|
203
|
+
phase = create_or_update_build_phase(native_target, EMBED_FRAMEWORK_PHASE_NAME)
|
204
|
+
script_path = target.embed_frameworks_script_relative_path
|
205
|
+
phase.shell_script = %("#{script_path}"\n)
|
206
|
+
end
|
207
|
+
|
188
208
|
# Delete a 'Embed Pods Frameworks' Copy Files Build Phase if present
|
189
209
|
#
|
190
210
|
# @param [PBXNativeTarget] native_target
|
data/lib/cocoapods/resolver.rb
CHANGED
@@ -422,12 +422,9 @@ module Pod
|
|
422
422
|
#
|
423
423
|
# @return [Bool]
|
424
424
|
def spec_is_platform_compatible?(dependency_graph, dependency, spec)
|
425
|
-
all_predecessors = ->(vertex) do
|
426
|
-
pred = vertex.predecessors
|
427
|
-
pred + pred.map(&all_predecessors).reduce(Set.new, &:|) << vertex
|
428
|
-
end
|
429
425
|
vertex = dependency_graph.vertex_named(dependency.name)
|
430
|
-
predecessors =
|
426
|
+
predecessors = vertex.recursive_predecessors.select(&:root)
|
427
|
+
predecessors << vertex if vertex.root?
|
431
428
|
platforms_to_satisfy = predecessors.flat_map(&:explicit_requirements).flat_map { |r| @platforms_by_dependency[r] }
|
432
429
|
|
433
430
|
platforms_to_satisfy.all? do |platform_to_satisfy|
|
@@ -461,9 +458,7 @@ module Pod
|
|
461
458
|
def edge_is_valid_for_target?(edge, target)
|
462
459
|
dependencies_for_target_platform =
|
463
460
|
edge.origin.payload.all_dependencies(target.platform).map(&:name)
|
464
|
-
edge.
|
465
|
-
dependencies_for_target_platform.include?(dependency.name)
|
466
|
-
end
|
461
|
+
dependencies_for_target_platform.include?(edge.requirement.name)
|
467
462
|
end
|
468
463
|
end
|
469
464
|
end
|
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: 0.39.0.
|
4
|
+
version: 0.39.0.rc.1
|
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: 2015-10-
|
14
|
+
date: 2015-10-05 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: 0.39.0.
|
22
|
+
version: 0.39.0.rc.1
|
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: 0.39.0.
|
29
|
+
version: 0.39.0.rc.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -47,14 +47,14 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - ~>
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.28.
|
50
|
+
version: 0.28.1
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - ~>
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.28.
|
57
|
+
version: 0.28.1
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: cocoapods-downloader
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,14 +103,14 @@ dependencies:
|
|
103
103
|
requirements:
|
104
104
|
- - ~>
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: 0.6.
|
106
|
+
version: 0.6.2
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
111
|
- - ~>
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 0.6.
|
113
|
+
version: 0.6.2
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: cocoapods-try
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,14 +145,14 @@ dependencies:
|
|
145
145
|
requirements:
|
146
146
|
- - ~>
|
147
147
|
- !ruby/object:Gem::Version
|
148
|
-
version: 0.
|
148
|
+
version: 0.4.0
|
149
149
|
type: :runtime
|
150
150
|
prerelease: false
|
151
151
|
version_requirements: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
153
|
- - ~>
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version: 0.
|
155
|
+
version: 0.4.0
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
157
|
name: colored
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|