cocoapods 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +16 -1
- data/lib/cocoapods.rb +1 -1
- data/lib/cocoapods/command/linter.rb +9 -8
- data/lib/cocoapods/dependency.rb +1 -1
- data/lib/cocoapods/executable.rb +1 -1
- data/lib/cocoapods/installer/target_installer.rb +4 -2
- data/lib/cocoapods/installer/user_project_integrator.rb +23 -1
- data/lib/cocoapods/open_uri.rb +22 -0
- data/lib/cocoapods/podfile.rb +22 -0
- metadata +7 -3
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## 0.13.0
|
2
|
+
|
3
|
+
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.12.0...0.13.0)
|
4
|
+
|
5
|
+
###### Enhancements
|
6
|
+
|
7
|
+
- Add Podfile `podspec` which allows to use the dependencies of a podspec file. [#162](https://github.com/CocoaPods/CocoaPods/issues/162)
|
8
|
+
- Check if any of the build settings defined in the xcconfig files is overridden. [#92](https://github.com/CocoaPods/CocoaPods/issues/92)
|
9
|
+
- The Linter now checks that there are no compiler flags that disable warnings.
|
10
|
+
|
11
|
+
###### Bug fixes
|
12
|
+
|
13
|
+
- The final project isn’t affected anymore by the `inhibit_all_warnings!` option.
|
14
|
+
- Support for redirects while using podspec from an url. [#462](https://github.com/CocoaPods/CocoaPods/issues/462)
|
15
|
+
|
1
16
|
## 0.12.0
|
2
17
|
|
3
18
|
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.11.1...0.12.0)
|
@@ -10,7 +25,7 @@
|
|
10
25
|
- Don’t impose a certain structure of the user’s project by raising if no ‘Frameworks’ group exists. [#431](https://github.com/CocoaPods/CocoaPods/pull/431)
|
11
26
|
- Support for GitHub Gists in the linter.
|
12
27
|
- Allow specifying ARC settings in subspecs.
|
13
|
-
- Add Podfile
|
28
|
+
- Add Podfile `inhibit_all_warnings!` which will inhibit all warnings from the Pods library. [#209](https://github.com/CocoaPods/CocoaPods/issues/209)
|
14
29
|
- Make the Pods Xcode project prettier by namespacing subspecs in nested groups. [#466](https://github.com/CocoaPods/CocoaPods/pull/466)
|
15
30
|
|
16
31
|
|
data/lib/cocoapods.rb
CHANGED
@@ -218,14 +218,15 @@ module Pod
|
|
218
218
|
source = spec.source || {}
|
219
219
|
text = @file.read
|
220
220
|
messages = []
|
221
|
-
messages << "Missing license type"
|
222
|
-
messages << "Sample license type"
|
223
|
-
messages << "Invalid license type"
|
224
|
-
messages << "The summary is not meaningful"
|
225
|
-
messages << "The description is not meaningful"
|
226
|
-
messages << "The summary should end with a dot"
|
227
|
-
messages << "The description should end with a dot"
|
228
|
-
messages << "Comments must be deleted"
|
221
|
+
messages << "Missing license type" unless license[:type]
|
222
|
+
messages << "Sample license type" if license[:type] && license[:type] =~ /\(example\)/
|
223
|
+
messages << "Invalid license type" if license[:type] && license[:type] =~ /\n/
|
224
|
+
messages << "The summary is not meaningful" if spec.summary =~ /A short description of/
|
225
|
+
messages << "The description is not meaningful" if spec.description && spec.description =~ /An optional longer description of/
|
226
|
+
messages << "The summary should end with a dot" if spec.summary !~ /.*\./
|
227
|
+
messages << "The description should end with a dot" if spec.description !~ /.*\./ && spec.description != spec.summary
|
228
|
+
messages << "Comments must be deleted" if text.scan(/^\s*#/).length > 24
|
229
|
+
messages << "Warnings must not be disabled (`-Wno' compiler flags)" if spec.compiler_flags.split(' ').any? {|flag| flag.start_with?('-Wno') }
|
229
230
|
|
230
231
|
if (git_source = source[:git])
|
231
232
|
messages << "Git sources should specify either a tag or a commit" unless source[:commit] || source[:tag]
|
data/lib/cocoapods/dependency.rb
CHANGED
data/lib/cocoapods/executable.rb
CHANGED
@@ -40,7 +40,7 @@ module Pod
|
|
40
40
|
if should_raise
|
41
41
|
raise Informative, "#{name} #{command}\n\n#{output}"
|
42
42
|
else
|
43
|
-
puts
|
43
|
+
puts((Config.instance.verbose? ? ' ' : '') << "[!] Failed: #{full_command}".red) unless Config.instance.silent?
|
44
44
|
end
|
45
45
|
end
|
46
46
|
output
|
@@ -16,8 +16,7 @@ module Pod
|
|
16
16
|
'PODS_ROOT' => @target_definition.relative_pods_root,
|
17
17
|
'PODS_HEADERS_SEARCH_PATHS' => '${PODS_PUBLIC_HEADERS_SEARCH_PATHS}',
|
18
18
|
'ALWAYS_SEARCH_USER_PATHS' => 'YES', # needed to make EmbedReader build
|
19
|
-
'OTHER_LDFLAGS' => default_ld_flags
|
20
|
-
'GCC_WARN_INHIBIT_ALL_WARNINGS' => @target_definition.inhibit_all_warnings? ? 'YES' : 'NO',
|
19
|
+
'OTHER_LDFLAGS' => default_ld_flags
|
21
20
|
})
|
22
21
|
end
|
23
22
|
|
@@ -93,6 +92,7 @@ module Pod
|
|
93
92
|
config.build_settings['GCC_PREFIX_HEADER'] = @target_definition.prefix_header_name
|
94
93
|
config.build_settings['PODS_ROOT'] = '${SRCROOT}'
|
95
94
|
config.build_settings['PODS_HEADERS_SEARCH_PATHS'] = '${PODS_BUILD_HEADERS_SEARCH_PATHS}'
|
95
|
+
config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = @target_definition.inhibit_all_warnings? ? 'YES' : 'NO'
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
@@ -105,6 +105,8 @@ module Pod
|
|
105
105
|
end
|
106
106
|
puts "- Generating xcconfig file at `#{sandbox.root + @target_definition.xcconfig_name}'" if config.verbose?
|
107
107
|
xcconfig.save_as(sandbox.root + @target_definition.xcconfig_name)
|
108
|
+
@target_definition.xcconfig = xcconfig
|
109
|
+
|
108
110
|
puts "- Generating prefix header at `#{sandbox.root + @target_definition.prefix_header_name}'" if config.verbose?
|
109
111
|
save_prefix_header_as(sandbox.root + @target_definition.prefix_header_name, pods)
|
110
112
|
puts "- Generating copy resources script at `#{sandbox.root + @target_definition.copy_resources_script_name}'" if config.verbose?
|
@@ -6,7 +6,6 @@ require 'active_support/core_ext/array/conversions'
|
|
6
6
|
|
7
7
|
module Pod
|
8
8
|
class Installer
|
9
|
-
|
10
9
|
class UserProjectIntegrator
|
11
10
|
include Pod::Config::Mixin
|
12
11
|
|
@@ -58,6 +57,8 @@ module Pod
|
|
58
57
|
end
|
59
58
|
|
60
59
|
class TargetIntegrator
|
60
|
+
include Pod::Config::Mixin
|
61
|
+
|
61
62
|
attr_reader :target_definition
|
62
63
|
|
63
64
|
def initialize(target_definition)
|
@@ -135,9 +136,30 @@ module Pod
|
|
135
136
|
def add_xcconfig_base_configuration
|
136
137
|
xcconfig = user_project.files.new('path' => @target_definition.xcconfig_relative_path)
|
137
138
|
targets.each do |target|
|
139
|
+
config_build_names_by_overriden_key = {}
|
138
140
|
target.build_configurations.each do |config|
|
141
|
+
config_name = config.attributes["name"]
|
142
|
+
if @target_definition.xcconfig
|
143
|
+
@target_definition.xcconfig.attributes.each do |key, value|
|
144
|
+
target_value = config.build_settings[key]
|
145
|
+
if target_value && !target_value.include?('$(inherited)')
|
146
|
+
config_build_names_by_overriden_key[key] ||= []
|
147
|
+
config_build_names_by_overriden_key[key] << config_name
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
139
152
|
config.base_configuration = xcconfig
|
140
153
|
end
|
154
|
+
|
155
|
+
unless config.silent?
|
156
|
+
config_build_names_by_overriden_key.each do |key, config_build_names|
|
157
|
+
name = "#{target.attributes["name"]} [#{config_build_names.join(' - ')}]"
|
158
|
+
puts "\n[!] The target `#{name}' overrides the `#{key}' build setting defined in `#{@target_definition.xcconfig_relative_path}'.".yellow
|
159
|
+
puts " - Use the `$(inherited)' flag, or"
|
160
|
+
puts " - Remove the build settings from the target."
|
161
|
+
end
|
162
|
+
end
|
141
163
|
end
|
142
164
|
end
|
143
165
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
# Inspiration from: https://gist.github.com/1271420
|
4
|
+
#
|
5
|
+
# Allow open-uri to follow http to https redirects.
|
6
|
+
# Relevant issue:
|
7
|
+
# http://redmine.ruby-lang.org/issues/3719
|
8
|
+
# Source here:
|
9
|
+
# https://github.com/ruby/ruby/blob/trunk/lib/open-uri.rb
|
10
|
+
|
11
|
+
module OpenURI
|
12
|
+
def OpenURI.redirectable?(uri1, uri2) # :nodoc:
|
13
|
+
# This test is intended to forbid a redirection from http://... to
|
14
|
+
# file:///etc/passwd, file:///dev/zero, etc. CVE-2011-1521
|
15
|
+
# https to http redirect is also forbidden intentionally.
|
16
|
+
# It avoids sending secure cookie or referer by non-secure HTTP protocol.
|
17
|
+
# (RFC 2109 4.3.1, RFC 2965 3.3, RFC 2616 15.1.3)
|
18
|
+
# However this is ad hoc. It should be extensible/configurable.
|
19
|
+
uri1.scheme.downcase == uri2.scheme.downcase ||
|
20
|
+
(/\A(?:http|ftp)\z/i =~ uri1.scheme && /\A(?:https?|ftp)\z/i =~ uri2.scheme)
|
21
|
+
end
|
22
|
+
end
|
data/lib/cocoapods/podfile.rb
CHANGED
@@ -143,6 +143,8 @@ module Pod
|
|
143
143
|
relative_to_srcroot("Pods/#{xcconfig_name}").to_s
|
144
144
|
end
|
145
145
|
|
146
|
+
attr_accessor :xcconfig
|
147
|
+
|
146
148
|
def copy_resources_script_name
|
147
149
|
"#{label}-resources.sh"
|
148
150
|
end
|
@@ -401,6 +403,26 @@ module Pod
|
|
401
403
|
@target_definition.target_dependencies << Dependency.new(*name_and_version_requirements, &block)
|
402
404
|
end
|
403
405
|
|
406
|
+
# Use the dependencies of a podspec file.
|
407
|
+
#
|
408
|
+
def podspec(options = nil)
|
409
|
+
if options && path = options[:path]
|
410
|
+
path = File.extname(path) == '.podspec' ? path : "#{path}.podspec"
|
411
|
+
file = Pathname.new(File.expand_path(path))
|
412
|
+
elsif options && name = options[:name]
|
413
|
+
name = File.extname(name) == '.podspec' ? name : "#{name}.podspec"
|
414
|
+
file = config.project_root + name
|
415
|
+
else
|
416
|
+
file = config.project_root.glob('*.podspec').first
|
417
|
+
end
|
418
|
+
|
419
|
+
spec = Specification.from_file(file)
|
420
|
+
spec.activate_platform(@target_definition.platform)
|
421
|
+
deps = spec.recursive_subspecs.push(spec).map {|specification| specification.external_dependencies }
|
422
|
+
deps = deps.flatten.uniq
|
423
|
+
@target_definition.target_dependencies.concat(deps)
|
424
|
+
end
|
425
|
+
|
404
426
|
def dependency(*name_and_version_requirements, &block)
|
405
427
|
warn "[DEPRECATED] `dependency' is deprecated (use `pod')"
|
406
428
|
pod(*name_and_version_requirements, &block)
|
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.
|
4
|
+
version: 0.13.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -219,6 +219,7 @@ files:
|
|
219
219
|
- lib/cocoapods/installer/user_project_integrator.rb
|
220
220
|
- lib/cocoapods/installer.rb
|
221
221
|
- lib/cocoapods/local_pod.rb
|
222
|
+
- lib/cocoapods/open_uri.rb
|
222
223
|
- lib/cocoapods/platform.rb
|
223
224
|
- lib/cocoapods/podfile.rb
|
224
225
|
- lib/cocoapods/project.rb
|
@@ -247,6 +248,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
247
248
|
- - ! '>='
|
248
249
|
- !ruby/object:Gem::Version
|
249
250
|
version: '0'
|
251
|
+
segments:
|
252
|
+
- 0
|
253
|
+
hash: -4262586361152659558
|
250
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
251
255
|
none: false
|
252
256
|
requirements:
|
@@ -255,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
259
|
version: '0'
|
256
260
|
requirements: []
|
257
261
|
rubyforge_project:
|
258
|
-
rubygems_version: 1.8.
|
262
|
+
rubygems_version: 1.8.24
|
259
263
|
signing_key:
|
260
264
|
specification_version: 3
|
261
265
|
summary: An Objective-C library package manager.
|