cocoapods 1.0.0.beta.2 → 1.0.0.beta.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +55 -0
- data/lib/cocoapods/command/init.rb +1 -1
- data/lib/cocoapods/command/inter_process_communication.rb +5 -5
- data/lib/cocoapods/command/project.rb +2 -2
- data/lib/cocoapods/command/repo/add.rb +1 -1
- data/lib/cocoapods/command/repo/lint.rb +1 -1
- data/lib/cocoapods/command/repo/update.rb +1 -1
- data/lib/cocoapods/command/spec/cat.rb +1 -1
- data/lib/cocoapods/command/spec/edit.rb +1 -1
- data/lib/cocoapods/command/spec/lint.rb +2 -2
- data/lib/cocoapods/command/spec/which.rb +1 -1
- data/lib/cocoapods/external_sources/podspec_source.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +2 -2
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +2 -4
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +5 -6
- data/lib/cocoapods/installer.rb +1 -1
- data/lib/cocoapods/installer/analyzer.rb +4 -5
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +1 -1
- data/lib/cocoapods/installer/analyzer/specs_state.rb +21 -13
- data/lib/cocoapods/installer/file_references_installer.rb +12 -9
- data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +12 -1
- data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +2 -2
- data/lib/cocoapods/{open_uri.rb → open-uri.rb} +2 -0
- data/lib/cocoapods/sources_manager.rb +11 -6
- data/lib/cocoapods/validator.rb +2 -2
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04db614d298cf64360e2528b3a6a187fe56fae78
|
4
|
+
data.tar.gz: 4c179f800285b164798be255164b2dd96f8f24f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 370854285b3569c125818e3b905794b5eac5487f2891aa21e19b36139143b9ad0a3e1970eca7ecb6b7b04ba5876460b502c1f65509a1bb3e05eac2ad2fbfbb57
|
7
|
+
data.tar.gz: c5e7ac223cbac6a558528dbc5d43e8e937f04ec2fb667cdb8a9b32c825c1671e86767ddf876c2bc439aa09ea6808d04a4e94b8ad39a58731be7726dd6ddcf41a
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,61 @@ 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.0.0.beta.3 (2016-02-03)
|
8
|
+
|
9
|
+
##### Breaking
|
10
|
+
|
11
|
+
* Rename the `xcodeproj` Podfile directive to `project`.
|
12
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
13
|
+
[Core#298](https://github.com/CocoaPods/Core/issues/298)
|
14
|
+
|
15
|
+
##### Enhancements
|
16
|
+
|
17
|
+
* None.
|
18
|
+
|
19
|
+
##### Bug Fixes
|
20
|
+
|
21
|
+
* Don't try to embed project headers into frameworks.
|
22
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
23
|
+
[#4819](https://github.com/CocoaPods/CocoaPods/issues/4819)
|
24
|
+
|
25
|
+
* Fix a crash in the analyzer when target deduplication is deactivated.
|
26
|
+
[Marius Rackwitz](https://github.com/mrackwitz)
|
27
|
+
[#4751](https://github.com/CocoaPods/CocoaPods/issues/4751)
|
28
|
+
|
29
|
+
* Handle CoreData mapping models with recursive resource globs.
|
30
|
+
[Eric Firestone](https://github.com/efirestone)
|
31
|
+
[#4809](https://github.com/CocoaPods/CocoaPods/pull/4809)
|
32
|
+
|
33
|
+
* Generate valid xcconfig when target name includes spaces.
|
34
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
35
|
+
[#4783](https://github.com/CocoaPods/CocoaPods/issues/4783)
|
36
|
+
|
37
|
+
* Properly add resource files to resources build phase.
|
38
|
+
[Eric Firestone](https://github.com/efirestone)
|
39
|
+
[#4762](https://github.com/CocoaPods/CocoaPods/issues/4762)
|
40
|
+
|
41
|
+
* Fix suggestion of sudo when it actually isn't needed.
|
42
|
+
[Marcel Jackwerth](https://github.com/sirlantis)
|
43
|
+
|
44
|
+
* Set the `TARGET_DEVICE_FAMILY` to support both iPhone and iPad for iOS
|
45
|
+
resource bundle targets.
|
46
|
+
[Andy Rifken](https://github.com/arifken)
|
47
|
+
|
48
|
+
* Share user schemes of `Pods.xcodeproj` after generating deterministic UUIDS.
|
49
|
+
[Samuel Giddins](https://github.com/segiddins)
|
50
|
+
|
51
|
+
* Only attempt to `import` a framework during linting if the pod has source
|
52
|
+
files, and is thus being built by CocoaPods.
|
53
|
+
[Samuel Giddins](https://github.com/segiddins)
|
54
|
+
[#4823](https://github.com/CocoaPods/CocoaPods/issues/4823)
|
55
|
+
|
56
|
+
* Determine whether an external source needs to be fetched when updating a
|
57
|
+
dependency regardless of subspec names.
|
58
|
+
[Samuel Giddins](https://github.com/segiddins)
|
59
|
+
[#4821](https://github.com/CocoaPods/CocoaPods/issues/4821)
|
60
|
+
|
61
|
+
|
7
62
|
## 1.0.0.beta.2 (2016-01-05)
|
8
63
|
|
9
64
|
##### Enhancements
|
@@ -4,7 +4,7 @@ require 'active_support/core_ext/string/strip'
|
|
4
4
|
module Pod
|
5
5
|
class Command
|
6
6
|
class Init < Command
|
7
|
-
self.summary = 'Generate a Podfile for the current directory
|
7
|
+
self.summary = 'Generate a Podfile for the current directory'
|
8
8
|
self.description = <<-DESC
|
9
9
|
Creates a Podfile for the current directory if none currently exists. If
|
10
10
|
an `XCODEPROJ` project file is specified or if there is only a single
|
@@ -11,7 +11,7 @@ module Pod
|
|
11
11
|
#-----------------------------------------------------------------------#
|
12
12
|
|
13
13
|
class Spec < IPC
|
14
|
-
self.summary = 'Converts a podspec to JSON
|
14
|
+
self.summary = 'Converts a podspec to JSON'
|
15
15
|
self.description = 'Converts a podspec to JSON and prints it to STDOUT.'
|
16
16
|
self.arguments = [
|
17
17
|
CLAide::Argument.new('PATH', true),
|
@@ -37,7 +37,7 @@ module Pod
|
|
37
37
|
#-----------------------------------------------------------------------#
|
38
38
|
|
39
39
|
class Podfile < IPC
|
40
|
-
self.summary = 'Converts a Podfile to YAML
|
40
|
+
self.summary = 'Converts a Podfile to YAML'
|
41
41
|
self.description = 'Converts a Podfile to YAML and prints it to STDOUT.'
|
42
42
|
self.arguments = [
|
43
43
|
CLAide::Argument.new('PATH', true),
|
@@ -63,7 +63,7 @@ module Pod
|
|
63
63
|
#-----------------------------------------------------------------------#
|
64
64
|
|
65
65
|
class List < IPC
|
66
|
-
self.summary = 'Lists the specifications known to CocoaPods
|
66
|
+
self.summary = 'Lists the specifications known to CocoaPods'
|
67
67
|
self.description = <<-DESC
|
68
68
|
Prints to STDOUT a YAML dictionary where the keys are the name of the
|
69
69
|
specifications and each corresponding value is a dictionary with
|
@@ -101,7 +101,7 @@ module Pod
|
|
101
101
|
#-----------------------------------------------------------------------#
|
102
102
|
|
103
103
|
class UpdateSearchIndex < IPC
|
104
|
-
self.summary = 'Updates the search index
|
104
|
+
self.summary = 'Updates the search index'
|
105
105
|
self.description = <<-DESC
|
106
106
|
Updates the search index and prints its path to standard output.
|
107
107
|
The search index is a YAML encoded dictionary where the keys
|
@@ -125,7 +125,7 @@ module Pod
|
|
125
125
|
class Repl < IPC
|
126
126
|
END_OF_OUTPUT_SIGNAL = "\n\r"
|
127
127
|
|
128
|
-
self.summary = 'The repl listens to commands on standard input
|
128
|
+
self.summary = 'The repl listens to commands on standard input'
|
129
129
|
self.description = <<-DESC
|
130
130
|
The repl listens to commands on standard input and prints their
|
131
131
|
result to standard output.
|
@@ -81,9 +81,9 @@ module Pod
|
|
81
81
|
|
82
82
|
The Xcode project file should be specified in your `Podfile` like this:
|
83
83
|
|
84
|
-
|
84
|
+
project 'path/to/XcodeProject'
|
85
85
|
|
86
|
-
If no
|
86
|
+
If no project is specified, then a search for an Xcode project will
|
87
87
|
be made. If more than one Xcode project is found, the command will
|
88
88
|
raise an error.
|
89
89
|
|
@@ -2,7 +2,7 @@ module Pod
|
|
2
2
|
class Command
|
3
3
|
class Repo < Command
|
4
4
|
class Lint < Repo
|
5
|
-
self.summary = 'Validates all specs in a repo
|
5
|
+
self.summary = 'Validates all specs in a repo'
|
6
6
|
|
7
7
|
self.description = <<-DESC
|
8
8
|
Lints the spec-repo `NAME`. If a directory is provided it is assumed
|
@@ -2,7 +2,7 @@ module Pod
|
|
2
2
|
class Command
|
3
3
|
class Spec < Command
|
4
4
|
class Lint < Spec
|
5
|
-
self.summary = 'Validates a spec file
|
5
|
+
self.summary = 'Validates a spec file'
|
6
6
|
|
7
7
|
self.description = <<-DESC
|
8
8
|
Validates `NAME.podspec`. If a `DIRECTORY` is provided, it validates
|
@@ -91,7 +91,7 @@ module Pod
|
|
91
91
|
@podspecs_paths << '.' if @podspecs_paths.empty?
|
92
92
|
@podspecs_paths.each do |path|
|
93
93
|
if path =~ %r{https?://}
|
94
|
-
require 'open-uri'
|
94
|
+
require 'cocoapods/open-uri'
|
95
95
|
output_path = podspecs_tmp_dir + File.basename(path)
|
96
96
|
output_path.dirname.mkpath
|
97
97
|
open(path) do |io|
|
@@ -2,7 +2,7 @@ module Pod
|
|
2
2
|
class Command
|
3
3
|
class Spec < Command
|
4
4
|
class Which < Spec
|
5
|
-
self.summary = 'Prints the path of the given spec
|
5
|
+
self.summary = 'Prints the path of the given spec'
|
6
6
|
|
7
7
|
self.description = <<-DESC
|
8
8
|
Prints the path of the .podspec file(s) whose name matches `QUERY`
|
@@ -14,7 +14,7 @@ module Pod
|
|
14
14
|
if podspec_path.exist?
|
15
15
|
store_podspec(sandbox, podspec_path, is_json)
|
16
16
|
else
|
17
|
-
require 'open-uri'
|
17
|
+
require 'cocoapods/open-uri'
|
18
18
|
begin
|
19
19
|
open(podspec_uri) { |io| store_podspec(sandbox, io.read, is_json) }
|
20
20
|
rescue OpenURI::HTTPError => e
|
@@ -102,7 +102,7 @@ module Pod
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
build_settings = {
|
105
|
-
'PODS_FRAMEWORK_BUILD_PATH' => target.scoped_configuration_build_dir,
|
105
|
+
'PODS_FRAMEWORK_BUILD_PATH' => XCConfigHelper.quote([target.scoped_configuration_build_dir]),
|
106
106
|
# Make framework headers discoverable by `import "…"`
|
107
107
|
'OTHER_CFLAGS' => '$(inherited) ' + XCConfigHelper.quote(framework_header_search_paths, '-iquote'),
|
108
108
|
}
|
@@ -113,7 +113,7 @@ module Pod
|
|
113
113
|
build_settings['OTHER_CFLAGS'] += ' ' + XCConfigHelper.quote(library_header_search_paths, '-isystem')
|
114
114
|
end
|
115
115
|
if pod_targets.any? { |t| t.should_build? && t.scoped? }
|
116
|
-
build_settings['FRAMEWORK_SEARCH_PATHS'] = '
|
116
|
+
build_settings['FRAMEWORK_SEARCH_PATHS'] = '$PODS_FRAMEWORK_BUILD_PATH'
|
117
117
|
end
|
118
118
|
build_settings
|
119
119
|
else
|
@@ -58,11 +58,9 @@ module Pod
|
|
58
58
|
@xcconfig = Xcodeproj::Config.new(config)
|
59
59
|
|
60
60
|
if target.requires_frameworks? && target.scoped?
|
61
|
-
# Only quote the FRAMEWORK_SEARCH_PATHS entry, because it’s a setting that takes multiple values.
|
62
|
-
# In addition, quoting CONFIGURATION_BUILD_DIR would make it be interpreted as a relative path.
|
63
61
|
build_settings = {
|
64
|
-
'PODS_FRAMEWORK_BUILD_PATH' => target.configuration_build_dir,
|
65
|
-
'FRAMEWORK_SEARCH_PATHS' => '
|
62
|
+
'PODS_FRAMEWORK_BUILD_PATH' => XCConfigHelper.quote([target.configuration_build_dir]),
|
63
|
+
'FRAMEWORK_SEARCH_PATHS' => '$PODS_FRAMEWORK_BUILD_PATH',
|
66
64
|
'CONFIGURATION_BUILD_DIR' => '$PODS_FRAMEWORK_BUILD_PATH',
|
67
65
|
}
|
68
66
|
@xcconfig.merge!(build_settings)
|
@@ -55,6 +55,11 @@ module Pod
|
|
55
55
|
XCConfigHelper.add_static_dependency_build_settings(target, xcconfig, file_accessor)
|
56
56
|
end
|
57
57
|
XCConfigHelper.add_dynamic_dependency_build_settings(target, xcconfig)
|
58
|
+
if target.requires_frameworks?
|
59
|
+
target.dependent_targets.each do |dependent_target|
|
60
|
+
XCConfigHelper.add_dynamic_dependency_build_settings(dependent_target, xcconfig)
|
61
|
+
end
|
62
|
+
end
|
58
63
|
end
|
59
64
|
|
60
65
|
# Adds build settings for static vendored frameworks and libraries.
|
@@ -86,12 +91,6 @@ module Pod
|
|
86
91
|
# The xcconfig to edit.
|
87
92
|
#
|
88
93
|
def self.add_dynamic_dependency_build_settings(target, xcconfig)
|
89
|
-
if target.requires_frameworks?
|
90
|
-
target.dependent_targets.each do |dependent_target|
|
91
|
-
XCConfigHelper.add_dynamic_dependency_build_settings(dependent_target, xcconfig)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
94
|
target.file_accessors.each do |file_accessor|
|
96
95
|
file_accessor.vendored_dynamic_frameworks.each do |vendored_dynamic_framework|
|
97
96
|
XCConfigHelper.add_framework_build_settings(vendored_dynamic_framework, xcconfig, target.sandbox.root)
|
data/lib/cocoapods/installer.rb
CHANGED
@@ -711,10 +711,10 @@ module Pod
|
|
711
711
|
pods_project.pods.remove_from_project if pods_project.pods.empty?
|
712
712
|
pods_project.development_pods.remove_from_project if pods_project.development_pods.empty?
|
713
713
|
pods_project.sort(:groups_position => :below)
|
714
|
-
pods_project.recreate_user_schemes(false)
|
715
714
|
if installation_options.deterministic_uuids?
|
716
715
|
UI.message('- Generating deterministic UUIDs') { pods_project.predictabilize_uuids }
|
717
716
|
end
|
717
|
+
pods_project.recreate_user_schemes(false)
|
718
718
|
pods_project.save
|
719
719
|
end
|
720
720
|
end
|
@@ -202,7 +202,7 @@ module Pod
|
|
202
202
|
pods_state
|
203
203
|
else
|
204
204
|
state = SpecsState.new
|
205
|
-
state.added.
|
205
|
+
state.added.merge(podfile.dependencies.map(&:root_name))
|
206
206
|
state
|
207
207
|
end
|
208
208
|
end
|
@@ -286,9 +286,8 @@ module Pod
|
|
286
286
|
# @return [Array<PodTarget>]
|
287
287
|
#
|
288
288
|
def generate_pod_targets(specs_by_target)
|
289
|
+
dedupe_cache = {}
|
289
290
|
if installation_options.deduplicate_targets?
|
290
|
-
dedupe_cache = {}
|
291
|
-
|
292
291
|
all_specs = specs_by_target.flat_map do |target_definition, dependent_specs|
|
293
292
|
dependent_specs.group_by(&:root).map do |root_spec, specs|
|
294
293
|
[root_spec, specs, target_definition]
|
@@ -478,8 +477,8 @@ module Pod
|
|
478
477
|
if update_mode == :all
|
479
478
|
deps_to_fetch = deps_with_external_source
|
480
479
|
else
|
481
|
-
deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.
|
482
|
-
deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.
|
480
|
+
deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.root_name) }
|
481
|
+
deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.root_name) }
|
483
482
|
deps_to_fetch += deps_to_fetch_if_needed.select do |dep|
|
484
483
|
sandbox.specification(dep.root_name).nil? ||
|
485
484
|
!dep.external_source[:path].nil? ||
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
1
3
|
module Pod
|
2
4
|
class Installer
|
3
5
|
class Analyzer
|
@@ -17,32 +19,38 @@ module Pod
|
|
17
19
|
# (`:added`, `:removed`, `:changed` or `:unchanged`).
|
18
20
|
#
|
19
21
|
def initialize(pods_by_state = nil)
|
20
|
-
@added =
|
21
|
-
@deleted =
|
22
|
-
@changed =
|
23
|
-
@unchanged =
|
22
|
+
@added = Set.new
|
23
|
+
@deleted = Set.new
|
24
|
+
@changed = Set.new
|
25
|
+
@unchanged = Set.new
|
24
26
|
|
25
27
|
if pods_by_state
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
{
|
29
|
+
:added => :added,
|
30
|
+
:changed => :changed,
|
31
|
+
:removed => :deleted,
|
32
|
+
:unchanged => :unchanged,
|
33
|
+
}.each do |state, spec_state|
|
34
|
+
Array(pods_by_state[state]).each do |name|
|
35
|
+
add_name(name, spec_state)
|
36
|
+
end
|
37
|
+
end
|
30
38
|
end
|
31
39
|
end
|
32
40
|
|
33
|
-
# @return [
|
41
|
+
# @return [Set<String>] the names of the pods that were added.
|
34
42
|
#
|
35
43
|
attr_accessor :added
|
36
44
|
|
37
|
-
# @return [
|
45
|
+
# @return [Set<String>] the names of the pods that were changed.
|
38
46
|
#
|
39
47
|
attr_accessor :changed
|
40
48
|
|
41
|
-
# @return [
|
49
|
+
# @return [Set<String>] the names of the pods that were deleted.
|
42
50
|
#
|
43
51
|
attr_accessor :deleted
|
44
52
|
|
45
|
-
# @return [
|
53
|
+
# @return [Set<String>] the names of the pods that were unchanged.
|
46
54
|
#
|
47
55
|
attr_accessor :unchanged
|
48
56
|
|
@@ -68,7 +76,7 @@ module Pod
|
|
68
76
|
# @return [void]
|
69
77
|
#
|
70
78
|
def add_name(name, state)
|
71
|
-
send(state) << name
|
79
|
+
send(state) << Specification.root_name(name)
|
72
80
|
end
|
73
81
|
end
|
74
82
|
end
|
@@ -199,29 +199,32 @@ module Pod
|
|
199
199
|
lproj_paths = Set.new
|
200
200
|
lproj_paths_with_files = Set.new
|
201
201
|
allowable_paths = paths.select do |path|
|
202
|
-
path_str = path.to_s
|
202
|
+
path_str = path.to_s
|
203
203
|
|
204
204
|
# We add the directory for a Core Data model, but not the items in it.
|
205
|
-
next if path_str =~ /.*\.xcdatamodeld\/.+/
|
205
|
+
next if path_str =~ /.*\.xcdatamodeld\/.+/i
|
206
|
+
|
207
|
+
# We add the directory for a Core Data migration mapping, but not the items in it.
|
208
|
+
next if path_str =~ /.*\.xcmappingmodel\/.+/i
|
206
209
|
|
207
210
|
# We add the directory for an asset catalog, but not the items in it.
|
208
|
-
next if path_str =~ /.*\.xcassets\/.+/
|
211
|
+
next if path_str =~ /.*\.xcassets\/.+/i
|
209
212
|
|
210
|
-
if path_str =~ /\.lproj(\/|$)/
|
213
|
+
if path_str =~ /\.lproj(\/|$)/i
|
211
214
|
# If the element is an .lproj directory then save it and potentially
|
212
215
|
# add it later if we don't find any contained items.
|
213
|
-
if path_str
|
214
|
-
lproj_paths <<
|
216
|
+
if path_str =~ /\.lproj$/i && path.directory?
|
217
|
+
lproj_paths << path
|
215
218
|
next
|
216
219
|
end
|
217
220
|
|
218
221
|
# Collect the paths for the .lproj directories that contain files.
|
219
|
-
lproj_path = /(^.*\.lproj)
|
220
|
-
lproj_paths_with_files << lproj_path
|
222
|
+
lproj_path = /(^.*\.lproj)\/.*/i.match(path_str)[1]
|
223
|
+
lproj_paths_with_files << Pathname(lproj_path)
|
221
224
|
|
222
225
|
# Directories nested within an .lproj directory are added as file
|
223
226
|
# system references so their contained items are not added directly.
|
224
|
-
next if path.dirname.dirname
|
227
|
+
next if path.dirname.dirname == lproj_path
|
225
228
|
end
|
226
229
|
|
227
230
|
true
|
@@ -180,6 +180,17 @@ module Pod
|
|
180
180
|
if target.requires_frameworks? && target.scoped?
|
181
181
|
c.build_settings['CONFIGURATION_BUILD_DIR'] = target.configuration_build_dir
|
182
182
|
end
|
183
|
+
|
184
|
+
# Set the correct device family for this bundle, based on the platform
|
185
|
+
device_family_by_platform = {
|
186
|
+
:ios => '1,2',
|
187
|
+
:tvos => '3',
|
188
|
+
:watchos => '1,2' # The device family for watchOS is 4, but Xcode creates watchkit-compatible bundles as 1,2
|
189
|
+
}
|
190
|
+
|
191
|
+
if family = device_family_by_platform[target.platform.name]
|
192
|
+
c.build_settings['TARGETED_DEVICE_FAMILY'] = family
|
193
|
+
end
|
183
194
|
end
|
184
195
|
end
|
185
196
|
end
|
@@ -338,7 +349,7 @@ module Pod
|
|
338
349
|
'Project'
|
339
350
|
end
|
340
351
|
|
341
|
-
if target.requires_frameworks? && header_mappings_dir
|
352
|
+
if target.requires_frameworks? && header_mappings_dir && acl != 'Project'
|
342
353
|
relative_path = file_ref.real_path.relative_path_from(header_mappings_dir)
|
343
354
|
sub_dir = relative_path.dirname
|
344
355
|
copy_phase_name = "Copy #{sub_dir} #{acl} Headers"
|
data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
CHANGED
@@ -146,7 +146,7 @@ module Pod
|
|
146
146
|
SILENCE_WARNINGS_STRING = '// @COCOAPODS_SILENCE_WARNINGS@ //'
|
147
147
|
def self.xcconfig_includes_target_xcconfig?(base_config_ref, target_config_path)
|
148
148
|
return unless base_config_ref && base_config_ref.real_path.file?
|
149
|
-
regex =
|
149
|
+
regex = %r{
|
150
150
|
^(
|
151
151
|
(\s* # Possible, but unlikely, space before include statement
|
152
152
|
\#include\s+ # Include statement
|
@@ -158,7 +158,7 @@ module Pod
|
|
158
158
|
|
|
159
159
|
(#{Regexp.quote(SILENCE_WARNINGS_STRING)}) # Token to treat xcconfig as good and silence pod install warnings
|
160
160
|
)
|
161
|
-
|
161
|
+
}x
|
162
162
|
base_config_ref.real_path.readlines.find { |line| line =~ regex }
|
163
163
|
end
|
164
164
|
|
@@ -366,23 +366,22 @@ module Pod
|
|
366
366
|
'Update CocoaPods, or checkout the appropriate tag in the repo.'
|
367
367
|
end
|
368
368
|
|
369
|
-
needs_sudo = path_writable?(__FILE__)
|
370
|
-
|
371
369
|
if config.new_version_message? && cocoapods_update?(versions)
|
372
370
|
last = versions['last']
|
373
371
|
rc = Gem::Version.new(last).prerelease?
|
374
|
-
install_message = needs_sudo ? 'sudo ' : ''
|
372
|
+
install_message = needs_sudo? ? 'sudo ' : ''
|
375
373
|
install_message << 'gem install cocoapods'
|
376
374
|
install_message << ' --pre' if rc
|
377
375
|
message = [
|
378
|
-
"CocoaPods #{
|
376
|
+
"CocoaPods #{last} is available.".green,
|
379
377
|
"To update use: `#{install_message}`".green,
|
380
378
|
("[!] This is a test version we'd love you to try.".yellow if rc),
|
381
379
|
("Until we reach version 1.0 the features of CocoaPods can and will change.\n" \
|
382
380
|
'We strongly recommend that you use the latest version at all times.'.yellow unless rc),
|
383
381
|
'',
|
384
|
-
'For more information see https://blog.cocoapods.org'
|
385
|
-
'and the CHANGELOG for this version
|
382
|
+
'For more information, see https://blog.cocoapods.org ' \
|
383
|
+
'and the CHANGELOG for this version at ' \
|
384
|
+
"https://github.com/CocoaPods/CocoaPods/releases/tag/#{last}".green,
|
386
385
|
'',
|
387
386
|
].compact.join("\n")
|
388
387
|
UI.puts("\n#{message}\n")
|
@@ -487,6 +486,12 @@ module Pod
|
|
487
486
|
Pathname(path).dirname.writable?
|
488
487
|
end
|
489
488
|
|
489
|
+
# @return [Bool] Whether `gem install` probably needs `sudo` to succeed.
|
490
|
+
#
|
491
|
+
def needs_sudo?
|
492
|
+
!path_writable?(__FILE__)
|
493
|
+
end
|
494
|
+
|
490
495
|
# @return [Source] The git source with the given name. If no git source
|
491
496
|
# with given name is found it raises.
|
492
497
|
#
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -399,12 +399,12 @@ module Pod
|
|
399
399
|
if language == :swift
|
400
400
|
source_file = validation_dir.+('App/main.swift')
|
401
401
|
source_file.parent.mkpath
|
402
|
-
import_statement = use_frameworks ? "import #{pod_target.product_module_name}\n" : ''
|
402
|
+
import_statement = use_frameworks && pod_target.should_build? ? "import #{pod_target.product_module_name}\n" : ''
|
403
403
|
source_file.open('w') { |f| f << import_statement }
|
404
404
|
else
|
405
405
|
source_file = validation_dir.+('App/main.m')
|
406
406
|
source_file.parent.mkpath
|
407
|
-
import_statement = if use_frameworks
|
407
|
+
import_statement = if use_frameworks && pod_target.should_build?
|
408
408
|
"@import #{pod_target.product_module_name};\n"
|
409
409
|
else
|
410
410
|
header_name = "#{pod_target.product_module_name}/#{pod_target.product_module_name}.h"
|
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.0.0.beta.
|
4
|
+
version: 1.0.0.beta.3
|
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: 2016-
|
14
|
+
date: 2016-02-02 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.0.0.beta.
|
22
|
+
version: 1.0.0.beta.3
|
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.0.0.beta.
|
29
|
+
version: 1.0.0.beta.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,7 +133,7 @@ dependencies:
|
|
133
133
|
requirements:
|
134
134
|
- - '>='
|
135
135
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.0.0.beta.
|
136
|
+
version: 1.0.0.beta.3
|
137
137
|
- - <
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '2.0'
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
requirements:
|
144
144
|
- - '>='
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 1.0.0.beta.
|
146
|
+
version: 1.0.0.beta.3
|
147
147
|
- - <
|
148
148
|
- !ruby/object:Gem::Version
|
149
149
|
version: '2.0'
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
requirements:
|
154
154
|
- - '>='
|
155
155
|
- !ruby/object:Gem::Version
|
156
|
-
version: 1.0.0.beta.
|
156
|
+
version: 1.0.0.beta.2
|
157
157
|
- - <
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '2.0'
|
@@ -163,7 +163,7 @@ dependencies:
|
|
163
163
|
requirements:
|
164
164
|
- - '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 1.0.0.beta.
|
166
|
+
version: 1.0.0.beta.2
|
167
167
|
- - <
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: '2.0'
|
@@ -193,14 +193,14 @@ dependencies:
|
|
193
193
|
requirements:
|
194
194
|
- - ~>
|
195
195
|
- !ruby/object:Gem::Version
|
196
|
-
version: 0.4.
|
196
|
+
version: 0.4.2
|
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.4.
|
203
|
+
version: 0.4.2
|
204
204
|
- !ruby/object:Gem::Dependency
|
205
205
|
name: xcodeproj
|
206
206
|
requirement: !ruby/object:Gem::Requirement
|
@@ -434,7 +434,7 @@ files:
|
|
434
434
|
- lib/cocoapods/installer/user_project_integrator.rb
|
435
435
|
- lib/cocoapods/installer/user_project_integrator/target_integrator.rb
|
436
436
|
- lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
|
437
|
-
- lib/cocoapods/
|
437
|
+
- lib/cocoapods/open-uri.rb
|
438
438
|
- lib/cocoapods/project.rb
|
439
439
|
- lib/cocoapods/resolver.rb
|
440
440
|
- lib/cocoapods/resolver/lazy_specification.rb
|
@@ -471,7 +471,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
471
471
|
version: '0'
|
472
472
|
requirements: []
|
473
473
|
rubyforge_project:
|
474
|
-
rubygems_version: 2.5.
|
474
|
+
rubygems_version: 2.5.2
|
475
475
|
signing_key:
|
476
476
|
specification_version: 3
|
477
477
|
summary: The Cocoa library package manager.
|