cocoapods 0.36.0.beta.2 → 0.36.0.rc.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 +124 -0
- data/lib/cocoapods.rb +3 -0
- data/lib/cocoapods/command.rb +9 -0
- data/lib/cocoapods/command/init.rb +1 -1
- data/lib/cocoapods/command/inter_process_communication.rb +2 -0
- data/lib/cocoapods/command/lib.rb +3 -3
- data/lib/cocoapods/command/outdated.rb +2 -1
- data/lib/cocoapods/command/repo/push.rb +6 -2
- data/lib/cocoapods/command/spec/lint.rb +5 -5
- data/lib/cocoapods/executable.rb +2 -1
- data/lib/cocoapods/external_sources/abstract_external_source.rb +3 -0
- data/lib/cocoapods/external_sources/path_source.rb +1 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +1 -1
- data/lib/cocoapods/generator/embed_frameworks_script.rb +4 -4
- data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +1 -0
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +1 -1
- data/lib/cocoapods/installer.rb +64 -3
- data/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +2 -2
- data/lib/cocoapods/installer/migrator.rb +8 -0
- data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +2 -1
- data/lib/cocoapods/installer/user_project_integrator.rb +1 -1
- data/lib/cocoapods/project.rb +20 -0
- data/lib/cocoapods/sandbox.rb +12 -0
- data/lib/cocoapods/sandbox/file_accessor.rb +1 -1
- data/lib/cocoapods/sources_manager.rb +14 -0
- data/lib/cocoapods/target.rb +1 -6
- data/lib/cocoapods/validator.rb +27 -10
- metadata +68 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef4ce8ae91c04f6565e9e5607da50a2f6b6d96f1
|
4
|
+
data.tar.gz: e913792e08a80a242b1817fb186456219cc3cca1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 697dbb533f3490b27c2683c110f6f7ddea96b2197be16d042d805ed3baa3a17e36807f24821abb559f43c4c0f0c44b6afbb4487d1a9f613ea265e9b5d9f85d57
|
7
|
+
data.tar.gz: 5a881818cfcc504b8f45e1bda435397279a806e357768c6520bd2fe198eb5521b35e32f85481d971a97e8b7e8ba69b8437effe506ee5aa7ffcb40f9b2cb514fd
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,130 @@ 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
|
+
## 0.36.0.rc.1
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Set the `APPLICATION_EXTENSION_API_ONLY` build setting if integrating with a watch extension target.
|
12
|
+
[Boris Bügling](https://github.com/neonichu)
|
13
|
+
[#3153](https://github.com/CocoaPods/CocoaPods/issues/3153)
|
14
|
+
|
15
|
+
* Build for iOS simulator only during validation. This allows validation without having
|
16
|
+
provisioning profiles set up.
|
17
|
+
[Boris Bügling](https://github.com/neonichu)
|
18
|
+
[#3083](https://github.com/CocoaPods/CocoaPods/issues/3083)
|
19
|
+
[Swift#13](https://github.com/CocoaPods/swift/issues/13)
|
20
|
+
|
21
|
+
* Explicitly inform the user to close existing project when switching to
|
22
|
+
a workspace for the first time.
|
23
|
+
[Kyle Fuller](https://github.com/kylef)
|
24
|
+
[#2996](https://github.com/CocoaPods/CocoaPods/issues/2996)
|
25
|
+
|
26
|
+
* Automatically detect conflicts between framework names.
|
27
|
+
[Samuel Giddins](https://github.com/segiddins)
|
28
|
+
[#2943](https://github.com/CocoaPods/CocoaPods/issues/2943)
|
29
|
+
|
30
|
+
* Use the proper `TMPDIR` for the CocoaPods process, instead of blindly using
|
31
|
+
`/tmp`.
|
32
|
+
[Samuel Giddins](https://github.com/segiddins)
|
33
|
+
|
34
|
+
* Let lint fail for Swift pods supporting deployment targets below iOS 8.0.
|
35
|
+
[Boris Bügling](https://github.com/neonichu)
|
36
|
+
[#2963](https://github.com/CocoaPods/CocoaPods/issues/2963)
|
37
|
+
|
38
|
+
* Reject installation if a static library is used as a transitive dependency
|
39
|
+
while integrating Pods as frameworks.
|
40
|
+
[Samuel Giddins](https://github.com/segiddins)
|
41
|
+
[#2926](https://github.com/CocoaPods/CocoaPods/issues/2926)
|
42
|
+
|
43
|
+
* Do not copy Swift standard libraries multiple times.
|
44
|
+
[Boris Bügling](https://github.com/neonichu)
|
45
|
+
[#3131](https://github.com/CocoaPods/CocoaPods/issues/3131)
|
46
|
+
|
47
|
+
* Check for Xcode License Agreement before running commands.
|
48
|
+
[Xavi Matos](https://github.com/CalQL8ed-K-OS)
|
49
|
+
[#3002](https://github.com/CocoaPods/CocoaPods/issues/3002)
|
50
|
+
|
51
|
+
* `pod update PODNAME` will update pods in a case-insensitive manner.
|
52
|
+
[Samuel Giddins](https://github.com/segiddins)
|
53
|
+
[#2992](https://github.com/CocoaPods/CocoaPods/issues/2992)
|
54
|
+
|
55
|
+
* Allow specifying repo names to `pod {spec,lib} lint --sources`.
|
56
|
+
[Samuel Giddins](https://github.com/segiddins)
|
57
|
+
[#2685](https://github.com/CocoaPods/CocoaPods/issues/2685)
|
58
|
+
|
59
|
+
* Require explicit use of `use_frameworks!` for Pods written in Swift.
|
60
|
+
[Boris Bügling](https://github.com/neonichu)
|
61
|
+
[#3029](https://github.com/CocoaPods/CocoaPods/issues/3029)
|
62
|
+
|
63
|
+
* Lint as framework automatically. If needed, `--use-libraries` option
|
64
|
+
allows linting as a static library.
|
65
|
+
[Boris Bügling](https://github.com/neonichu)
|
66
|
+
[#2912](https://github.com/CocoaPods/CocoaPods/issues/2912)
|
67
|
+
|
68
|
+
* Adding Xcode Legacy build location support for default Pods.xcodeproj.
|
69
|
+
It defaults to `${SRCROOT}/../build` but can be changed in a `post_install`
|
70
|
+
hook by using the `Project#symroot=` writer.
|
71
|
+
[Sam Marshall](https://github.com/samdmarshall)
|
72
|
+
|
73
|
+
##### Bug Fixes
|
74
|
+
|
75
|
+
* Set `SKIP_INSTALL=YES` for all generated targets to avoid producing
|
76
|
+
*Generic Xcode Archives* on Archive.
|
77
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
78
|
+
[#3188](https://github.com/CocoaPods/CocoaPods/issues/3188)
|
79
|
+
|
80
|
+
* Added support for .tpp C++ header files in specs (previously were getting
|
81
|
+
filtered out and symlinks wouldn't get created in the Pods/Headers folder.)
|
82
|
+
[Honza Dvorsky](https://github.com/czechboy0)
|
83
|
+
[#3129](https://github.com/CocoaPods/CocoaPods/pull/3129)
|
84
|
+
|
85
|
+
* Fixed installation for app-extension targets which had no dependencies
|
86
|
+
configured in the Podfile.
|
87
|
+
[Boris Bügling](https://github.com/neonichu)
|
88
|
+
[#3102](https://github.com/CocoaPods/CocoaPods/issues/3102)
|
89
|
+
|
90
|
+
* Correct escaping of resource bundles in 'Copy Pods Resources' script.
|
91
|
+
[Seán Labastille](https://github.com/flufff42)
|
92
|
+
[#3082](https://github.com/CocoaPods/CocoaPods/issues/3082)
|
93
|
+
|
94
|
+
* Correctly update sources when calling `pod outdated`, and also respect the
|
95
|
+
`--[no-]repo-update` flag.
|
96
|
+
[Samuel Giddins](https://github.com/segiddins)
|
97
|
+
[#3137](https://github.com/CocoaPods/CocoaPods/issues/3137)
|
98
|
+
|
99
|
+
* Fix the `OTHER_SWIFT_FLAGS` generated, so `#if COCOAPODS` works in Swift.
|
100
|
+
[Samuel Giddins](https://github.com/segiddins)
|
101
|
+
[#2983](https://github.com/CocoaPods/CocoaPods/issues/2983)
|
102
|
+
|
103
|
+
* Output a properly-formed `Podfile` when running `pod init` with a target that
|
104
|
+
contains a `'` in its name.
|
105
|
+
[Samuel Giddins](https://github.com/segiddins)
|
106
|
+
[#3136](https://github.com/CocoaPods/CocoaPods/issues/3136)
|
107
|
+
|
108
|
+
* Remove the stored lockfile checkout source when switching to a development
|
109
|
+
pod.
|
110
|
+
[Samuel Giddins](https://github.com/segiddins)
|
111
|
+
[#3141](https://github.com/CocoaPods/CocoaPods/issues/3141)
|
112
|
+
|
113
|
+
* Migrate local Ruby podspecs to JSON, allowing updating those pods to work.
|
114
|
+
[Samuel Giddins](https://github.com/segiddins)
|
115
|
+
[#3038](https://github.com/CocoaPods/CocoaPods/issues/3038)
|
116
|
+
|
117
|
+
* Removing grep color markup in the embed frameworks script.
|
118
|
+
[Adriano Bonat](https://github.com/tanob)
|
119
|
+
[#3117](https://github.com/CocoaPods/CocoaPods/issues/3117)
|
120
|
+
|
121
|
+
* Fixes an issue where `pod ipc list` and `pod ipc podfile` was returning an
|
122
|
+
error.
|
123
|
+
[Kyle Fuller](https://github.com/kylef)
|
124
|
+
[#3134](https://github.com/CocoaPods/CocoaPods/issues/3134)
|
125
|
+
|
126
|
+
* Fixes an issue with spaces in the path to the user's developer tools.
|
127
|
+
[Boris Bügling](https://github.com/neonichu)
|
128
|
+
[#3181](https://github.com/CocoaPods/CocoaPods/issues/3181)
|
129
|
+
|
130
|
+
|
7
131
|
## 0.36.0.beta.2
|
8
132
|
|
9
133
|
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.21.0...0.21.2)
|
data/lib/cocoapods.rb
CHANGED
@@ -16,6 +16,7 @@ end
|
|
16
16
|
|
17
17
|
module Pod
|
18
18
|
require 'pathname'
|
19
|
+
require 'tmpdir'
|
19
20
|
|
20
21
|
require 'cocoapods/gem_version'
|
21
22
|
require 'cocoapods-core'
|
@@ -35,6 +36,8 @@ module Pod
|
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
39
|
+
Xcodeproj::PlainInformative.send(:include, CLAide::InformativeError)
|
40
|
+
|
38
41
|
autoload :AggregateTarget, 'cocoapods/target/aggregate_target'
|
39
42
|
autoload :Command, 'cocoapods/command'
|
40
43
|
autoload :Executable, 'cocoapods/executable'
|
data/lib/cocoapods/command.rb
CHANGED
@@ -41,6 +41,7 @@ module Pod
|
|
41
41
|
|
42
42
|
def self.run(argv)
|
43
43
|
help! 'You cannot run CocoaPods as root.' if Process.uid == 0
|
44
|
+
verify_xcode_license_approved!
|
44
45
|
|
45
46
|
super(argv)
|
46
47
|
UI.print_warnings
|
@@ -121,5 +122,13 @@ module Pod
|
|
121
122
|
raise Informative, "No `Podfile.lock' found in the project directory, run `pod install'."
|
122
123
|
end
|
123
124
|
end
|
125
|
+
|
126
|
+
def self.verify_xcode_license_approved!
|
127
|
+
if `/usr/bin/xcrun clang 2>&1` =~ /license/ && !$?.success?
|
128
|
+
raise Informative, 'You have not agreed to the Xcode license, which ' \
|
129
|
+
'you must do to use CocoaPods. Agree to the license by running: ' \
|
130
|
+
'`xcodebuild -license`.'
|
131
|
+
end
|
132
|
+
end
|
124
133
|
end
|
125
134
|
end
|
@@ -72,7 +72,7 @@ module Pod
|
|
72
72
|
# @return [String] the text for the target module
|
73
73
|
#
|
74
74
|
def target_module(target)
|
75
|
-
target_module = "\ntarget '#{target.name}' do\n"
|
75
|
+
target_module = "\ntarget '#{target.name.gsub(/'/, "\\\\\'")}' do\n"
|
76
76
|
|
77
77
|
if target.name =~ /tests?/i
|
78
78
|
target_module << template_contents(config.default_test_podfile_path)
|
@@ -54,6 +54,7 @@ module Pod
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def run
|
57
|
+
require 'yaml'
|
57
58
|
podfile = Pod::Podfile.from_file(@path)
|
58
59
|
output_pipe.puts podfile.to_yaml
|
59
60
|
end
|
@@ -77,6 +78,7 @@ module Pod
|
|
77
78
|
DESC
|
78
79
|
|
79
80
|
def run
|
81
|
+
require 'yaml'
|
80
82
|
sets = SourcesManager.aggregate.all_sets
|
81
83
|
result = {}
|
82
84
|
sets.each do |set|
|
@@ -113,8 +113,8 @@ module Pod
|
|
113
113
|
['--subspec=NAME', 'Lint validates only the given subspec'],
|
114
114
|
['--no-subspecs', 'Lint skips validation of subspecs'],
|
115
115
|
['--no-clean', 'Lint leaves the build directory intact for inspection'],
|
116
|
-
['--use-
|
117
|
-
['--sources=https://github.com/artsy/Specs', 'The sources from which to pull dependant pods ' \
|
116
|
+
['--use-libraries', 'Lint uses static libraries to install the spec'],
|
117
|
+
['--sources=https://github.com/artsy/Specs,master', 'The sources from which to pull dependant pods ' \
|
118
118
|
'(defaults to https://github.com/CocoaPods/Specs.git). '\
|
119
119
|
'Multiple sources must be comma-delimited.']].concat(super)
|
120
120
|
end
|
@@ -125,7 +125,7 @@ module Pod
|
|
125
125
|
@clean = argv.flag?('clean', true)
|
126
126
|
@subspecs = argv.flag?('subspecs', true)
|
127
127
|
@only_subspec = argv.option('subspec')
|
128
|
-
@use_frameworks = argv.flag?('use-
|
128
|
+
@use_frameworks = !argv.flag?('use-libraries')
|
129
129
|
@source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
|
130
130
|
@podspecs_paths = argv.arguments!
|
131
131
|
super
|
@@ -13,7 +13,7 @@ module Pod
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def initialize(argv)
|
16
|
-
config.skip_repo_update = argv.flag?('repo-update', config.skip_repo_update)
|
16
|
+
config.skip_repo_update = !argv.flag?('repo-update', !config.skip_repo_update)
|
17
17
|
super
|
18
18
|
end
|
19
19
|
|
@@ -96,6 +96,7 @@ module Pod
|
|
96
96
|
|
97
97
|
def spec_sets
|
98
98
|
@spec_sets ||= begin
|
99
|
+
analyzer.send(:update_repositories_if_needed)
|
99
100
|
aggregate = Source::Aggregate.new(analyzer.sources.map(&:repo))
|
100
101
|
installed_pods.map do |pod_name|
|
101
102
|
aggregate.search(Dependency.new(pod_name))
|
@@ -21,6 +21,7 @@ module Pod
|
|
21
21
|
|
22
22
|
def self.options
|
23
23
|
[['--allow-warnings', 'Allows pushing even if there are warnings'],
|
24
|
+
['--use-libraries', 'Linter uses static libraries to install the spec'],
|
24
25
|
['--local-only', 'Does not perform the step of pushing REPO to its remote']].concat(super)
|
25
26
|
end
|
26
27
|
|
@@ -29,6 +30,7 @@ module Pod
|
|
29
30
|
@local_only = argv.flag?('local-only')
|
30
31
|
@repo = argv.shift_argument
|
31
32
|
@podspec = argv.shift_argument
|
33
|
+
@use_frameworks = !argv.flag?('use-libraries')
|
32
34
|
super
|
33
35
|
end
|
34
36
|
|
@@ -84,10 +86,12 @@ module Pod
|
|
84
86
|
podspec_files.each do |podspec|
|
85
87
|
validator = Validator.new(podspec, SourcesManager.all.map(&:url))
|
86
88
|
validator.allow_warnings = @allow_warnings
|
89
|
+
validator.use_frameworks = @use_frameworks
|
87
90
|
begin
|
88
91
|
validator.validate
|
89
|
-
rescue
|
90
|
-
raise Informative, "The `#{podspec}` specification does not validate."
|
92
|
+
rescue => e
|
93
|
+
raise Informative, "The `#{podspec}` specification does not validate." \
|
94
|
+
"\n\n#{e.message}"
|
91
95
|
end
|
92
96
|
raise Informative, "The `#{podspec}` specification does not validate." unless validator.validated?
|
93
97
|
end
|
@@ -20,8 +20,8 @@ module Pod
|
|
20
20
|
['--subspec=NAME', 'Lint validates only the given subspec'],
|
21
21
|
['--no-subspecs', 'Lint skips validation of subspecs'],
|
22
22
|
['--no-clean', 'Lint leaves the build directory intact for inspection'],
|
23
|
-
['--use-
|
24
|
-
['--sources=https://github.com/artsy/Specs', 'The sources from which to pull dependant pods ' \
|
23
|
+
['--use-libraries', 'Lint uses static libraries to install the spec'],
|
24
|
+
['--sources=https://github.com/artsy/Specs,master', 'The sources from which to pull dependant pods ' \
|
25
25
|
'(defaults to https://github.com/CocoaPods/Specs.git). '\
|
26
26
|
'Multiple sources must be comma-delimited.']].concat(super)
|
27
27
|
end
|
@@ -32,9 +32,9 @@ module Pod
|
|
32
32
|
@clean = argv.flag?('clean', true)
|
33
33
|
@subspecs = argv.flag?('subspecs', true)
|
34
34
|
@only_subspec = argv.option('subspec')
|
35
|
-
@use_frameworks = argv.flag?('use-
|
35
|
+
@use_frameworks = !argv.flag?('use-libraries')
|
36
36
|
@source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
|
37
|
-
@podspecs_paths
|
37
|
+
@podspecs_paths = argv.arguments!
|
38
38
|
super
|
39
39
|
end
|
40
40
|
|
@@ -97,7 +97,7 @@ module Pod
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def podspecs_tmp_dir
|
100
|
-
Pathname
|
100
|
+
Pathname.new(Dir.tmpdir) + 'CocoaPods/Lint_podspec'
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
data/lib/cocoapods/executable.rb
CHANGED
@@ -52,8 +52,9 @@ module Pod
|
|
52
52
|
raise Informative, "Unable to locate the executable `#{executable}`" if bin.empty?
|
53
53
|
|
54
54
|
require 'open4'
|
55
|
+
require 'shellwords'
|
55
56
|
|
56
|
-
full_command = "#{bin} #{command}"
|
57
|
+
full_command = "#{bin.shellescape} #{command}"
|
57
58
|
|
58
59
|
if Config.instance.verbose?
|
59
60
|
UI.message("$ #{full_command}")
|
@@ -141,6 +141,9 @@ module Pod
|
|
141
141
|
if spec.is_a? Pathname
|
142
142
|
spec = Specification.from_file(spec).to_pretty_json
|
143
143
|
json = true
|
144
|
+
elsif spec.is_a?(String) && !json
|
145
|
+
spec = Specification.from_string(spec, 'spec.podspec').to_pretty_json
|
146
|
+
json = true
|
144
147
|
end
|
145
148
|
sandbox.store_podspec(name, spec, true, json)
|
146
149
|
end
|
@@ -76,7 +76,7 @@ module Pod
|
|
76
76
|
unless resources.empty?
|
77
77
|
script += %(if [[ "$CONFIGURATION" == "#{config}" ]]; then\n)
|
78
78
|
resources.each do |resource|
|
79
|
-
script +=
|
79
|
+
script += %( install_resource "#{resource}"\n)
|
80
80
|
end
|
81
81
|
script += "fi\n"
|
82
82
|
end
|
@@ -57,7 +57,7 @@ module Pod
|
|
57
57
|
local source="${BUILT_PRODUCTS_DIR}/#{target_definition.label}/$1"
|
58
58
|
local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
59
59
|
|
60
|
-
if [ -L ${source} ]; then
|
60
|
+
if [ -L "${source}" ]; then
|
61
61
|
echo "Symlinked..."
|
62
62
|
source=$(readlink "${source}")
|
63
63
|
fi
|
@@ -74,10 +74,10 @@ module Pod
|
|
74
74
|
local basename
|
75
75
|
basename=$(echo $1 | sed -E s/\\\\..+// && exit ${PIPESTATUS[0]})
|
76
76
|
local swift_runtime_libs
|
77
|
-
swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u && exit ${PIPESTATUS[0]})
|
77
|
+
swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u && exit ${PIPESTATUS[0]})
|
78
78
|
for lib in $swift_runtime_libs; do
|
79
|
-
echo "rsync -
|
80
|
-
rsync -
|
79
|
+
echo "rsync -auv \\"${SWIFT_STDLIB_PATH}/${lib}\\" \\"${destination}\\""
|
80
|
+
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
81
81
|
if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
|
82
82
|
code_sign "${destination}/${lib}"
|
83
83
|
fi
|
@@ -160,7 +160,7 @@ module Pod
|
|
160
160
|
def self.add_language_specific_settings(target, xcconfig)
|
161
161
|
if target.uses_swift?
|
162
162
|
build_settings = {
|
163
|
-
'OTHER_SWIFT_FLAGS' => quote(
|
163
|
+
'OTHER_SWIFT_FLAGS' => quote(%w(-D COCOAPODS)),
|
164
164
|
}
|
165
165
|
xcconfig.merge!(build_settings)
|
166
166
|
end
|
data/lib/cocoapods/installer.rb
CHANGED
@@ -90,6 +90,9 @@ module Pod
|
|
90
90
|
resolve_dependencies
|
91
91
|
download_dependencies
|
92
92
|
determine_dependency_product_types
|
93
|
+
verify_no_duplicate_framework_names
|
94
|
+
verify_no_static_framework_transitive_dependencies
|
95
|
+
verify_framework_usage
|
93
96
|
generate_pods_project
|
94
97
|
integrate_user_project if config.integrate_targets?
|
95
98
|
perform_post_install_actions
|
@@ -190,7 +193,7 @@ module Pod
|
|
190
193
|
# Ensures that the white-listed build configurations are known to prevent
|
191
194
|
# silent typos.
|
192
195
|
#
|
193
|
-
# @raise If
|
196
|
+
# @raise If an unknown user configuration is found.
|
194
197
|
#
|
195
198
|
def validate_build_configurations
|
196
199
|
whitelisted_configs = pod_targets.map do |target|
|
@@ -327,6 +330,62 @@ module Pod
|
|
327
330
|
end
|
328
331
|
end
|
329
332
|
|
333
|
+
def verify_no_duplicate_framework_names
|
334
|
+
aggregate_targets.each do |aggregate_target|
|
335
|
+
aggregate_target.user_build_configurations.keys.each do |config|
|
336
|
+
pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
|
337
|
+
vendored_frameworks = pod_targets.flat_map(&:file_accessors).flat_map(&:vendored_frameworks)
|
338
|
+
frameworks = vendored_frameworks.map { |fw| fw.basename('.framework') }
|
339
|
+
frameworks += pod_targets.select { |pt| pt.should_build? && pt.requires_frameworks? }.map(&:product_module_name)
|
340
|
+
|
341
|
+
duplicates = frameworks.group_by { |f| f }.select { |_, v| v.size > 1 }.keys
|
342
|
+
unless duplicates.empty?
|
343
|
+
raise Informative, "The '#{aggregate_target.label}' target has " \
|
344
|
+
"frameworks with conflicting names: #{duplicates.to_sentence}."
|
345
|
+
end
|
346
|
+
end
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
350
|
+
def verify_no_static_framework_transitive_dependencies
|
351
|
+
aggregate_targets.each do |aggregate_target|
|
352
|
+
next unless aggregate_target.requires_frameworks?
|
353
|
+
|
354
|
+
aggregate_target.user_build_configurations.keys.each do |config|
|
355
|
+
pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
|
356
|
+
|
357
|
+
dependencies = pod_targets.flat_map(&:dependencies)
|
358
|
+
dependended_upon_targets = pod_targets.select { |t| dependencies.include?(t.pod_name) }
|
359
|
+
|
360
|
+
static_libs = dependended_upon_targets.flat_map(&:file_accessors).flat_map do |fa|
|
361
|
+
static_frameworks = fa.vendored_frameworks.reject { |fw| `file #{fw + fw.basename('.framework')} 2>&1` =~ /dynamically linked/ }
|
362
|
+
fa.vendored_libraries + static_frameworks
|
363
|
+
end
|
364
|
+
|
365
|
+
unless static_libs.empty?
|
366
|
+
raise Informative, "The '#{aggregate_target.label}' target has " \
|
367
|
+
"transitive dependencies that include static binaries: (#{static_libs.to_sentence})"
|
368
|
+
end
|
369
|
+
end
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
373
|
+
def verify_framework_usage
|
374
|
+
aggregate_targets.each do |aggregate_target|
|
375
|
+
next if aggregate_target.requires_frameworks?
|
376
|
+
|
377
|
+
aggregate_target.user_build_configurations.keys.each do |config|
|
378
|
+
pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
|
379
|
+
|
380
|
+
if pod_targets.any?(&:uses_swift?)
|
381
|
+
raise Informative, 'Pods written in Swift can only be integrated as frameworks; this ' \
|
382
|
+
'feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt ' \
|
383
|
+
'into using it.'
|
384
|
+
end
|
385
|
+
end
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
330
389
|
# Performs any post-installation actions
|
331
390
|
#
|
332
391
|
# @return [void]
|
@@ -467,10 +526,12 @@ module Pod
|
|
467
526
|
def set_target_dependencies
|
468
527
|
frameworks_group = pods_project.frameworks_group
|
469
528
|
aggregate_targets.each do |aggregate_target|
|
470
|
-
is_app_extension = aggregate_target.user_targets.map(&:symbol_type)
|
471
|
-
|
529
|
+
is_app_extension = !(aggregate_target.user_targets.map(&:symbol_type) &
|
530
|
+
[:app_extension, :watch_extension]).empty?
|
472
531
|
|
473
532
|
aggregate_target.pod_targets.each do |pod_target|
|
533
|
+
configure_app_extension_api_only_for_target(aggregate_target) if is_app_extension
|
534
|
+
|
474
535
|
unless pod_target.should_build?
|
475
536
|
pod_target.resource_bundle_targets.each do |resource_bundle_target|
|
476
537
|
aggregate_target.native_target.add_dependency(resource_bundle_target)
|
@@ -33,8 +33,8 @@ module Pod
|
|
33
33
|
end
|
34
34
|
|
35
35
|
pods_to_update = pods_to_update.flat_map do |u|
|
36
|
-
root_name = Specification.root_name(u)
|
37
|
-
dependency_graph.vertices.keys.select { |n| Specification.root_name(n) == root_name }
|
36
|
+
root_name = Specification.root_name(u).downcase
|
37
|
+
dependency_graph.vertices.keys.select { |n| Specification.root_name(n).downcase == root_name }
|
38
38
|
end
|
39
39
|
|
40
40
|
pods_to_update.each do |u|
|
@@ -52,6 +52,14 @@ module Pod
|
|
52
52
|
def migrate_to_0_36(sandbox)
|
53
53
|
UI.message('Migrating to CocoaPods 0.36') do
|
54
54
|
move(sandbox.root + 'Headers/Build', sandbox.root + 'Headers/Private')
|
55
|
+
|
56
|
+
sandbox.specifications_root.children.each do |child|
|
57
|
+
next unless child.basename.to_s =~ /\.podspec$/
|
58
|
+
spec = Specification.from_file(child)
|
59
|
+
child.delete
|
60
|
+
child = Pathname("#{child}.json")
|
61
|
+
File.open(child, 'w') { |f| f.write spec.to_pretty_json }
|
62
|
+
end
|
55
63
|
end
|
56
64
|
end
|
57
65
|
|
@@ -41,6 +41,7 @@ module Pod
|
|
41
41
|
'OTHER_LDFLAGS' => '',
|
42
42
|
'OTHER_LIBTOOLFLAGS' => '',
|
43
43
|
'PODS_ROOT' => '$(SRCROOT)',
|
44
|
+
'SKIP_INSTALL' => 'YES',
|
44
45
|
}
|
45
46
|
super.merge(settings)
|
46
47
|
end
|
@@ -118,7 +119,7 @@ module Pod
|
|
118
119
|
target.user_build_configurations.keys.each do |config|
|
119
120
|
file_accessors = library_targets.select { |t| t.include_in_build_config?(config) }.flat_map(&:file_accessors)
|
120
121
|
resource_paths = file_accessors.flat_map { |accessor| accessor.resources.flat_map { |res| res.relative_path_from(project.path.dirname) } }
|
121
|
-
resource_bundles = file_accessors.flat_map { |accessor| accessor.resource_bundles.keys.map { |name| "${BUILT_PRODUCTS_DIR}/#{name}.bundle" } }
|
122
|
+
resource_bundles = file_accessors.flat_map { |accessor| accessor.resource_bundles.keys.map { |name| "${BUILT_PRODUCTS_DIR}/#{name.shellescape}.bundle" } }
|
122
123
|
resources_by_config[config] = resource_paths + resource_bundles
|
123
124
|
resources_by_config[config] << bridge_support_file if bridge_support_file
|
124
125
|
end
|
@@ -94,7 +94,7 @@ module Pod
|
|
94
94
|
end
|
95
95
|
|
96
96
|
else
|
97
|
-
UI.notice "
|
97
|
+
UI.notice "Please close any current Xcode sessions and use `#{workspace_path.basename}` for this project from now on."
|
98
98
|
workspace = Xcodeproj::Workspace.new(*file_references)
|
99
99
|
workspace.save_as(workspace_path)
|
100
100
|
end
|
data/lib/cocoapods/project.rb
CHANGED
@@ -17,6 +17,7 @@ module Pod
|
|
17
17
|
@refs_by_absolute_path = {}
|
18
18
|
@pods = new_group('Pods')
|
19
19
|
@development_pods = new_group('Development Pods')
|
20
|
+
self.symroot = LEGACY_BUILD_ROOT
|
20
21
|
end
|
21
22
|
|
22
23
|
# @return [PBXGroup] The group for the support files of the aggregate
|
@@ -34,6 +35,25 @@ module Pod
|
|
34
35
|
|
35
36
|
public
|
36
37
|
|
38
|
+
# @!group Legacy Xcode build root
|
39
|
+
#-------------------------------------------------------------------------#
|
40
|
+
|
41
|
+
LEGACY_BUILD_ROOT = '${SRCROOT}/../build'
|
42
|
+
|
43
|
+
# @param [String] symroot
|
44
|
+
# The build root that is used when Xcode is configured to not use the
|
45
|
+
# workspace’s build root. Defaults to `${SRCROOT}/../build`.
|
46
|
+
#
|
47
|
+
# @return [void]
|
48
|
+
#
|
49
|
+
def symroot=(symroot)
|
50
|
+
root_object.build_configuration_list.build_configurations.each do |config|
|
51
|
+
config.build_settings['SYMROOT'] = symroot
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
public
|
56
|
+
|
37
57
|
# @!group Pod Groups
|
38
58
|
#-------------------------------------------------------------------------#
|
39
59
|
|
data/lib/cocoapods/sandbox.rb
CHANGED
@@ -354,6 +354,18 @@ module Pod
|
|
354
354
|
checkout_sources[root_name] = source
|
355
355
|
end
|
356
356
|
|
357
|
+
# Removes the checkout source of a Pod.
|
358
|
+
#
|
359
|
+
# @param [String] name
|
360
|
+
# The name of the Pod.
|
361
|
+
#
|
362
|
+
# @return [void]
|
363
|
+
#
|
364
|
+
def remove_checkout_source(name)
|
365
|
+
root_name = Specification.root_name(name)
|
366
|
+
checkout_sources.delete(root_name)
|
367
|
+
end
|
368
|
+
|
357
369
|
# @return [Hash{String=>Hash}] The options necessary to recreate the exact
|
358
370
|
# checkout of a given Pod grouped by its name.
|
359
371
|
#
|
@@ -12,7 +12,7 @@ module Pod
|
|
12
12
|
GLOB_PATTERNS = {
|
13
13
|
:readme => 'readme{*,.*}'.freeze,
|
14
14
|
:license => 'licen{c,s}e{*,.*}'.freeze,
|
15
|
-
:source_files => '*.{h,hpp,hh,m,mm,c,cpp,swift}'.freeze,
|
15
|
+
:source_files => '*.{h,hpp,tpp,hh,m,mm,c,cpp,swift}'.freeze,
|
16
16
|
:public_header_files => "*{#{HEADER_EXTENSIONS.join(',')}}".freeze,
|
17
17
|
}.freeze
|
18
18
|
|
@@ -57,6 +57,20 @@ module Pod
|
|
57
57
|
source
|
58
58
|
end
|
59
59
|
|
60
|
+
# Returns the source whose {Source#name} or {Source#url} is equal to the
|
61
|
+
# given `name_or_url`.
|
62
|
+
#
|
63
|
+
# @return [Source] The source whose {Source#name} or {Source#url} is equal to the
|
64
|
+
# given `name_or_url`.
|
65
|
+
#
|
66
|
+
# @param [String] name_or_url
|
67
|
+
# The name or the URL of the source.
|
68
|
+
#
|
69
|
+
def source_with_name_or_url(name_or_url)
|
70
|
+
all.find { |s| s.name == name_or_url } ||
|
71
|
+
find_or_create_source_with_url(name_or_url)
|
72
|
+
end
|
73
|
+
|
60
74
|
# @return [Array<Source>] The list of all the sources known to this
|
61
75
|
# installation of CocoaPods.
|
62
76
|
#
|
data/lib/cocoapods/target.rb
CHANGED
@@ -91,13 +91,8 @@ module Pod
|
|
91
91
|
# @return [Boolean] whether the generated target needs to be implemented
|
92
92
|
# as a framework
|
93
93
|
#
|
94
|
-
# @note This applies either if Swift was used by the host, which was checked
|
95
|
-
# eagerly by the analyzer before, or in the given target or its
|
96
|
-
# dependents, which can only be checked after the specs were been
|
97
|
-
# fetched.
|
98
|
-
#
|
99
94
|
def requires_frameworks?
|
100
|
-
host_requires_frameworks? ||
|
95
|
+
host_requires_frameworks? || false
|
101
96
|
end
|
102
97
|
|
103
98
|
#-------------------------------------------------------------------------#
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -23,7 +23,7 @@ module Pod
|
|
23
23
|
# the Source URLs to use in creating a {Podfile}.
|
24
24
|
#
|
25
25
|
def initialize(spec_or_path, source_urls)
|
26
|
-
@source_urls = source_urls
|
26
|
+
@source_urls = source_urls.map { |url| SourcesManager.source_with_name_or_url(url) }.map(&:url)
|
27
27
|
@linter = Specification::Linter.new(spec_or_path)
|
28
28
|
end
|
29
29
|
|
@@ -183,7 +183,7 @@ module Pod
|
|
183
183
|
# @return [Pathname] the temporary directory used by the linter.
|
184
184
|
#
|
185
185
|
def validation_dir
|
186
|
-
Pathname
|
186
|
+
Pathname(Dir.tmpdir) + 'CocoaPods/Lint'
|
187
187
|
end
|
188
188
|
|
189
189
|
#-------------------------------------------------------------------------#
|
@@ -310,6 +310,11 @@ module Pod
|
|
310
310
|
installer.install!
|
311
311
|
|
312
312
|
file_accessors = installer.aggregate_targets.map do |target|
|
313
|
+
if target.pod_targets.any?(&:uses_swift?) && consumer.platform_name == :ios &&
|
314
|
+
(deployment_target.nil? || Version.new(deployment_target).major < 8)
|
315
|
+
error('swift', 'Swift support uses dynamic frameworks and is therefore only supported on iOS > 8.')
|
316
|
+
end
|
317
|
+
|
313
318
|
target.pod_targets.map(&:file_accessors)
|
314
319
|
end.flatten
|
315
320
|
|
@@ -473,14 +478,14 @@ module Pod
|
|
473
478
|
# @note The generated podfile takes into account whether the linter is
|
474
479
|
# in local mode.
|
475
480
|
#
|
476
|
-
def podfile_from_spec(platform_name, deployment_target, use_frameworks =
|
481
|
+
def podfile_from_spec(platform_name, deployment_target, use_frameworks = true)
|
477
482
|
name = subspec_name ? subspec_name : spec.name
|
478
483
|
podspec = file.realpath
|
479
484
|
local = local?
|
480
485
|
urls = source_urls
|
481
486
|
podfile = Pod::Podfile.new do
|
482
487
|
urls.each { |u| source(u) }
|
483
|
-
use_frameworks!(use_frameworks)
|
488
|
+
use_frameworks!(use_frameworks)
|
484
489
|
platform(platform_name, deployment_target)
|
485
490
|
if local
|
486
491
|
pod name, :path => podspec.dirname.to_s
|
@@ -504,13 +509,13 @@ module Pod
|
|
504
509
|
def parse_xcodebuild_output(output)
|
505
510
|
lines = output.split("\n")
|
506
511
|
selected_lines = lines.select do |l|
|
507
|
-
l.include?('error: ') &&
|
512
|
+
l.include?('error: ') && (l !~ /frameworks only run on iOS 8/) &&
|
508
513
|
(l !~ /errors? generated\./) && (l !~ /error: \(null\)/) ||
|
509
514
|
l.include?('warning: ') && (l !~ /warnings? generated\./) ||
|
510
515
|
l.include?('note: ') && (l !~ /expanded from macro/)
|
511
516
|
end
|
512
517
|
selected_lines.map do |l|
|
513
|
-
new = l.gsub(%r{/
|
518
|
+
new = l.gsub(%r{#{validation_dir}/Pods/}, '')
|
514
519
|
new.gsub!(/^ */, ' ')
|
515
520
|
end
|
516
521
|
end
|
@@ -519,11 +524,12 @@ module Pod
|
|
519
524
|
# returns its output (both STDOUT and STDERR).
|
520
525
|
#
|
521
526
|
def xcodebuild
|
522
|
-
|
523
|
-
|
527
|
+
command = 'xcodebuild clean build -target Pods CODE_SIGN_IDENTITY=-'
|
528
|
+
command << ' -sdk iphonesimulator' if consumer.platform_name == :ios
|
529
|
+
output, status = _xcodebuild "#{command} 2>&1"
|
524
530
|
|
525
|
-
unless
|
526
|
-
message = 'Returned
|
531
|
+
unless status.success?
|
532
|
+
message = 'Returned an unsuccessful exit code.'
|
527
533
|
message += ' You can use `--verbose` for more information.' unless config.verbose?
|
528
534
|
error('xcodebuild', message)
|
529
535
|
end
|
@@ -531,6 +537,17 @@ module Pod
|
|
531
537
|
output
|
532
538
|
end
|
533
539
|
|
540
|
+
# Executes the given command in the current working directory.
|
541
|
+
#
|
542
|
+
# @return [(String, Status)] The output of the given command and its
|
543
|
+
# resulting status.
|
544
|
+
#
|
545
|
+
def _xcodebuild(command)
|
546
|
+
UI.puts command if config.verbose
|
547
|
+
output = `#{command}`
|
548
|
+
[output, $?]
|
549
|
+
end
|
550
|
+
|
534
551
|
#-------------------------------------------------------------------------#
|
535
552
|
end
|
536
553
|
end
|
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.36.0.
|
4
|
+
version: 0.36.0.rc.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cocoapods-core
|
@@ -17,222 +17,222 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.36.0.
|
20
|
+
version: 0.36.0.rc.1
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.36.0.
|
27
|
+
version: 0.36.0.rc.1
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: claide
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.8.
|
34
|
+
version: 0.8.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.8.
|
41
|
+
version: 0.8.1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: xcodeproj
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.22.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.22.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: cocoapods-downloader
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 0.8.1
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 0.8.1
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: cocoapods-plugins
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.4.
|
76
|
+
version: 0.4.1
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.4.
|
83
|
+
version: 0.4.1
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: cocoapods-try
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - ~>
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: 0.4.3
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - ~>
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: 0.4.3
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: cocoapods-trunk
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - ~>
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.5.
|
104
|
+
version: 0.5.1
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - ~>
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.5.
|
111
|
+
version: 0.5.1
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: molinillo
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - ~>
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.2.
|
118
|
+
version: 0.2.1
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - ~>
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.2.
|
125
|
+
version: 0.2.1
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: colored
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - ~>
|
130
|
+
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '1.2'
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - ~>
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '1.2'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: escape
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- - ~>
|
144
|
+
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: 0.0.4
|
147
147
|
type: :runtime
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- - ~>
|
151
|
+
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: 0.0.4
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: open4
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- - ~>
|
158
|
+
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '1.3'
|
161
161
|
type: :runtime
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- - ~>
|
165
|
+
- - "~>"
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '1.3'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: activesupport
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
|
-
- -
|
172
|
+
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: 3.2.15
|
175
175
|
type: :runtime
|
176
176
|
prerelease: false
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: 3.2.15
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
183
|
name: nap
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
|
-
- - ~>
|
186
|
+
- - "~>"
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0.8'
|
189
189
|
type: :runtime
|
190
190
|
prerelease: false
|
191
191
|
version_requirements: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
|
-
- - ~>
|
193
|
+
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0.8'
|
196
196
|
- !ruby/object:Gem::Dependency
|
197
197
|
name: bundler
|
198
198
|
requirement: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
|
-
- - ~>
|
200
|
+
- - "~>"
|
201
201
|
- !ruby/object:Gem::Version
|
202
202
|
version: '1.3'
|
203
203
|
type: :development
|
204
204
|
prerelease: false
|
205
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- - ~>
|
207
|
+
- - "~>"
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '1.3'
|
210
210
|
- !ruby/object:Gem::Dependency
|
211
211
|
name: rake
|
212
212
|
requirement: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
|
-
- -
|
214
|
+
- - ">="
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
type: :development
|
218
218
|
prerelease: false
|
219
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
|
-
- -
|
221
|
+
- - ">="
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
- !ruby/object:Gem::Dependency
|
225
225
|
name: bacon
|
226
226
|
requirement: !ruby/object:Gem::Requirement
|
227
227
|
requirements:
|
228
|
-
- - ~>
|
228
|
+
- - "~>"
|
229
229
|
- !ruby/object:Gem::Version
|
230
230
|
version: '1.1'
|
231
231
|
type: :development
|
232
232
|
prerelease: false
|
233
233
|
version_requirements: !ruby/object:Gem::Requirement
|
234
234
|
requirements:
|
235
|
-
- - ~>
|
235
|
+
- - "~>"
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '1.1'
|
238
238
|
description: |-
|
@@ -250,40 +250,46 @@ executables:
|
|
250
250
|
extensions: []
|
251
251
|
extra_rdoc_files: []
|
252
252
|
files:
|
253
|
+
- CHANGELOG.md
|
254
|
+
- LICENSE
|
255
|
+
- README.md
|
256
|
+
- bin/pod
|
257
|
+
- bin/sandbox-pod
|
258
|
+
- lib/cocoapods.rb
|
259
|
+
- lib/cocoapods/command.rb
|
253
260
|
- lib/cocoapods/command/init.rb
|
254
261
|
- lib/cocoapods/command/inter_process_communication.rb
|
255
262
|
- lib/cocoapods/command/lib.rb
|
256
263
|
- lib/cocoapods/command/list.rb
|
257
264
|
- lib/cocoapods/command/outdated.rb
|
258
265
|
- lib/cocoapods/command/project.rb
|
266
|
+
- lib/cocoapods/command/repo.rb
|
259
267
|
- lib/cocoapods/command/repo/add.rb
|
260
268
|
- lib/cocoapods/command/repo/lint.rb
|
261
269
|
- lib/cocoapods/command/repo/list.rb
|
262
270
|
- lib/cocoapods/command/repo/push.rb
|
263
271
|
- lib/cocoapods/command/repo/remove.rb
|
264
272
|
- lib/cocoapods/command/repo/update.rb
|
265
|
-
- lib/cocoapods/command/repo.rb
|
266
273
|
- lib/cocoapods/command/search.rb
|
267
274
|
- lib/cocoapods/command/setup.rb
|
275
|
+
- lib/cocoapods/command/spec.rb
|
268
276
|
- lib/cocoapods/command/spec/cat.rb
|
269
277
|
- lib/cocoapods/command/spec/create.rb
|
270
278
|
- lib/cocoapods/command/spec/edit.rb
|
271
279
|
- lib/cocoapods/command/spec/lint.rb
|
272
280
|
- lib/cocoapods/command/spec/which.rb
|
273
|
-
- lib/cocoapods/command/spec.rb
|
274
|
-
- lib/cocoapods/command.rb
|
275
281
|
- lib/cocoapods/config.rb
|
276
282
|
- lib/cocoapods/downloader.rb
|
277
283
|
- lib/cocoapods/executable.rb
|
284
|
+
- lib/cocoapods/external_sources.rb
|
278
285
|
- lib/cocoapods/external_sources/abstract_external_source.rb
|
279
286
|
- lib/cocoapods/external_sources/downloader_source.rb
|
280
287
|
- lib/cocoapods/external_sources/path_source.rb
|
281
288
|
- lib/cocoapods/external_sources/podspec_source.rb
|
282
|
-
- lib/cocoapods/external_sources.rb
|
283
289
|
- lib/cocoapods/gem_version.rb
|
290
|
+
- lib/cocoapods/generator/acknowledgements.rb
|
284
291
|
- lib/cocoapods/generator/acknowledgements/markdown.rb
|
285
292
|
- lib/cocoapods/generator/acknowledgements/plist.rb
|
286
|
-
- lib/cocoapods/generator/acknowledgements.rb
|
287
293
|
- lib/cocoapods/generator/bridge_support.rb
|
288
294
|
- lib/cocoapods/generator/copy_resources_script.rb
|
289
295
|
- lib/cocoapods/generator/dummy_source.rb
|
@@ -294,50 +300,44 @@ files:
|
|
294
300
|
- lib/cocoapods/generator/prefix_header.rb
|
295
301
|
- lib/cocoapods/generator/target_environment_header.rb
|
296
302
|
- lib/cocoapods/generator/umbrella_header.rb
|
303
|
+
- lib/cocoapods/generator/xcconfig.rb
|
297
304
|
- lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb
|
298
305
|
- lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb
|
299
306
|
- lib/cocoapods/generator/xcconfig/public_pod_xcconfig.rb
|
300
307
|
- lib/cocoapods/generator/xcconfig/xcconfig_helper.rb
|
301
|
-
- lib/cocoapods/generator/xcconfig.rb
|
302
308
|
- lib/cocoapods/hooks/installer_representation.rb
|
303
309
|
- lib/cocoapods/hooks/library_representation.rb
|
304
310
|
- lib/cocoapods/hooks/pod_representation.rb
|
305
311
|
- lib/cocoapods/hooks_manager.rb
|
312
|
+
- lib/cocoapods/installer.rb
|
313
|
+
- lib/cocoapods/installer/analyzer.rb
|
306
314
|
- lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb
|
307
315
|
- lib/cocoapods/installer/analyzer/sandbox_analyzer.rb
|
308
|
-
- lib/cocoapods/installer/analyzer.rb
|
309
316
|
- lib/cocoapods/installer/file_references_installer.rb
|
310
317
|
- lib/cocoapods/installer/hooks_context.rb
|
311
318
|
- lib/cocoapods/installer/migrator.rb
|
312
319
|
- lib/cocoapods/installer/pod_source_installer.rb
|
320
|
+
- lib/cocoapods/installer/target_installer.rb
|
313
321
|
- lib/cocoapods/installer/target_installer/aggregate_target_installer.rb
|
314
322
|
- lib/cocoapods/installer/target_installer/pod_target_installer.rb
|
315
|
-
- lib/cocoapods/installer/target_installer.rb
|
316
|
-
- lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
|
317
|
-
- lib/cocoapods/installer/user_project_integrator/target_integrator.rb
|
318
323
|
- lib/cocoapods/installer/user_project_integrator.rb
|
319
|
-
- lib/cocoapods/installer.rb
|
324
|
+
- lib/cocoapods/installer/user_project_integrator/target_integrator.rb
|
325
|
+
- lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
|
320
326
|
- lib/cocoapods/open_uri.rb
|
321
327
|
- lib/cocoapods/project.rb
|
322
|
-
- lib/cocoapods/resolver/lazy_specification.rb
|
323
328
|
- lib/cocoapods/resolver.rb
|
329
|
+
- lib/cocoapods/resolver/lazy_specification.rb
|
330
|
+
- lib/cocoapods/sandbox.rb
|
324
331
|
- lib/cocoapods/sandbox/file_accessor.rb
|
325
332
|
- lib/cocoapods/sandbox/headers_store.rb
|
326
333
|
- lib/cocoapods/sandbox/path_list.rb
|
327
|
-
- lib/cocoapods/sandbox.rb
|
328
334
|
- lib/cocoapods/sources_manager.rb
|
335
|
+
- lib/cocoapods/target.rb
|
329
336
|
- lib/cocoapods/target/aggregate_target.rb
|
330
337
|
- lib/cocoapods/target/pod_target.rb
|
331
|
-
- lib/cocoapods/target.rb
|
332
|
-
- lib/cocoapods/user_interface/error_report.rb
|
333
338
|
- lib/cocoapods/user_interface.rb
|
339
|
+
- lib/cocoapods/user_interface/error_report.rb
|
334
340
|
- lib/cocoapods/validator.rb
|
335
|
-
- lib/cocoapods.rb
|
336
|
-
- bin/pod
|
337
|
-
- bin/sandbox-pod
|
338
|
-
- README.md
|
339
|
-
- LICENSE
|
340
|
-
- CHANGELOG.md
|
341
341
|
homepage: https://github.com/CocoaPods/CocoaPods
|
342
342
|
licenses:
|
343
343
|
- MIT
|
@@ -348,19 +348,18 @@ require_paths:
|
|
348
348
|
- lib
|
349
349
|
required_ruby_version: !ruby/object:Gem::Requirement
|
350
350
|
requirements:
|
351
|
-
- -
|
351
|
+
- - ">="
|
352
352
|
- !ruby/object:Gem::Version
|
353
353
|
version: 2.0.0
|
354
354
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
355
355
|
requirements:
|
356
|
-
- -
|
356
|
+
- - ">="
|
357
357
|
- !ruby/object:Gem::Version
|
358
358
|
version: '0'
|
359
359
|
requirements: []
|
360
360
|
rubyforge_project:
|
361
|
-
rubygems_version: 2.
|
361
|
+
rubygems_version: 2.4.5
|
362
362
|
signing_key:
|
363
363
|
specification_version: 3
|
364
364
|
summary: The Cocoa library package manager.
|
365
365
|
test_files: []
|
366
|
-
has_rdoc:
|