cocoapods 1.2.0 → 1.2.1.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 +61 -0
- data/lib/cocoapods/command.rb +2 -1
- data/lib/cocoapods/command/lib/lint.rb +4 -1
- data/lib/cocoapods/command/repo/push.rb +3 -0
- data/lib/cocoapods/command/spec/lint.rb +4 -1
- data/lib/cocoapods/downloader/cache.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/info_plist_file.rb +0 -1
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +5 -3
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +24 -8
- data/lib/cocoapods/installer.rb +2 -0
- data/lib/cocoapods/installer/analyzer/target_inspector.rb +6 -0
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +27 -20
- data/lib/cocoapods/sandbox/file_accessor.rb +6 -3
- data/lib/cocoapods/target/aggregate_target.rb +10 -0
- data/lib/cocoapods/user_interface.rb +1 -1
- data/lib/cocoapods/validator.rb +11 -2
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb9eda85e1b9046c779bb13ac2cd2b16d794ac5d
|
4
|
+
data.tar.gz: 4aa4fbfc96bd441f9dc9b89e3f86438842e66b89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cbe8cde671b565a37d727b7df2d58092d8d91769f5150e7f27653d837d5a3ae3392ac37d94ebfa671dfdf6f4d7f374a8c6e78a008148a99e30e3b4d40d77ad7
|
7
|
+
data.tar.gz: 57abe56a456b33abfe8a9eddb473c7d6d9490db167bdee833d391e0c0c5dd758444abcab93403e44d9c12e23fe3758f64099ed6f1a1ff866997c560448dd210f
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,67 @@ 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.2.1.beta.1 (2017-03-08)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Use red text when pod installation fails
|
12
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
13
|
+
[#6534](https://github.com/CocoaPods/CocoaPods/issues/6534)
|
14
|
+
|
15
|
+
* Use the colored2 gem instead of colored.
|
16
|
+
[Orta Therox](https://github.com/orta)
|
17
|
+
[xcodeproj#463](https://github.com/CocoaPods/Xcodeproj/pull/463)
|
18
|
+
|
19
|
+
* Cache results of dynamic_binary?
|
20
|
+
[Ken Wigginton](https://github.com/hailstorm350)
|
21
|
+
[#6434](https://github.com/CocoaPods/CocoaPods/pull/6434)
|
22
|
+
|
23
|
+
##### Bug Fixes
|
24
|
+
|
25
|
+
* Do not crash when attempting to install pod with no supported targets.
|
26
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
27
|
+
[#6465](https://github.com/CocoaPods/CocoaPods/issues/6465)
|
28
|
+
|
29
|
+
* Correctly handle `OTHER_LDFLAGS` for targets with inherit search paths and source pods.
|
30
|
+
[Justin Martin](https://github.com/justinseanmartin)
|
31
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
32
|
+
[#6481](https://github.com/CocoaPods/CocoaPods/pull/6481)
|
33
|
+
|
34
|
+
* Uses `${PODS_PODFILE_DIR_PATH}` for generated manifest lock script phase.
|
35
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
36
|
+
[#5499](https://github.com/CocoaPods/CocoaPods/issues/5499)
|
37
|
+
|
38
|
+
* Do not generate `UIRequiredDeviceCapabilities` for `tvOS` Info.plists.
|
39
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
40
|
+
[#6193](https://github.com/CocoaPods/CocoaPods/issues/6193)
|
41
|
+
|
42
|
+
* Fix integration with vendored static frameworks and libraries.
|
43
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
44
|
+
[#6477](https://github.com/CocoaPods/CocoaPods/pull/6477)
|
45
|
+
|
46
|
+
* Use `${SRCROOT}` rather than `${PODS_ROOT}` in the generated manifest lock script phase.
|
47
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
48
|
+
[#5499](https://github.com/CocoaPods/CocoaPods/issues/5499)
|
49
|
+
|
50
|
+
* Fix build phase resource references to point at PBXVariantGroups where relevant.
|
51
|
+
[Wes Campaigne](https://github.com/Westacular)
|
52
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
53
|
+
[#6373](https://github.com/CocoaPods/CocoaPods/issues/6373)
|
54
|
+
|
55
|
+
* Correctly set runtime search paths for OSX unit test bundles when using frameworks.
|
56
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
57
|
+
[#6435](https://github.com/CocoaPods/CocoaPods/pull/6435)
|
58
|
+
|
59
|
+
* Add `--skip-import-validation` to skip linking a pod during lint.
|
60
|
+
[Samuel Giddins](https://github.com/segiddins)
|
61
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
62
|
+
[#5670](https://github.com/CocoaPods/CocoaPods/issues/5670)
|
63
|
+
|
64
|
+
* Updated the colored2 gem (previous version removed from rubygems.org).
|
65
|
+
[Ben Asher](https://github.com/benasher44)
|
66
|
+
[#6533](https://github.com/CocoaPods/CocoaPods/pull/6533)
|
67
|
+
|
7
68
|
## 1.2.0 (2017-01-28)
|
8
69
|
|
9
70
|
##### Enhancements
|
data/lib/cocoapods/command.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'colored2'
|
2
2
|
require 'claide'
|
3
3
|
require 'molinillo/errors'
|
4
4
|
|
@@ -87,6 +87,7 @@ module Pod
|
|
87
87
|
config.silent = argv.flag?('silent', config.silent)
|
88
88
|
config.verbose = self.verbose? unless verbose.nil?
|
89
89
|
unless self.ansi_output?
|
90
|
+
Colored2.disable!
|
90
91
|
String.send(:define_method, :colorize) { |string, _| string }
|
91
92
|
end
|
92
93
|
end
|
@@ -23,6 +23,7 @@ module Pod
|
|
23
23
|
['--private', 'Lint skips checks that apply only to public specs'],
|
24
24
|
['--swift-version=VERSION', 'The SWIFT_VERSION that should be used to lint the spec. ' \
|
25
25
|
'This takes precedence over a .swift-version file.'],
|
26
|
+
['--skip-import-validation', 'Lint skips validating that the pod can be imported'],
|
26
27
|
].concat(super)
|
27
28
|
end
|
28
29
|
|
@@ -37,7 +38,8 @@ module Pod
|
|
37
38
|
@source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
|
38
39
|
@private = argv.flag?('private', false)
|
39
40
|
@swift_version = argv.option('swift-version', nil)
|
40
|
-
@
|
41
|
+
@skip_import_validation = argv.flag?('skip-import-validation', false)
|
42
|
+
@podspecs_paths = argv.arguments!
|
41
43
|
super
|
42
44
|
end
|
43
45
|
|
@@ -59,6 +61,7 @@ module Pod
|
|
59
61
|
validator.use_frameworks = @use_frameworks
|
60
62
|
validator.ignore_public_only_results = @private
|
61
63
|
validator.swift_version = @swift_version
|
64
|
+
validator.skip_import_validation = @skip_import_validation
|
62
65
|
validator.validate
|
63
66
|
|
64
67
|
unless @clean
|
@@ -29,6 +29,7 @@ module Pod
|
|
29
29
|
'Multiple sources must be comma-delimited.'],
|
30
30
|
['--local-only', 'Does not perform the step of pushing REPO to its remote'],
|
31
31
|
['--no-private', 'Lint includes checks that apply only to public repos'],
|
32
|
+
['--skip-import-validation', 'Lint skips validating that the pod can be imported'],
|
32
33
|
['--commit-message="Fix bug in pod"', 'Add custom commit message. ' \
|
33
34
|
'Opens default editor if no commit message is specified.'],
|
34
35
|
['--use-json', 'Push JSON spec to repo'],
|
@@ -50,6 +51,7 @@ module Pod
|
|
50
51
|
@commit_message = argv.flag?('commit-message', false)
|
51
52
|
@use_json = argv.flag?('use-json')
|
52
53
|
@swift_version = argv.option('swift-version', nil)
|
54
|
+
@skip_import_validation = argv.flag?('skip-import-validation', false)
|
53
55
|
super
|
54
56
|
end
|
55
57
|
|
@@ -127,6 +129,7 @@ module Pod
|
|
127
129
|
validator.use_frameworks = @use_frameworks
|
128
130
|
validator.ignore_public_only_results = @private
|
129
131
|
validator.swift_version = @swift_version
|
132
|
+
validator.skip_import_validation = @skip_import_validation
|
130
133
|
begin
|
131
134
|
validator.validate
|
132
135
|
rescue => e
|
@@ -29,6 +29,7 @@ module Pod
|
|
29
29
|
['--private', 'Lint skips checks that apply only to public specs'],
|
30
30
|
['--swift-version=VERSION', 'The SWIFT_VERSION that should be used to lint the spec. ' \
|
31
31
|
'This takes precedence over a .swift-version file.'],
|
32
|
+
['--skip-import-validation', 'Lint skips validating that the pod can be imported'],
|
32
33
|
].concat(super)
|
33
34
|
end
|
34
35
|
|
@@ -43,7 +44,8 @@ module Pod
|
|
43
44
|
@source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
|
44
45
|
@private = argv.flag?('private', false)
|
45
46
|
@swift_version = argv.option('swift-version', nil)
|
46
|
-
@
|
47
|
+
@skip_import_validation = argv.flag?('skip-import-validation', false)
|
48
|
+
@podspecs_paths = argv.arguments!
|
47
49
|
super
|
48
50
|
end
|
49
51
|
|
@@ -61,6 +63,7 @@ module Pod
|
|
61
63
|
validator.use_frameworks = @use_frameworks
|
62
64
|
validator.ignore_public_only_results = @private
|
63
65
|
validator.swift_version = @swift_version
|
66
|
+
validator.skip_import_validation = @skip_import_validation
|
64
67
|
validator.validate
|
65
68
|
failure_reasons << validator.failure_reason
|
66
69
|
|
@@ -117,7 +117,6 @@ module Pod
|
|
117
117
|
|
118
118
|
info['CFBundleExecutable'] = '${EXECUTABLE_NAME}' if bundle_package_type != :bndl
|
119
119
|
info['CFBundleVersion'] = '1' if bundle_package_type == :bndl
|
120
|
-
info['UIRequiredDeviceCapabilities'] = %w(arm64) if target.platform.name == :tvos
|
121
120
|
|
122
121
|
info
|
123
122
|
end
|
@@ -56,6 +56,7 @@ module Pod
|
|
56
56
|
includes_static_libs ||= pod_targets.flat_map(&:file_accessors).any? { |fa| !fa.vendored_static_artifacts.empty? }
|
57
57
|
config = {
|
58
58
|
'OTHER_LDFLAGS' => '$(inherited) ' + XCConfigHelper.default_ld_flags(target, includes_static_libs),
|
59
|
+
'PODS_PODFILE_DIR_PATH' => target.podfile_dir_relative_path,
|
59
60
|
'PODS_ROOT' => target.relative_pods_root,
|
60
61
|
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
|
61
62
|
'FRAMEWORK_SEARCH_PATHS' => '$(inherited) ',
|
@@ -198,11 +199,11 @@ module Pod
|
|
198
199
|
if pod_target.requires_frameworks?
|
199
200
|
%(-framework "#{pod_target.product_basename}")
|
200
201
|
else
|
201
|
-
%(-l "#{pod_target.product_basename}")
|
202
|
+
%(-l "#{pod_target.product_basename}") if XCConfigHelper.links_dependency?(target, pod_target)
|
202
203
|
end
|
203
204
|
end
|
204
205
|
|
205
|
-
@xcconfig.merge!('OTHER_LDFLAGS' => other_ld_flags.join(' '))
|
206
|
+
@xcconfig.merge!('OTHER_LDFLAGS' => other_ld_flags.compact.join(' '))
|
206
207
|
end
|
207
208
|
|
208
209
|
# Ensure to add the default linker run path search paths as they could
|
@@ -217,8 +218,9 @@ module Pod
|
|
217
218
|
ld_runpath_search_paths = ['$(inherited)']
|
218
219
|
if target.platform.symbolic_name == :osx
|
219
220
|
ld_runpath_search_paths << "'@executable_path/../Frameworks'"
|
221
|
+
symbol_type = target.user_targets.map(&:symbol_type).uniq.first
|
220
222
|
ld_runpath_search_paths << \
|
221
|
-
if
|
223
|
+
if symbol_type == :unit_test_bundle
|
222
224
|
"'@loader_path/../Frameworks'"
|
223
225
|
else
|
224
226
|
"'@loader_path/Frameworks'"
|
@@ -103,15 +103,31 @@ module Pod
|
|
103
103
|
#
|
104
104
|
def self.add_static_dependency_build_settings(aggregate_target, pod_target, xcconfig, file_accessor)
|
105
105
|
file_accessor.vendored_static_frameworks.each do |vendored_static_framework|
|
106
|
-
|
107
|
-
|
108
|
-
end
|
106
|
+
adds_other_ldflags = XCConfigHelper.links_dependency?(aggregate_target, pod_target)
|
107
|
+
XCConfigHelper.add_framework_build_settings(vendored_static_framework, xcconfig, pod_target.sandbox.root, adds_other_ldflags)
|
109
108
|
end
|
110
109
|
file_accessor.vendored_static_libraries.each do |vendored_static_library|
|
111
|
-
XCConfigHelper.
|
110
|
+
adds_other_ldflags = XCConfigHelper.links_dependency?(aggregate_target, pod_target)
|
111
|
+
XCConfigHelper.add_library_build_settings(vendored_static_library, xcconfig, pod_target.sandbox.root, adds_other_ldflags)
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
+
# @param [AggregateTarget] aggregate_target
|
116
|
+
# The aggregate target, may be nil.
|
117
|
+
#
|
118
|
+
# @param [PodTarget] pod_target
|
119
|
+
# The pod target to link or not.
|
120
|
+
#
|
121
|
+
# @return [Boolean] Whether static dependency should be added to the 'OTHER_LDFLAGS'
|
122
|
+
# of the aggregate target. Aggregate targets that inherit search paths will only link
|
123
|
+
# if the target has explicitly declared the pod dependency.
|
124
|
+
#
|
125
|
+
def self.links_dependency?(aggregate_target, pod_target)
|
126
|
+
return true if aggregate_target.nil? || aggregate_target.target_definition.inheritance == 'complete'
|
127
|
+
targets = aggregate_target.pod_targets - aggregate_target.search_paths_aggregate_targets.flat_map(&:pod_targets)
|
128
|
+
targets.include?(pod_target)
|
129
|
+
end
|
130
|
+
|
115
131
|
# Adds build settings for dynamic vendored frameworks and libraries.
|
116
132
|
#
|
117
133
|
# @param [PodTarget] pod_target
|
@@ -165,13 +181,13 @@ module Pod
|
|
165
181
|
#
|
166
182
|
# @return [void]
|
167
183
|
#
|
168
|
-
def self.add_framework_build_settings(framework_path, xcconfig, sandbox_root)
|
184
|
+
def self.add_framework_build_settings(framework_path, xcconfig, sandbox_root, include_other_ldflags = true)
|
169
185
|
name = File.basename(framework_path, '.framework')
|
170
186
|
dirname = '${PODS_ROOT}/' + framework_path.dirname.relative_path_from(sandbox_root).to_s
|
171
187
|
build_settings = {
|
172
|
-
'OTHER_LDFLAGS' => "-framework #{name}",
|
173
188
|
'FRAMEWORK_SEARCH_PATHS' => quote([dirname]),
|
174
189
|
}
|
190
|
+
build_settings['OTHER_LDFLAGS'] = "-framework #{name}" if include_other_ldflags
|
175
191
|
xcconfig.merge!(build_settings)
|
176
192
|
end
|
177
193
|
|
@@ -189,14 +205,14 @@ module Pod
|
|
189
205
|
#
|
190
206
|
# @return [void]
|
191
207
|
#
|
192
|
-
def self.add_library_build_settings(library_path, xcconfig, sandbox_root)
|
208
|
+
def self.add_library_build_settings(library_path, xcconfig, sandbox_root, include_other_ldflags = true)
|
193
209
|
extension = File.extname(library_path)
|
194
210
|
name = File.basename(library_path, extension).sub(/\Alib/, '')
|
195
211
|
dirname = '${PODS_ROOT}/' + library_path.dirname.relative_path_from(sandbox_root).to_s
|
196
212
|
build_settings = {
|
197
|
-
'OTHER_LDFLAGS' => "-l#{name}",
|
198
213
|
'LIBRARY_SEARCH_PATHS' => '$(inherited) ' + quote([dirname]),
|
199
214
|
}
|
215
|
+
build_settings['OTHER_LDFLAGS'] = "-l#{name}" if include_other_ldflags
|
200
216
|
xcconfig.merge!(build_settings)
|
201
217
|
end
|
202
218
|
|
data/lib/cocoapods/installer.rb
CHANGED
@@ -338,6 +338,8 @@ module Pod
|
|
338
338
|
end
|
339
339
|
end
|
340
340
|
|
341
|
+
raise Informative, "Could not install '#{pod_name}' pod. There is no target that supports it." if specs_by_platform.empty?
|
342
|
+
|
341
343
|
@pod_installers ||= []
|
342
344
|
pod_installer = PodSourceInstaller.new(sandbox, specs_by_platform, :can_cache => installation_options.clean?)
|
343
345
|
@pod_installers << pod_installer
|
@@ -4,6 +4,8 @@ module Pod
|
|
4
4
|
class Installer
|
5
5
|
class Analyzer
|
6
6
|
class TargetInspector
|
7
|
+
PLATFORM_INFO_URL = 'https://guides.cocoapods.org/syntax/podfile.html#platform'.freeze
|
8
|
+
|
7
9
|
# @return [TargetDefinition] the target definition to inspect
|
8
10
|
#
|
9
11
|
attr_accessor :target_definition
|
@@ -159,6 +161,10 @@ module Pod
|
|
159
161
|
"Unable to determine the platform for the `#{target_definition.name}` target."
|
160
162
|
end
|
161
163
|
|
164
|
+
UI.warn "Automatically assigning platform #{name} with version #{deployment_target} " \
|
165
|
+
"on target #{target_definition.name} because no platform was specified. " \
|
166
|
+
"Please specify a platform for this target in your Podfile. See `#{PLATFORM_INFO_URL}`."
|
167
|
+
|
162
168
|
target_definition.set_platform(name, deployment_target)
|
163
169
|
Platform.new(name, deployment_target)
|
164
170
|
end
|
@@ -177,7 +177,7 @@ module Pod
|
|
177
177
|
phase = create_or_update_build_phase(native_target, phase_name)
|
178
178
|
native_target.build_phases.unshift(phase).uniq! unless native_target.build_phases.first == phase
|
179
179
|
phase.shell_script = <<-SH.strip_heredoc
|
180
|
-
diff "${
|
180
|
+
diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
|
181
181
|
if [ $? != 0 ] ; then
|
182
182
|
# print error to STDERR
|
183
183
|
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
|
@@ -65,6 +65,31 @@ module Pod
|
|
65
65
|
settings
|
66
66
|
end
|
67
67
|
|
68
|
+
# Filters the given resource file references discarding empty paths which are
|
69
|
+
# added by their parent directory. This will also include references to the parent [PBXVariantGroup]
|
70
|
+
# for all resources underneath it.
|
71
|
+
#
|
72
|
+
# @param Array[<Pathname>] resource_file_references
|
73
|
+
# The array of all resource file references to filter.
|
74
|
+
|
75
|
+
# @return [Array<Pathname>] The filtered resource file references.
|
76
|
+
#
|
77
|
+
def filter_resource_file_references(resource_file_references)
|
78
|
+
resource_file_references.map do |resource_file_reference|
|
79
|
+
ref = project.reference_for_path(resource_file_reference)
|
80
|
+
|
81
|
+
# Some nested files are not directly present in the Xcode project, such as the contents
|
82
|
+
# of an .xcdatamodeld directory. These files are implicitly included by including their
|
83
|
+
# parent directory.
|
84
|
+
next if ref.nil?
|
85
|
+
|
86
|
+
# For variant groups, the variant group itself is added, not its members.
|
87
|
+
next ref.parent if ref.parent.is_a?(Xcodeproj::Project::Object::PBXVariantGroup)
|
88
|
+
|
89
|
+
ref
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
68
93
|
#-----------------------------------------------------------------------#
|
69
94
|
|
70
95
|
SOURCE_FILE_EXTENSIONS = Sandbox::FileAccessor::SOURCE_FILE_EXTENSIONS
|
@@ -111,13 +136,7 @@ module Pod
|
|
111
136
|
|
112
137
|
next unless target.requires_frameworks?
|
113
138
|
|
114
|
-
resource_refs = file_accessor.resources.flatten.
|
115
|
-
project.reference_for_path(res)
|
116
|
-
end
|
117
|
-
|
118
|
-
# Some nested files are not directly present in the Xcode project, such as the contents
|
119
|
-
# of an .xcdatamodeld directory. These files will return nil file references.
|
120
|
-
resource_refs.compact!
|
139
|
+
resource_refs = filter_resource_file_references(file_accessor.resources.flatten).compact
|
121
140
|
|
122
141
|
native_target.add_resources(resource_refs)
|
123
142
|
end
|
@@ -138,19 +157,7 @@ module Pod
|
|
138
157
|
def add_resources_bundle_targets
|
139
158
|
target.file_accessors.each do |file_accessor|
|
140
159
|
file_accessor.resource_bundles.each do |bundle_name, paths|
|
141
|
-
file_references = paths
|
142
|
-
ref = project.reference_for_path(path)
|
143
|
-
|
144
|
-
# Some nested files are not directly present in the Xcode project, such as the contents
|
145
|
-
# of an .xcdatamodeld directory. These files are implicitly included by including their
|
146
|
-
# parent directory.
|
147
|
-
next if ref.nil?
|
148
|
-
|
149
|
-
# For variant groups, the variant group itself is added, not its members.
|
150
|
-
next ref.parent if ref.parent.is_a?(Xcodeproj::Project::Object::PBXVariantGroup)
|
151
|
-
|
152
|
-
ref
|
153
|
-
end
|
160
|
+
file_references = filter_resource_file_references(paths)
|
154
161
|
file_references = file_references.uniq.compact
|
155
162
|
|
156
163
|
label = target.resources_bundle_target_label(bundle_name)
|
@@ -372,10 +372,13 @@ module Pod
|
|
372
372
|
# @return [Boolean] Whether `binary` can be dynamically linked.
|
373
373
|
#
|
374
374
|
def dynamic_binary?(binary)
|
375
|
-
|
376
|
-
|
375
|
+
@cached_dynamic_binary_results ||= {}
|
376
|
+
return @cached_dynamic_binary_results[binary] unless @cached_dynamic_binary_results[binary].nil?
|
377
|
+
return false unless binary.file?
|
378
|
+
|
379
|
+
@cached_dynamic_binary_results[binary] = MachO.open(binary).dylib?
|
377
380
|
rescue MachO::MachOError
|
378
|
-
false
|
381
|
+
@cached_dynamic_binary_results[binary] = false
|
379
382
|
end
|
380
383
|
|
381
384
|
#-----------------------------------------------------------------------#
|
@@ -204,6 +204,16 @@ module Pod
|
|
204
204
|
"${SRCROOT}/#{sandbox.root.relative_path_from(client_root)}"
|
205
205
|
end
|
206
206
|
|
207
|
+
# @return [String] The path of the Podfile directory relative to the
|
208
|
+
# root of the user project.
|
209
|
+
#
|
210
|
+
def podfile_dir_relative_path
|
211
|
+
podfile_path = target_definition.podfile.defined_in_file
|
212
|
+
return "${SRCROOT}/#{podfile_path.relative_path_from(client_root).dirname}" unless podfile_path.nil?
|
213
|
+
# Fallback to the standard path if the Podfile is not represented by a file.
|
214
|
+
'${PODS_ROOT}/..'
|
215
|
+
end
|
216
|
+
|
207
217
|
# @param [String] config_name The build configuration name to get the xcconfig for
|
208
218
|
# @return [String] The path of the xcconfig file relative to the root of
|
209
219
|
# the user project.
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -202,6 +202,9 @@ module Pod
|
|
202
202
|
#
|
203
203
|
attr_accessor :ignore_public_only_results
|
204
204
|
|
205
|
+
attr_accessor :skip_import_validation
|
206
|
+
alias_method :skip_import_validation?, :skip_import_validation
|
207
|
+
|
205
208
|
#-------------------------------------------------------------------------#
|
206
209
|
|
207
210
|
# !@group Lint results
|
@@ -411,7 +414,6 @@ module Pod
|
|
411
414
|
app_project.new_target(:application, 'App', consumer.platform_name, deployment_target)
|
412
415
|
app_project.save
|
413
416
|
app_project.recreate_user_schemes
|
414
|
-
Xcodeproj::XCScheme.share_scheme(app_project.path, 'App')
|
415
417
|
end
|
416
418
|
|
417
419
|
def add_app_project_import
|
@@ -425,6 +427,8 @@ module Pod
|
|
425
427
|
add_swift_version(app_target)
|
426
428
|
add_xctest(app_target) if @installer.pod_targets.any? { |pt| pt.spec_consumers.any? { |c| c.frameworks.include?('XCTest') } }
|
427
429
|
app_project.save
|
430
|
+
Xcodeproj::XCScheme.share_scheme(app_project.path, 'App')
|
431
|
+
Xcodeproj::XCScheme.share_scheme(@installer.pods_project.path, pod_target.label)
|
428
432
|
end
|
429
433
|
|
430
434
|
def add_swift_version(app_target)
|
@@ -764,7 +768,12 @@ module Pod
|
|
764
768
|
#
|
765
769
|
def xcodebuild
|
766
770
|
require 'fourflusher'
|
767
|
-
|
771
|
+
scheme = if skip_import_validation?
|
772
|
+
@installer.pod_targets.find { |pt| pt.pod_name == spec.root.name }.label
|
773
|
+
else
|
774
|
+
'App'
|
775
|
+
end
|
776
|
+
command = %W(clean build -workspace #{File.join(validation_dir, 'App.xcworkspace')} -scheme #{scheme} -configuration Release)
|
768
777
|
case consumer.platform_name
|
769
778
|
when :osx, :macos
|
770
779
|
command += %w(CODE_SIGN_IDENTITY=)
|
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.2.
|
4
|
+
version: 1.2.1.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-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.2.
|
22
|
+
version: 1.2.1.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.2.
|
29
|
+
version: 1.2.1.beta.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,14 +193,14 @@ dependencies:
|
|
193
193
|
requirements:
|
194
194
|
- - "~>"
|
195
195
|
- !ruby/object:Gem::Version
|
196
|
-
version: 0.5.
|
196
|
+
version: 0.5.7
|
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.5.
|
203
|
+
version: 0.5.7
|
204
204
|
- !ruby/object:Gem::Dependency
|
205
205
|
name: xcodeproj
|
206
206
|
requirement: !ruby/object:Gem::Requirement
|
@@ -242,19 +242,19 @@ dependencies:
|
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: '5'
|
244
244
|
- !ruby/object:Gem::Dependency
|
245
|
-
name:
|
245
|
+
name: colored2
|
246
246
|
requirement: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '1
|
250
|
+
version: '3.1'
|
251
251
|
type: :runtime
|
252
252
|
prerelease: false
|
253
253
|
version_requirements: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
255
|
- - "~>"
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: '1
|
257
|
+
version: '3.1'
|
258
258
|
- !ruby/object:Gem::Dependency
|
259
259
|
name: escape
|
260
260
|
requirement: !ruby/object:Gem::Requirement
|