cocoapods 1.2.0 → 1.2.1.beta.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 +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
|