cocoapods 0.37.1 → 0.37.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/lib/cocoapods/command/outdated.rb +2 -0
- data/lib/cocoapods/command/repo/lint.rb +2 -0
- data/lib/cocoapods/command/repo/push.rb +9 -3
- data/lib/cocoapods/command/spec/edit.rb +7 -0
- data/lib/cocoapods/config.rb +12 -0
- data/lib/cocoapods/downloader/cache.rb +8 -3
- data/lib/cocoapods/downloader/request.rb +5 -0
- data/lib/cocoapods/executable.rb +9 -1
- data/lib/cocoapods/external_sources.rb +13 -0
- data/lib/cocoapods/external_sources/abstract_external_source.rb +8 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +7 -3
- data/lib/cocoapods/generator/header.rb +2 -0
- data/lib/cocoapods/generator/info_plist_file.rb +2 -0
- data/lib/cocoapods/generator/module_map.rb +5 -3
- data/lib/cocoapods/generator/prefix_header.rb +2 -0
- data/lib/cocoapods/generator/target_environment_header.rb +1 -4
- data/lib/cocoapods/generator/umbrella_header.rb +2 -0
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +3 -1
- data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +2 -0
- data/lib/cocoapods/generator/xcconfig/public_pod_xcconfig.rb +2 -0
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +14 -7
- data/lib/cocoapods/hooks/installer_representation.rb +2 -0
- data/lib/cocoapods/hooks/library_representation.rb +4 -2
- data/lib/cocoapods/hooks/pod_representation.rb +6 -6
- data/lib/cocoapods/hooks_manager.rb +2 -0
- data/lib/cocoapods/installer.rb +43 -2
- data/lib/cocoapods/installer/analyzer.rb +16 -3
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +3 -1
- data/lib/cocoapods/installer/file_references_installer.rb +3 -1
- data/lib/cocoapods/installer/hooks_context.rb +9 -0
- data/lib/cocoapods/installer/migrator.rb +22 -1
- data/lib/cocoapods/installer/pod_source_installer.rb +16 -8
- data/lib/cocoapods/installer/pod_source_preparer.rb +2 -0
- data/lib/cocoapods/installer/user_project_integrator.rb +4 -2
- data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +6 -2
- data/lib/cocoapods/open_uri.rb +8 -0
- data/lib/cocoapods/project.rb +3 -1
- data/lib/cocoapods/resolver.rb +10 -10
- data/lib/cocoapods/sandbox.rb +4 -0
- data/lib/cocoapods/sandbox/file_accessor.rb +3 -1
- data/lib/cocoapods/sandbox/headers_store.rb +4 -4
- data/lib/cocoapods/sandbox/path_list.rb +25 -6
- data/lib/cocoapods/sources_manager.rb +3 -1
- data/lib/cocoapods/target.rb +1 -1
- data/lib/cocoapods/target/aggregate_target.rb +8 -2
- data/lib/cocoapods/user_interface.rb +62 -0
- data/lib/cocoapods/validator.rb +6 -2
- metadata +34 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ed679b638bf5ed300ac3daccdab5a2a743e05fd
|
4
|
+
data.tar.gz: dc94976d0009a55f4ddda7263b22bb6d911b6f41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a898eb51485877f897b2356dcfdd77b8cfe730c7545b464a08a5fae673e0643f5fab8ca68d9ffdc9bb5ff22096767379d5c20213237c0d9f1ab34eda4dbbcab
|
7
|
+
data.tar.gz: 76ee168bc5a7100dac38cc99e61418c9f6e6a1b43f35c4302d59e1b3af7cf3bd9549e0fedc15ad81574519aa4a65b60fbedac5a32772ff9ce47855b706220990
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,35 @@ 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.37.2
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Schemes of development pods will now be shared.
|
12
|
+
[Boris Bügling](https://github.com/neonichu)
|
13
|
+
[#3600](https://github.com/CocoaPods/CocoaPods/issues/3600)
|
14
|
+
|
15
|
+
* Recognizes incomplete cache when the original download of a pod was
|
16
|
+
interrupted.
|
17
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
18
|
+
[#3561](https://github.com/CocoaPods/CocoaPods/issues/3561)
|
19
|
+
|
20
|
+
* Allow opting out of pod source locking, meaning `pod try` yields editable
|
21
|
+
projects.
|
22
|
+
[Samuel Giddins](https://github.com/segiddins)
|
23
|
+
[cocoapods-try#31](https://github.com/CocoaPods/cocoapods-try/issues/31)
|
24
|
+
|
25
|
+
##### Bug Fixes
|
26
|
+
|
27
|
+
* `pod repo push` will now find and push JSON podspecs.
|
28
|
+
[#3494](https://github.com/CocoaPods/CocoaPods/issues/3494)
|
29
|
+
[Kyle Fuller](https://github.com/kylef)
|
30
|
+
|
31
|
+
* Flush stdin/stderr and wait a bit in `executable`.
|
32
|
+
[Boris Bügling](https://github.com/neonichu)
|
33
|
+
[#3500](https://github.com/CocoaPods/CocoaPods/issues/3500)
|
34
|
+
|
35
|
+
|
7
36
|
## 0.37.1
|
8
37
|
|
9
38
|
##### Bug Fixes
|
@@ -190,9 +190,15 @@ module Pod
|
|
190
190
|
# @return [Array<Pathname>] The path of the specifications to push.
|
191
191
|
#
|
192
192
|
def podspec_files
|
193
|
-
|
194
|
-
|
195
|
-
|
193
|
+
if @podspec
|
194
|
+
path = Pathname(@podspec)
|
195
|
+
raise Informative, "Couldn't find #{@podspec}" unless path.exist?
|
196
|
+
[path]
|
197
|
+
else
|
198
|
+
files = Pathname.glob('*.podspec{,.json}')
|
199
|
+
raise Informative, "Couldn't find any podspec files in current directory" if files.empty?
|
200
|
+
files
|
201
|
+
end
|
196
202
|
end
|
197
203
|
|
198
204
|
# @return [Integer] The number of the podspec files to push.
|
@@ -48,7 +48,14 @@ module Pod
|
|
48
48
|
raise Informative, "#{ filepath } doesn't exist."
|
49
49
|
end
|
50
50
|
|
51
|
+
# Looks up an executable in the search paths
|
52
|
+
#
|
53
|
+
# @note
|
51
54
|
# Thank you homebrew
|
55
|
+
#
|
56
|
+
# @param [String] cmd
|
57
|
+
# the executable to look up
|
58
|
+
#
|
52
59
|
def which(cmd)
|
53
60
|
dir = ENV['PATH'].split(':').find { |p| File.executable? File.join(p, cmd) }
|
54
61
|
Pathname.new(File.join(dir, cmd)) unless dir.nil?
|
data/lib/cocoapods/config.rb
CHANGED
@@ -19,6 +19,7 @@ module Pod
|
|
19
19
|
|
20
20
|
:clean => true,
|
21
21
|
:integrate_targets => true,
|
22
|
+
:lock_pod_source => true,
|
22
23
|
:new_version_message => ENV['COCOAPODS_SKIP_UPDATE_MESSAGE'].nil?,
|
23
24
|
|
24
25
|
:cache_root => Pathname.new(Dir.home) + 'Library/Caches/CocoaPods',
|
@@ -27,6 +28,11 @@ module Pod
|
|
27
28
|
# Applies the given changes to the config for the duration of the given
|
28
29
|
# block.
|
29
30
|
#
|
31
|
+
# @param [Hash<#to_sym,Object>] changes
|
32
|
+
# the changes to merge temporarily with the current config
|
33
|
+
#
|
34
|
+
# @yield [] is called while the changes are applied
|
35
|
+
#
|
30
36
|
def with_changes(changes)
|
31
37
|
old = {}
|
32
38
|
changes.keys.each do |key|
|
@@ -71,6 +77,12 @@ module Pod
|
|
71
77
|
attr_accessor :clean
|
72
78
|
alias_method :clean?, :clean
|
73
79
|
|
80
|
+
# @return [Bool] Whether the installer should remove write permissions for
|
81
|
+
# installed pod source files after the installation.
|
82
|
+
#
|
83
|
+
attr_accessor :lock_pod_source
|
84
|
+
alias_method :lock_pod_source?, :lock_pod_source
|
85
|
+
|
74
86
|
# @return [Bool] Whether CocoaPods should integrate a user target and build
|
75
87
|
# the workspace or just create the Pods project.
|
76
88
|
#
|
@@ -12,6 +12,8 @@ module Pod
|
|
12
12
|
#
|
13
13
|
attr_reader :root
|
14
14
|
|
15
|
+
# Initialize a new instance
|
16
|
+
#
|
15
17
|
# @param [Pathname,String] root
|
16
18
|
# see {#root}
|
17
19
|
#
|
@@ -74,9 +76,10 @@ module Pod
|
|
74
76
|
# was found in the download cache.
|
75
77
|
#
|
76
78
|
def cached_pod(request)
|
79
|
+
cached_spec = cached_spec(request)
|
77
80
|
path = path_for_pod(request)
|
78
|
-
|
79
|
-
|
81
|
+
return unless cached_spec && path.directory?
|
82
|
+
spec = request.spec || cached_spec
|
80
83
|
Response.new(path, spec, request.params)
|
81
84
|
end
|
82
85
|
|
@@ -89,6 +92,8 @@ module Pod
|
|
89
92
|
def cached_spec(request)
|
90
93
|
path = path_for_spec(request)
|
91
94
|
path.file? && Specification.from_file(path)
|
95
|
+
rescue JSON::ParserError
|
96
|
+
nil
|
92
97
|
end
|
93
98
|
|
94
99
|
# @param [Request] request
|
@@ -127,7 +132,7 @@ module Pod
|
|
127
132
|
tmpdir = Pathname(Dir.mktmpdir)
|
128
133
|
blk.call(tmpdir)
|
129
134
|
ensure
|
130
|
-
FileUtils.remove_entry(tmpdir) if tmpdir.exist?
|
135
|
+
FileUtils.remove_entry(tmpdir) if tmpdir && tmpdir.exist?
|
131
136
|
end
|
132
137
|
|
133
138
|
# Copies the `source` directory to `destination`, cleaning the directory
|
@@ -28,6 +28,8 @@ module Pod
|
|
28
28
|
attr_reader :head
|
29
29
|
alias_method :head?, :head
|
30
30
|
|
31
|
+
# Initialize a new instance
|
32
|
+
#
|
31
33
|
# @param [Specification,Nil] spec
|
32
34
|
# see {#spec}
|
33
35
|
#
|
@@ -59,6 +61,9 @@ module Pod
|
|
59
61
|
# @param [Hash<#to_s, #to_s>] params
|
60
62
|
# the download parameters of the pod being downloaded.
|
61
63
|
#
|
64
|
+
# @param [Specification] spec
|
65
|
+
# the specification of the pod being downloaded.
|
66
|
+
#
|
62
67
|
# @return [String] The slug used to store the files resulting from this
|
63
68
|
# download request.
|
64
69
|
#
|
data/lib/cocoapods/executable.rb
CHANGED
@@ -83,7 +83,13 @@ module Pod
|
|
83
83
|
Thread.new { while s = o.gets; stdout << s; end }
|
84
84
|
Thread.new { while s = e.gets; stderr << s; end }
|
85
85
|
i.close
|
86
|
-
t.value
|
86
|
+
status = t.value
|
87
|
+
|
88
|
+
o.flush
|
89
|
+
e.flush
|
90
|
+
sleep(0.1)
|
91
|
+
|
92
|
+
status
|
87
93
|
end
|
88
94
|
end
|
89
95
|
|
@@ -101,6 +107,8 @@ module Pod
|
|
101
107
|
#
|
102
108
|
attr_accessor :io
|
103
109
|
|
110
|
+
# Init a new Indenter
|
111
|
+
#
|
104
112
|
# @param [IO] io @see io
|
105
113
|
#
|
106
114
|
def initialize(io = nil)
|
@@ -8,6 +8,14 @@ module Pod
|
|
8
8
|
# source.
|
9
9
|
#
|
10
10
|
module ExternalSources
|
11
|
+
# Instantiate a matching {AbstractExternalSource} for a given dependency.
|
12
|
+
#
|
13
|
+
# @param [Dependency] dependency
|
14
|
+
# the dependency
|
15
|
+
#
|
16
|
+
# @param [String] podfile_path
|
17
|
+
# @see AbstractExternalSource#podfile_path
|
18
|
+
#
|
11
19
|
# @return [AbstractExternalSource] an initialized instance of the concrete
|
12
20
|
# external source class associated with the option specified in the
|
13
21
|
# hash.
|
@@ -26,6 +34,11 @@ module Pod
|
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
37
|
+
# Get the class to represent the defined source type of a dependency
|
38
|
+
#
|
39
|
+
# @param [Array<Symbol>] params
|
40
|
+
# the source params of the dependency
|
41
|
+
#
|
29
42
|
# @return [Class]
|
30
43
|
#
|
31
44
|
def self.concrete_class_from_params(params)
|
@@ -17,6 +17,8 @@ module Pod
|
|
17
17
|
#
|
18
18
|
attr_reader :podfile_path
|
19
19
|
|
20
|
+
# Initialize a new instance
|
21
|
+
#
|
20
22
|
# @param [String] name @see name
|
21
23
|
# @param [Hash] params @see params
|
22
24
|
# @param [String] podfile_path @see podfile_path
|
@@ -41,7 +43,7 @@ module Pod
|
|
41
43
|
|
42
44
|
# Fetches the external source from the remote according to the params.
|
43
45
|
#
|
44
|
-
# @param [Sandbox]
|
46
|
+
# @param [Sandbox] _sandbox
|
45
47
|
# the sandbox where the specification should be stored.
|
46
48
|
#
|
47
49
|
# @return [void]
|
@@ -58,6 +60,11 @@ module Pod
|
|
58
60
|
|
59
61
|
protected
|
60
62
|
|
63
|
+
# Return the normalized path for a podspec for a relative declared path.
|
64
|
+
#
|
65
|
+
# @param [String] declared_path
|
66
|
+
# The path declared in the podfile.
|
67
|
+
#
|
61
68
|
# @return [String] The uri of the podspec appending the name of the file
|
62
69
|
# and expanding it if necessary.
|
63
70
|
#
|
@@ -13,9 +13,13 @@ module Pod
|
|
13
13
|
#
|
14
14
|
attr_reader :platform
|
15
15
|
|
16
|
-
#
|
17
|
-
#
|
18
|
-
# @param [
|
16
|
+
# Initialize a new instance
|
17
|
+
#
|
18
|
+
# @param [Hash<String, Array<String>>] resources_by_config
|
19
|
+
# @see resources_by_config
|
20
|
+
#
|
21
|
+
# @param [Platform] platform
|
22
|
+
# @see platform
|
19
23
|
#
|
20
24
|
def initialize(resources_by_config, platform)
|
21
25
|
@resources_by_config = resources_by_config
|
@@ -6,15 +6,17 @@ module Pod
|
|
6
6
|
# with existing headers of the podspec.
|
7
7
|
#
|
8
8
|
class ModuleMap
|
9
|
-
# @return [
|
9
|
+
# @return [PodTarget] the target represented by this Info.plist.
|
10
10
|
#
|
11
11
|
attr_reader :target
|
12
12
|
|
13
|
-
# @return [Array] the private headers of the module
|
13
|
+
# @return [Array<#to_s>] the private headers of the module
|
14
14
|
#
|
15
15
|
attr_accessor :private_headers
|
16
16
|
|
17
|
-
#
|
17
|
+
# Initialize a new instance
|
18
|
+
#
|
19
|
+
# @param [PodTarget] target @see target
|
18
20
|
#
|
19
21
|
def initialize(target)
|
20
22
|
@target = target
|
@@ -34,10 +34,7 @@ module Pod
|
|
34
34
|
@specs_by_configuration = specs_by_configuration
|
35
35
|
end
|
36
36
|
|
37
|
-
# Generates
|
38
|
-
#
|
39
|
-
# @param [Pathname] pathname
|
40
|
-
# The path where to save the generated file.
|
37
|
+
# Generates the file contents.
|
41
38
|
#
|
42
39
|
# @return [void]
|
43
40
|
#
|
@@ -8,6 +8,8 @@ module Pod
|
|
8
8
|
#
|
9
9
|
attr_reader :target
|
10
10
|
|
11
|
+
# Initialize a new instance
|
12
|
+
#
|
11
13
|
# @param [Target] target @see target
|
12
14
|
#
|
13
15
|
# @param [String] configuration_name
|
@@ -26,7 +28,7 @@ module Pod
|
|
26
28
|
# Generates and saves the xcconfig to the given path.
|
27
29
|
#
|
28
30
|
# @param [Pathname] path
|
29
|
-
# the path where the
|
31
|
+
# the path where the xcconfig should be stored.
|
30
32
|
#
|
31
33
|
# @return [void]
|
32
34
|
#
|
@@ -11,7 +11,8 @@ module Pod
|
|
11
11
|
# @param [Array<String>] strings
|
12
12
|
# a list of strings.
|
13
13
|
#
|
14
|
-
# @param [String]
|
14
|
+
# @param [String] prefix
|
15
|
+
# optional prefix, such as a flag or option.
|
15
16
|
#
|
16
17
|
# @return [String] the resulting string.
|
17
18
|
#
|
@@ -20,6 +21,12 @@ module Pod
|
|
20
21
|
strings.sort.map { |s| %W( #{prefix}"#{s}" ) }.join(' ')
|
21
22
|
end
|
22
23
|
|
24
|
+
# Return the default linker flags
|
25
|
+
#
|
26
|
+
# @param [Target] target
|
27
|
+
# the target, which is used to check if the ARC compatibility
|
28
|
+
# flag is required.
|
29
|
+
#
|
23
30
|
# @return [String] the default linker flags. `-ObjC` is always included
|
24
31
|
# while `-fobjc-arc` is included only if requested in the
|
25
32
|
# Podfile.
|
@@ -35,7 +42,7 @@ module Pod
|
|
35
42
|
|
36
43
|
# Configures the given Xcconfig
|
37
44
|
#
|
38
|
-
# @param [PodTarget]
|
45
|
+
# @param [PodTarget] target
|
39
46
|
# The pod target, which holds the list of +Spec::FileAccessor+.
|
40
47
|
#
|
41
48
|
# @param [Xcodeproj::Config] xcconfig
|
@@ -70,10 +77,10 @@ module Pod
|
|
70
77
|
add_developers_frameworks_if_needed(xcconfig, consumer.platform_name)
|
71
78
|
end
|
72
79
|
|
73
|
-
# Configures the given Xcconfig with the
|
80
|
+
# Configures the given Xcconfig with the build settings for the given
|
74
81
|
# framework path.
|
75
82
|
#
|
76
|
-
# @param [
|
83
|
+
# @param [Pathname] framework_path
|
77
84
|
# The path of the framework.
|
78
85
|
#
|
79
86
|
# @param [Xcodeproj::Config] xcconfig
|
@@ -92,11 +99,11 @@ module Pod
|
|
92
99
|
xcconfig.merge!(build_settings)
|
93
100
|
end
|
94
101
|
|
95
|
-
# Configures the given Xcconfig with the
|
102
|
+
# Configures the given Xcconfig with the build settings for the given
|
96
103
|
# library path.
|
97
104
|
#
|
98
|
-
# @param [
|
99
|
-
# The path of the
|
105
|
+
# @param [Pathname] library_path
|
106
|
+
# The path of the library.
|
100
107
|
#
|
101
108
|
# @param [Xcodeproj::Config] xcconfig
|
102
109
|
# The xcconfig to edit.
|