cocoapods 0.39.0.beta.5 → 0.39.0.rc.1
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 +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
|