cocoapods 1.3.0.beta.1 → 1.3.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 +34 -4
- data/lib/cocoapods/command/ipc.rb +1 -0
- data/lib/cocoapods/command/ipc/podfile_json.rb +30 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/embed_frameworks_script.rb +3 -3
- data/lib/cocoapods/installer/analyzer.rb +13 -5
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +14 -0
- data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +0 -32
- data/lib/cocoapods/installer/xcode/pods_project_generator/aggregate_target_installer.rb +2 -49
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +8 -5
- data/lib/cocoapods/installer/xcode/target_validator.rb +2 -2
- data/lib/cocoapods/target.rb +1 -1
- data/lib/cocoapods/target/aggregate_target.rb +71 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b333fa1137f2e1a7944d505a3980c5e70fbead9c
|
4
|
+
data.tar.gz: debc12d5f99d1c374220dfb216e144accac4242d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86fa795c0a553e257907a02a2b377ad19938f1eb279f75c57105bb7984d72ab823e97481f05c4cf44c0353c392be8ba383422872b254f57b63ae03f53058d537
|
7
|
+
data.tar.gz: d1d3136f5bec874fa203d453008a8b358e53caf14be96b93c7f66f7ff9cb4a0ed497ba1ccef4fc790870768251ed9cd2c880dc51b04e5e452b1761c5be805406
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,32 @@ 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.3.0.beta.2 (2017-06-22)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Add inputs and outputs for resources script phase
|
12
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
13
|
+
[#6806](https://github.com/CocoaPods/CocoaPods/pull/6806)
|
14
|
+
|
15
|
+
* Simplify logic around framework input and output paths
|
16
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
17
|
+
[#6803](https://github.com/CocoaPods/CocoaPods/pull/6803)
|
18
|
+
|
19
|
+
* Add inputs and outputs to check manifest lock and embed framework script phases
|
20
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
21
|
+
[#6797](https://github.com/CocoaPods/CocoaPods/issues/6797)
|
22
|
+
|
23
|
+
##### Bug Fixes
|
24
|
+
|
25
|
+
* Remove 0.34 migration for a small boost in `pod install` time
|
26
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
27
|
+
[#6783](hhttps://github.com/CocoaPods/CocoaPods/pull/6783)
|
28
|
+
|
29
|
+
* Use a cache when figuring out if a pod target is test only
|
30
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
31
|
+
[#6787](https://github.com/CocoaPods/CocoaPods/pull/6787)
|
32
|
+
|
7
33
|
## 1.3.0.beta.1 (2017-06-06)
|
8
34
|
|
9
35
|
##### Enhancements
|
@@ -32,16 +58,20 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
|
|
32
58
|
[Austin Emmons](https://github.com/atreat)
|
33
59
|
[#6742](https://github.com/CocoaPods/CocoaPods/issues/6742)
|
34
60
|
|
35
|
-
|
61
|
+
* Add a ipc command `podfile_json` converts a Podfile to JSON
|
62
|
+
[Dacaiguoguo](https://github.com/dacaiguoguogmail)
|
63
|
+
[#6779](https://github.com/CocoaPods/CocoaPods/pull/6779)
|
36
64
|
|
37
|
-
|
38
|
-
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
39
|
-
[#6767](https://github.com/CocoaPods/CocoaPods/pull/6767)
|
65
|
+
##### Bug Fixes
|
40
66
|
|
41
67
|
* Link `swiftSwiftOnoneSupport` for test xcconfigs
|
42
68
|
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
43
69
|
[#6769](https://github.com/CocoaPods/CocoaPods/pull/6769)
|
44
70
|
|
71
|
+
* Do not double add search paths to test xcconfig from parent
|
72
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
73
|
+
[#6768](https://github.com/CocoaPods/CocoaPods/pull/6768)
|
74
|
+
|
45
75
|
* Ensure product name for tests is not overridden by custom build settings
|
46
76
|
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
47
77
|
[#6766](https://github.com/CocoaPods/CocoaPods/pull/6766)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Pod
|
2
|
+
class Command
|
3
|
+
class IPC < Command
|
4
|
+
class PodfileJSON < IPC
|
5
|
+
include ProjectDirectory
|
6
|
+
|
7
|
+
self.summary = 'Converts a Podfile to JSON'
|
8
|
+
self.description = 'Converts a Podfile to JSON and prints it to STDOUT.'
|
9
|
+
self.arguments = [
|
10
|
+
CLAide::Argument.new('PATH', true),
|
11
|
+
]
|
12
|
+
|
13
|
+
def initialize(argv)
|
14
|
+
@path = argv.shift_argument
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def validate!
|
19
|
+
super
|
20
|
+
help! 'A Podfile path is required.' unless @path
|
21
|
+
end
|
22
|
+
|
23
|
+
def run
|
24
|
+
podfile = Pod::Podfile.from_file(@path)
|
25
|
+
output_pipe.puts podfile.to_hash.to_json
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -122,7 +122,7 @@ module Pod
|
|
122
122
|
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
123
123
|
stripped=""
|
124
124
|
for arch in $archs; do
|
125
|
-
if ! [[ "${
|
125
|
+
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
|
126
126
|
# Strip non-valid architectures in-place
|
127
127
|
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
128
128
|
stripped="$stripped $arch"
|
@@ -139,10 +139,10 @@ module Pod
|
|
139
139
|
unless frameworks_with_dsyms.empty?
|
140
140
|
script << %(if [[ "$CONFIGURATION" == "#{config}" ]]; then\n)
|
141
141
|
frameworks_with_dsyms.each do |framework_with_dsym|
|
142
|
-
script << %( install_framework "#{framework_with_dsym[:
|
142
|
+
script << %( install_framework "#{framework_with_dsym[:input_path]}"\n)
|
143
143
|
# Vendored frameworks might have a dSYM file next to them so ensure its copied. Frameworks built from
|
144
144
|
# sources will have their dSYM generated and copied by Xcode.
|
145
|
-
script << %( install_dsym "#{framework_with_dsym[:
|
145
|
+
script << %( install_dsym "#{framework_with_dsym[:dsym_input_path]}"\n) unless framework_with_dsym[:dsym_input_path].nil?
|
146
146
|
end
|
147
147
|
script << "fi\n"
|
148
148
|
end
|
@@ -46,6 +46,8 @@ module Pod
|
|
46
46
|
@update = false
|
47
47
|
@allow_pre_downloads = true
|
48
48
|
@has_dependencies = true
|
49
|
+
@test_pod_target_analyzer_cache = {}
|
50
|
+
@test_pod_target_key = Struct.new(:name, :pod_targets)
|
49
51
|
end
|
50
52
|
|
51
53
|
# Performs the analysis.
|
@@ -430,8 +432,9 @@ module Pod
|
|
430
432
|
target.pod_targets = pod_targets.select do |pod_target|
|
431
433
|
target_definition_included = pod_target.target_definitions.include?(target_definition)
|
432
434
|
explicitly_defined_in_target_definition = target_definition.non_inherited_dependencies.map(&:name).include?(pod_target.name)
|
433
|
-
|
434
|
-
|
435
|
+
next false unless target_definition_included
|
436
|
+
next true if explicitly_defined_in_target_definition
|
437
|
+
!pod_target_test_only?(pod_target, pod_targets)
|
435
438
|
end
|
436
439
|
|
437
440
|
target
|
@@ -449,9 +452,14 @@ module Pod
|
|
449
452
|
# @return [Boolean] if the pod target is only referenced from test dependencies.
|
450
453
|
#
|
451
454
|
def pod_target_test_only?(pod_target, pod_targets)
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
+
name = pod_target.name
|
456
|
+
key = @test_pod_target_key.new(name, pod_targets)
|
457
|
+
if @test_pod_target_analyzer_cache.key?(key)
|
458
|
+
return @test_pod_target_analyzer_cache[key]
|
459
|
+
end
|
460
|
+
source = pod_targets.any? { |pt| pt.dependent_targets.map(&:name).include?(name) }
|
461
|
+
test = pod_targets.any? { |pt| pt.test_dependent_targets.map(&:name).include?(name) }
|
462
|
+
@test_pod_target_analyzer_cache[key] = !source && test
|
455
463
|
end
|
456
464
|
|
457
465
|
# Setup the pod targets for an aggregate target. Deduplicates resulting
|
@@ -135,6 +135,11 @@ module Pod
|
|
135
135
|
phase = create_or_update_build_phase(native_target, EMBED_FRAMEWORK_PHASE_NAME)
|
136
136
|
script_path = target.embed_frameworks_script_relative_path
|
137
137
|
phase.shell_script = %("#{script_path}"\n)
|
138
|
+
framework_paths_by_config = target.framework_paths_by_config.values.flatten.uniq
|
139
|
+
unless framework_paths_by_config.all?(&:empty?)
|
140
|
+
phase.input_paths = [target.embed_frameworks_script_relative_path, *framework_paths_by_config.map { |fw| [fw[:input_path], fw[:dsym_input_path]] }.flatten.compact]
|
141
|
+
phase.output_paths = framework_paths_by_config.map { |fw| [fw[:output_path], fw[:dsym_output_path]] }.flatten.compact
|
142
|
+
end
|
138
143
|
end
|
139
144
|
|
140
145
|
# Delete a 'Embed Pods Frameworks' Copy Files Build Phase if present
|
@@ -159,6 +164,11 @@ module Pod
|
|
159
164
|
phase = create_or_update_build_phase(native_target, phase_name)
|
160
165
|
script_path = target.copy_resources_script_relative_path
|
161
166
|
phase.shell_script = %("#{script_path}"\n)
|
167
|
+
resource_paths_by_config = target.resource_paths_by_config
|
168
|
+
unless resource_paths_by_config.values.all?(&:empty?)
|
169
|
+
phase.input_paths = [target.copy_resources_script_relative_path, *resource_paths_by_config.values.flatten.uniq]
|
170
|
+
phase.output_paths = ['${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}']
|
171
|
+
end
|
162
172
|
end
|
163
173
|
end
|
164
174
|
|
@@ -183,7 +193,11 @@ module Pod
|
|
183
193
|
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
|
184
194
|
exit 1
|
185
195
|
fi
|
196
|
+
# This output is used by Xcode 'outputs' to avoid re-running this script phase.
|
197
|
+
echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"
|
186
198
|
SH
|
199
|
+
phase.input_paths = %w(${PODS_PODFILE_DIR_PATH}/Podfile.lock ${PODS_ROOT}/Manifest.lock)
|
200
|
+
phase.output_paths = [target.check_manifest_lock_script_output_file_path]
|
187
201
|
end
|
188
202
|
end
|
189
203
|
|
data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
CHANGED
@@ -18,7 +18,6 @@ module Pod
|
|
18
18
|
def self.integrate(pod_bundle, targets)
|
19
19
|
targets.each do |target|
|
20
20
|
target.build_configurations.each do |config|
|
21
|
-
update_to_cocoapods_0_34(pod_bundle, targets)
|
22
21
|
set_target_xcconfig(pod_bundle, target, config)
|
23
22
|
end
|
24
23
|
end
|
@@ -29,37 +28,6 @@ module Pod
|
|
29
28
|
# @!group Integration steps
|
30
29
|
#-------------------------------------------------------------------#
|
31
30
|
|
32
|
-
# Removes the xcconfig used up to CocoaPods 0.33 from the project and
|
33
|
-
# deletes the file if it exists.
|
34
|
-
#
|
35
|
-
# @param [Target::AggregateTarget] pod_bundle
|
36
|
-
# The Pods bundle.
|
37
|
-
#
|
38
|
-
# @param [Array<XcodeProj::PBXNativeTarget>] targets
|
39
|
-
# The native targets.
|
40
|
-
#
|
41
|
-
# @todo This can be removed for CocoaPods 1.0
|
42
|
-
#
|
43
|
-
def self.update_to_cocoapods_0_34(pod_bundle, targets)
|
44
|
-
sandbox = pod_bundle.sandbox
|
45
|
-
targets.map(&:project).uniq.each do |project|
|
46
|
-
file_refs = project.files.select do |file_ref|
|
47
|
-
path = file_ref.path.to_s
|
48
|
-
if File.extname(path) == '.xcconfig'
|
49
|
-
absolute_path = file_ref.real_path.to_s
|
50
|
-
absolute_path.start_with?(sandbox.root.to_s) &&
|
51
|
-
!absolute_path.start_with?(sandbox.target_support_files_root.to_s)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
file_refs.uniq.each do |file_ref|
|
56
|
-
UI.message "- Removing (#{file_ref.path})" do
|
57
|
-
file_ref.remove_from_project
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
31
|
# Creates a file reference to the xcconfig generated by
|
64
32
|
# CocoaPods (if needed) and sets it as the base configuration of
|
65
33
|
# build configuration of the user target.
|
@@ -106,29 +106,6 @@ module Pod
|
|
106
106
|
generator = Generator::BridgeSupport.new(headers)
|
107
107
|
generator.save_as(path)
|
108
108
|
add_file_to_support_group(path)
|
109
|
-
@bridge_support_file = path.relative_path_from(sandbox.root)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
# Uniqued Resources grouped by config
|
114
|
-
#
|
115
|
-
# @return [Hash{ Symbol => Array<Pathname> }]
|
116
|
-
#
|
117
|
-
def resources_by_config
|
118
|
-
library_targets = target.pod_targets.reject do |pod_target|
|
119
|
-
pod_target.should_build? && pod_target.requires_frameworks?
|
120
|
-
end
|
121
|
-
target.user_build_configurations.keys.each_with_object({}) do |config, resources_by_config|
|
122
|
-
resources_by_config[config] = library_targets.flat_map do |library_target|
|
123
|
-
next [] unless library_target.include_in_build_config?(target_definition, config)
|
124
|
-
resource_paths = library_target.file_accessors.flat_map do |accessor|
|
125
|
-
accessor.resources.flat_map { |res| res.relative_path_from(project.path.dirname) }
|
126
|
-
end
|
127
|
-
resource_bundles = library_target.file_accessors.flat_map do |accessor|
|
128
|
-
accessor.resource_bundles.keys.map { |name| "#{library_target.configuration_build_dir}/#{name.shellescape}.bundle" }
|
129
|
-
end
|
130
|
-
(resource_paths + resource_bundles + [bridge_support_file].compact).uniq
|
131
|
-
end
|
132
109
|
end
|
133
110
|
end
|
134
111
|
|
@@ -142,7 +119,7 @@ module Pod
|
|
142
119
|
#
|
143
120
|
def create_copy_resources_script
|
144
121
|
path = target.copy_resources_script_path
|
145
|
-
generator = Generator::CopyResourcesScript.new(
|
122
|
+
generator = Generator::CopyResourcesScript.new(target.resource_paths_by_config, target.platform)
|
146
123
|
generator.save_as(path)
|
147
124
|
add_file_to_support_group(path)
|
148
125
|
end
|
@@ -158,24 +135,7 @@ module Pod
|
|
158
135
|
#
|
159
136
|
def create_embed_frameworks_script
|
160
137
|
path = target.embed_frameworks_script_path
|
161
|
-
|
162
|
-
target.user_build_configurations.keys.each do |config|
|
163
|
-
relevant_pod_targets = target.pod_targets.select do |pod_target|
|
164
|
-
pod_target.include_in_build_config?(target_definition, config)
|
165
|
-
end
|
166
|
-
frameworks_and_dsyms_by_config[config] = relevant_pod_targets.flat_map do |pod_target|
|
167
|
-
frameworks = pod_target.file_accessors.flat_map(&:vendored_dynamic_artifacts).map do |fw|
|
168
|
-
path_to_framework = "${PODS_ROOT}/#{fw.relative_path_from(sandbox.root)}"
|
169
|
-
# Until this can be configured, assume the dSYM file uses the file name as the framework.
|
170
|
-
# See https://github.com/CocoaPods/CocoaPods/issues/1698
|
171
|
-
{ :framework => path_to_framework, :dSYM => "#{path_to_framework}.dSYM" }
|
172
|
-
end
|
173
|
-
# For non vendored frameworks Xcode will generate the dSYM and copy it instead.
|
174
|
-
frameworks << { :framework => pod_target.build_product_path('$BUILT_PRODUCTS_DIR'), :dSYM => nil } if pod_target.should_build? && pod_target.requires_frameworks?
|
175
|
-
frameworks
|
176
|
-
end
|
177
|
-
end
|
178
|
-
generator = Generator::EmbedFrameworksScript.new(frameworks_and_dsyms_by_config)
|
138
|
+
generator = Generator::EmbedFrameworksScript.new(target.framework_paths_by_config)
|
179
139
|
generator.save_as(path)
|
180
140
|
add_file_to_support_group(path)
|
181
141
|
end
|
@@ -195,13 +155,6 @@ module Pod
|
|
195
155
|
end
|
196
156
|
end
|
197
157
|
|
198
|
-
# @return [Pathname] the path of the bridge support file relative to the
|
199
|
-
# sandbox.
|
200
|
-
#
|
201
|
-
# @return [Nil] if no bridge support file was generated.
|
202
|
-
#
|
203
|
-
attr_reader :bridge_support_file
|
204
|
-
|
205
158
|
#-----------------------------------------------------------------------#
|
206
159
|
end
|
207
160
|
end
|
@@ -7,17 +7,20 @@ module Pod
|
|
7
7
|
# by the target.
|
8
8
|
#
|
9
9
|
class TargetInstaller
|
10
|
-
# @return [Sandbox] sandbox
|
11
|
-
# be generated.
|
10
|
+
# @return [Sandbox] sandbox
|
11
|
+
# The sandbox where the support files should be generated.
|
12
12
|
#
|
13
13
|
attr_reader :sandbox
|
14
14
|
|
15
|
-
# @return [Target]
|
15
|
+
# @return [Target] target
|
16
|
+
# The library whose target needs to be generated.
|
16
17
|
#
|
17
18
|
attr_reader :target
|
18
19
|
|
19
|
-
#
|
20
|
-
#
|
20
|
+
# Initialize a new instance
|
21
|
+
#
|
22
|
+
# @param [Sandbox] sandbox @see sandbox
|
23
|
+
# @param [Target] target @see target
|
21
24
|
#
|
22
25
|
def initialize(sandbox, target)
|
23
26
|
@sandbox = sandbox
|
@@ -74,9 +74,9 @@ module Pod
|
|
74
74
|
pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
|
75
75
|
|
76
76
|
dependencies = pod_targets.select(&:should_build?).flat_map(&:dependencies)
|
77
|
-
|
77
|
+
depended_upon_targets = pod_targets.select { |t| dependencies.include?(t.pod_name) && !t.should_build? }
|
78
78
|
|
79
|
-
static_libs =
|
79
|
+
static_libs = depended_upon_targets.flat_map(&:file_accessors).flat_map(&:vendored_static_artifacts)
|
80
80
|
unless static_libs.empty?
|
81
81
|
raise Informative, "The '#{aggregate_target.label}' target has " \
|
82
82
|
"transitive dependencies that include static binaries: (#{static_libs.to_sentence})"
|
data/lib/cocoapods/target.rb
CHANGED
@@ -2,7 +2,7 @@ module Pod
|
|
2
2
|
# Model class which describes a Pods target.
|
3
3
|
#
|
4
4
|
# The Target class stores and provides the information necessary for
|
5
|
-
# working with a target in the Podfile and
|
5
|
+
# working with a target in the Podfile and its dependent libraries.
|
6
6
|
# This class is used to represent both the targets and their libraries.
|
7
7
|
#
|
8
8
|
class Target
|
@@ -184,6 +184,71 @@ module Pod
|
|
184
184
|
pod_targets.any?(&:uses_swift?)
|
185
185
|
end
|
186
186
|
|
187
|
+
# @return [Hash{String => Array<Hash{Symbol => [String]}>] The vendored dynamic artifacts and framework target
|
188
|
+
# input and output paths grouped by config
|
189
|
+
#
|
190
|
+
def framework_paths_by_config
|
191
|
+
framework_paths_by_config = {}
|
192
|
+
user_build_configurations.keys.each do |config|
|
193
|
+
relevant_pod_targets = pod_targets.select do |pod_target|
|
194
|
+
pod_target.include_in_build_config?(target_definition, config)
|
195
|
+
end
|
196
|
+
framework_paths_by_config[config] = relevant_pod_targets.flat_map do |pod_target|
|
197
|
+
frameworks = []
|
198
|
+
pod_target.file_accessors.flat_map(&:vendored_dynamic_artifacts).map do |framework_path|
|
199
|
+
relative_path_to_sandbox = framework_path.relative_path_from(sandbox.root)
|
200
|
+
framework = { :name => framework_path.basename.to_s,
|
201
|
+
:input_path => "${PODS_ROOT}/#{relative_path_to_sandbox}",
|
202
|
+
:output_path => "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/#{framework_path.basename}" }
|
203
|
+
# Until this can be configured, assume the dSYM file uses the file name as the framework.
|
204
|
+
# See https://github.com/CocoaPods/CocoaPods/issues/1698
|
205
|
+
dsym_name = "#{framework_path.basename}.dSYM"
|
206
|
+
dsym_path = Pathname.new("#{framework_path.dirname}/#{dsym_name}")
|
207
|
+
if dsym_path.exist?
|
208
|
+
framework[:dsym_name] = dsym_name
|
209
|
+
framework[:dsym_input_path] = "${PODS_ROOT}/#{relative_path_to_sandbox}.dSYM"
|
210
|
+
framework[:dsym_output_path] = "${DWARF_DSYM_FOLDER_PATH}/#{dsym_name}"
|
211
|
+
end
|
212
|
+
frameworks << framework
|
213
|
+
end
|
214
|
+
if pod_target.should_build? && pod_target.requires_frameworks?
|
215
|
+
frameworks << { :name => pod_target.product_name,
|
216
|
+
:input_path => pod_target.build_product_path('${BUILT_PRODUCTS_DIR}'),
|
217
|
+
:output_path => "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/#{pod_target.product_name}" }
|
218
|
+
end
|
219
|
+
frameworks
|
220
|
+
end
|
221
|
+
end
|
222
|
+
framework_paths_by_config
|
223
|
+
end
|
224
|
+
|
225
|
+
# @return [Hash{ String => Array<String> }] Uniqued Resources grouped by config
|
226
|
+
#
|
227
|
+
def resource_paths_by_config
|
228
|
+
library_targets = pod_targets.reject do |pod_target|
|
229
|
+
pod_target.should_build? && pod_target.requires_frameworks?
|
230
|
+
end
|
231
|
+
user_build_configurations.keys.each_with_object({}) do |config, resources_by_config|
|
232
|
+
resources_by_config[config] = library_targets.flat_map do |library_target|
|
233
|
+
next [] unless library_target.include_in_build_config?(target_definition, config)
|
234
|
+
resource_paths = library_target.file_accessors.flat_map do |accessor|
|
235
|
+
accessor.resources.flat_map { |res| "${PODS_ROOT}/#{res.relative_path_from(sandbox.project.path.dirname)}" }
|
236
|
+
end
|
237
|
+
resource_bundles = library_target.file_accessors.flat_map do |accessor|
|
238
|
+
accessor.resource_bundles.keys.map { |name| "#{library_target.configuration_build_dir}/#{name.shellescape}.bundle" }
|
239
|
+
end
|
240
|
+
(resource_paths + resource_bundles + [bridge_support_file].compact).uniq
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
# @return [Pathname] the path of the bridge support file relative to the
|
246
|
+
# sandbox or `nil` if bridge support is disabled.
|
247
|
+
#
|
248
|
+
def bridge_support_file
|
249
|
+
bridge_support_path.relative_path_from(sandbox.root) if podfile.generate_bridge_support?
|
250
|
+
end
|
251
|
+
|
187
252
|
#-------------------------------------------------------------------------#
|
188
253
|
|
189
254
|
# @!group Support files
|
@@ -209,6 +274,12 @@ module Pod
|
|
209
274
|
support_files_dir + "#{label}-frameworks.sh"
|
210
275
|
end
|
211
276
|
|
277
|
+
# @return [String] The output file path fo the check manifest lock script.
|
278
|
+
#
|
279
|
+
def check_manifest_lock_script_output_file_path
|
280
|
+
"$(DERIVED_FILE_DIR)/#{label}-checkManifestLockResult.txt"
|
281
|
+
end
|
282
|
+
|
212
283
|
# @return [String] The xcconfig path of the root from the `$(SRCROOT)`
|
213
284
|
# variable of the user's project.
|
214
285
|
#
|
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.3.0.beta.
|
4
|
+
version: 1.3.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: 2017-06-
|
14
|
+
date: 2017-06-22 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.3.0.beta.
|
22
|
+
version: 1.3.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.3.0.beta.
|
29
|
+
version: 1.3.0.beta.2
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -400,6 +400,7 @@ files:
|
|
400
400
|
- lib/cocoapods/command/ipc.rb
|
401
401
|
- lib/cocoapods/command/ipc/list.rb
|
402
402
|
- lib/cocoapods/command/ipc/podfile.rb
|
403
|
+
- lib/cocoapods/command/ipc/podfile_json.rb
|
403
404
|
- lib/cocoapods/command/ipc/repl.rb
|
404
405
|
- lib/cocoapods/command/ipc/spec.rb
|
405
406
|
- lib/cocoapods/command/ipc/update_search_index.rb
|