cocoapods 1.3.1 → 1.4.0.beta.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 +95 -1
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +6 -3
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +3 -3
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +79 -23
- data/lib/cocoapods/installer.rb +6 -5
- data/lib/cocoapods/installer/analyzer.rb +78 -74
- data/lib/cocoapods/installer/analyzer/pod_variant.rb +13 -4
- data/lib/cocoapods/installer/analyzer/target_inspector.rb +2 -2
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +53 -8
- data/lib/cocoapods/installer/xcode/pods_project_generator.rb +20 -2
- data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +5 -3
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +24 -2
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +6 -1
- data/lib/cocoapods/installer/xcode/target_validator.rb +1 -1
- data/lib/cocoapods/resolver.rb +124 -75
- data/lib/cocoapods/target.rb +7 -1
- data/lib/cocoapods/target/aggregate_target.rb +2 -2
- data/lib/cocoapods/target/pod_target.rb +56 -34
- data/lib/cocoapods/validator.rb +11 -2
- metadata +8 -8
data/lib/cocoapods/target.rb
CHANGED
@@ -72,7 +72,7 @@ module Pod
|
|
72
72
|
# #requires_frameworks?.
|
73
73
|
#
|
74
74
|
def product_type
|
75
|
-
requires_frameworks? ? :framework : :static_library
|
75
|
+
requires_frameworks? && !static_framework? ? :framework : :static_library
|
76
76
|
end
|
77
77
|
|
78
78
|
# @return [String] A string suitable for debugging.
|
@@ -90,6 +90,12 @@ module Pod
|
|
90
90
|
host_requires_frameworks? || false
|
91
91
|
end
|
92
92
|
|
93
|
+
# @return [Boolean] Whether the target should build a static framework.
|
94
|
+
#
|
95
|
+
def static_framework?
|
96
|
+
!is_a?(Pod::AggregateTarget) && specs.any? && specs.all?(&:static_framework)
|
97
|
+
end
|
98
|
+
|
93
99
|
#-------------------------------------------------------------------------#
|
94
100
|
|
95
101
|
# @!group Information storage
|
@@ -194,7 +194,7 @@ module Pod
|
|
194
194
|
relevant_pod_targets = pod_targets.select do |pod_target|
|
195
195
|
pod_target.include_in_build_config?(target_definition, config)
|
196
196
|
end
|
197
|
-
framework_paths_by_config[config] = relevant_pod_targets.flat_map(
|
197
|
+
framework_paths_by_config[config] = relevant_pod_targets.flat_map { |pt| pt.framework_paths(false) }
|
198
198
|
end
|
199
199
|
framework_paths_by_config
|
200
200
|
end
|
@@ -210,7 +210,7 @@ module Pod
|
|
210
210
|
user_build_configurations.keys.each_with_object({}) do |config, resources_by_config|
|
211
211
|
resources_by_config[config] = relevant_pod_targets.flat_map do |pod_target|
|
212
212
|
next [] unless pod_target.include_in_build_config?(target_definition, config)
|
213
|
-
(pod_target.resource_paths + [bridge_support_file].compact).uniq
|
213
|
+
(pod_target.resource_paths(false) + [bridge_support_file].compact).uniq
|
214
214
|
end
|
215
215
|
end
|
216
216
|
end
|
@@ -197,51 +197,73 @@ module Pod
|
|
197
197
|
specs.select(&:test_specification?).map(&:test_type).uniq
|
198
198
|
end
|
199
199
|
|
200
|
+
# Returns the framework paths associated with this target. By default all paths include the framework paths
|
201
|
+
# that are part of test specifications.
|
202
|
+
#
|
203
|
+
# @param [Boolean] include_test_spec_paths
|
204
|
+
# Whether to include framework paths from test specifications or not.
|
205
|
+
#
|
200
206
|
# @return [Array<Hash{Symbol => [String]}>] The vendored and non vendored framework paths
|
201
207
|
# this target depends upon.
|
202
208
|
#
|
203
|
-
def framework_paths
|
204
|
-
@framework_paths ||=
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
209
|
+
def framework_paths(include_test_spec_paths = true)
|
210
|
+
@framework_paths ||= Hash.new do |h, key|
|
211
|
+
h[key] = begin
|
212
|
+
accessors = file_accessors
|
213
|
+
accessors = accessors.reject { |a| a.spec.test_specification? } unless include_test_spec_paths
|
214
|
+
frameworks = []
|
215
|
+
accessors.flat_map(&:vendored_dynamic_artifacts).map do |framework_path|
|
216
|
+
relative_path_to_sandbox = framework_path.relative_path_from(sandbox.root)
|
217
|
+
framework = { :name => framework_path.basename.to_s,
|
218
|
+
:input_path => "${PODS_ROOT}/#{relative_path_to_sandbox}",
|
219
|
+
:output_path => "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/#{framework_path.basename}" }
|
220
|
+
# Until this can be configured, assume the dSYM file uses the file name as the framework.
|
221
|
+
# See https://github.com/CocoaPods/CocoaPods/issues/1698
|
222
|
+
dsym_name = "#{framework_path.basename}.dSYM"
|
223
|
+
dsym_path = Pathname.new("#{framework_path.dirname}/#{dsym_name}")
|
224
|
+
if dsym_path.exist?
|
225
|
+
framework[:dsym_name] = dsym_name
|
226
|
+
framework[:dsym_input_path] = "${PODS_ROOT}/#{relative_path_to_sandbox}.dSYM"
|
227
|
+
framework[:dsym_output_path] = "${DWARF_DSYM_FOLDER_PATH}/#{dsym_name}"
|
228
|
+
end
|
229
|
+
frameworks << framework
|
219
230
|
end
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
231
|
+
if should_build? && requires_frameworks? && !static_framework?
|
232
|
+
frameworks << { :name => product_name,
|
233
|
+
:input_path => build_product_path('${BUILT_PRODUCTS_DIR}'),
|
234
|
+
:output_path => "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/#{product_name}" }
|
235
|
+
end
|
236
|
+
frameworks
|
226
237
|
end
|
227
|
-
frameworks
|
228
238
|
end
|
239
|
+
@framework_paths[include_test_spec_paths]
|
229
240
|
end
|
230
241
|
|
242
|
+
# Returns the resource paths associated with this target. By default all paths include the resource paths
|
243
|
+
# that are part of test specifications.
|
244
|
+
#
|
245
|
+
# @param [Boolean] include_test_spec_paths
|
246
|
+
# Whether to include resource paths from test specifications or not.
|
247
|
+
#
|
231
248
|
# @return [Array<String>] The resource and resource bundle paths this target depends upon.
|
232
249
|
#
|
233
|
-
def resource_paths
|
234
|
-
@resource_paths ||=
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
250
|
+
def resource_paths(include_test_spec_paths = true)
|
251
|
+
@resource_paths ||= Hash.new do |h, key|
|
252
|
+
h[key] = begin
|
253
|
+
accessors = file_accessors
|
254
|
+
accessors = accessors.reject { |a| a.spec.test_specification? } unless include_test_spec_paths
|
255
|
+
resource_paths = accessors.flat_map do |accessor|
|
256
|
+
accessor.resources.flat_map { |res| "${PODS_ROOT}/#{res.relative_path_from(sandbox.project.path.dirname)}" }
|
257
|
+
end
|
258
|
+
resource_bundles = accessors.flat_map do |accessor|
|
259
|
+
prefix = Generator::XCConfig::XCConfigHelper::CONFIGURATION_BUILD_DIR_VARIABLE
|
260
|
+
prefix = configuration_build_dir unless accessor.spec.test_specification?
|
261
|
+
accessor.resource_bundles.keys.map { |name| "#{prefix}/#{name.shellescape}.bundle" }
|
262
|
+
end
|
263
|
+
resource_paths + resource_bundles
|
242
264
|
end
|
243
|
-
resource_paths + resource_bundles
|
244
265
|
end
|
266
|
+
@resource_paths[include_test_spec_paths]
|
245
267
|
end
|
246
268
|
|
247
269
|
# Returns the corresponding native target to use based on the provided specification.
|
@@ -249,7 +271,7 @@ module Pod
|
|
249
271
|
# test native targets.
|
250
272
|
#
|
251
273
|
# @param [Specification] spec
|
252
|
-
# The
|
274
|
+
# The specification to base from in order to find the native target.
|
253
275
|
#
|
254
276
|
# @return [PBXNativeTarget] the native target to use or `nil` if none is found.
|
255
277
|
#
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -14,6 +14,10 @@ module Pod
|
|
14
14
|
class Validator
|
15
15
|
include Config::Mixin
|
16
16
|
|
17
|
+
# The default version of Swift to use when linting pods
|
18
|
+
#
|
19
|
+
DEFAULT_SWIFT_VERSION = '3.0'.freeze
|
20
|
+
|
17
21
|
# @return [Specification::Linter] the linter instance from CocoaPods
|
18
22
|
# Core.
|
19
23
|
#
|
@@ -252,7 +256,12 @@ module Pod
|
|
252
256
|
# @return [String] the SWIFT_VERSION to use for validation.
|
253
257
|
#
|
254
258
|
def swift_version
|
255
|
-
@swift_version
|
259
|
+
return @swift_version if defined?(@swift_version)
|
260
|
+
if version = dot_swift_version
|
261
|
+
@swift_version = version
|
262
|
+
else
|
263
|
+
DEFAULT_SWIFT_VERSION
|
264
|
+
end
|
256
265
|
end
|
257
266
|
|
258
267
|
# Set the SWIFT_VERSION that should be used to validate the pod.
|
@@ -386,7 +395,7 @@ module Pod
|
|
386
395
|
end
|
387
396
|
|
388
397
|
def validate_dot_swift_version
|
389
|
-
if !used_swift_version.nil? &&
|
398
|
+
if !used_swift_version.nil? && @swift_version.nil?
|
390
399
|
warning(:swift_version,
|
391
400
|
'The validator for Swift projects uses ' \
|
392
401
|
'Swift 3.0 by default, if you are using a different version of ' \
|
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
|
+
version: 1.4.0.beta.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: 2017-
|
14
|
+
date: 2017-09-24 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.
|
22
|
+
version: 1.4.0.beta.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: 1.
|
29
|
+
version: 1.4.0.beta.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,21 +193,21 @@ dependencies:
|
|
193
193
|
requirements:
|
194
194
|
- - "~>"
|
195
195
|
- !ruby/object:Gem::Version
|
196
|
-
version: 0.
|
196
|
+
version: 0.6.1
|
197
197
|
type: :runtime
|
198
198
|
prerelease: false
|
199
199
|
version_requirements: !ruby/object:Gem::Requirement
|
200
200
|
requirements:
|
201
201
|
- - "~>"
|
202
202
|
- !ruby/object:Gem::Version
|
203
|
-
version: 0.
|
203
|
+
version: 0.6.1
|
204
204
|
- !ruby/object:Gem::Dependency
|
205
205
|
name: xcodeproj
|
206
206
|
requirement: !ruby/object:Gem::Requirement
|
207
207
|
requirements:
|
208
208
|
- - ">="
|
209
209
|
- !ruby/object:Gem::Version
|
210
|
-
version: 1.5.
|
210
|
+
version: 1.5.2
|
211
211
|
- - "<"
|
212
212
|
- !ruby/object:Gem::Version
|
213
213
|
version: '2.0'
|
@@ -217,7 +217,7 @@ dependencies:
|
|
217
217
|
requirements:
|
218
218
|
- - ">="
|
219
219
|
- !ruby/object:Gem::Version
|
220
|
-
version: 1.5.
|
220
|
+
version: 1.5.2
|
221
221
|
- - "<"
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '2.0'
|