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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99aac79324a67815f74a8175fa16465c8b7a3c21
4
- data.tar.gz: 234cd7e4caa85cd06b38e04037ceff2ab548d29b
3
+ metadata.gz: 04db614d298cf64360e2528b3a6a187fe56fae78
4
+ data.tar.gz: 4c179f800285b164798be255164b2dd96f8f24f5
5
5
  SHA512:
6
- metadata.gz: 45a4d7e290988cd133109a74ae79268ccc3229a8f5772aff37d6b1205ca71d3d279acbc642f41f881be97b21c1f4dbd45d160692ce9e5266af5e97661e04c30b
7
- data.tar.gz: a6da707743eb4dd997d5496d0071bb31b471701604192c3c8b1a08604fd076262a7c54153a022aa8a0b15be5f9b5c365b33c2dab258dd1c0a6ec0fdbe94864d2
6
+ metadata.gz: 370854285b3569c125818e3b905794b5eac5487f2891aa21e19b36139143b9ad0a3e1970eca7ecb6b7b04ba5876460b502c1f65509a1bb3e05eac2ad2fbfbb57
7
+ data.tar.gz: c5e7ac223cbac6a558528dbc5d43e8e937f04ec2fb667cdb8a9b32c825c1671e86767ddf876c2bc439aa09ea6808d04a4e94b8ad39a58731be7726dd6ddcf41a
@@ -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
- xcodeproj 'path/to/XcodeProject'
84
+ project 'path/to/XcodeProject'
85
85
 
86
- If no xcodeproj is specified, then a search for an Xcode project will
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 Add < Repo
5
- self.summary = 'Add a spec repo.'
5
+ self.summary = 'Add a spec repo'
6
6
 
7
7
  self.description = <<-DESC
8
8
  Clones `URL` in the local spec-repos directory at `~/.cocoapods/repos/`. The
@@ -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 Repo < Command
4
4
  class Update < Repo
5
- self.summary = 'Update a spec repo.'
5
+ self.summary = 'Update a spec repo'
6
6
 
7
7
  self.description = <<-DESC
8
8
  Updates the local clone of the spec-repo `NAME`. If `NAME` is omitted
@@ -2,7 +2,7 @@ module Pod
2
2
  class Command
3
3
  class Spec < Command
4
4
  class Cat < Spec
5
- self.summary = 'Prints a spec file.'
5
+ self.summary = 'Prints a spec file'
6
6
 
7
7
  self.description = <<-DESC
8
8
  Prints the content of the podspec(s) whose name matches `QUERY` to standard output.
@@ -2,7 +2,7 @@ module Pod
2
2
  class Command
3
3
  class Spec < Command
4
4
  class Edit < Spec
5
- self.summary = 'Edit a spec file.'
5
+ self.summary = 'Edit a spec file'
6
6
 
7
7
  self.description = <<-DESC
8
8
  Opens the podspec matching `QUERY` to be edited.
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.0.0.beta.2'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.0.0.beta.3'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -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'] = '"$PODS_FRAMEWORK_BUILD_PATH"'
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' => '"$PODS_FRAMEWORK_BUILD_PATH"',
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)
@@ -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.concat(podfile.dependencies.map(&:name).uniq)
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.name) }
482
- deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.name) }
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? ||
@@ -78,7 +78,7 @@ module Pod
78
78
  state.add_name(name, pod_state(name))
79
79
  end
80
80
  else
81
- state.added.concat(resolved_pods)
81
+ state.added.merge(resolved_pods)
82
82
  end
83
83
  state
84
84
  end
@@ -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
- @added = pods_by_state[:added] || []
27
- @deleted = pods_by_state[:removed] || []
28
- @changed = pods_by_state[:changed] || []
29
- @unchanged = pods_by_state[:unchanged] || []
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 [Array<String>] the names of the pods that were added.
41
+ # @return [Set<String>] the names of the pods that were added.
34
42
  #
35
43
  attr_accessor :added
36
44
 
37
- # @return [Array<String>] the names of the pods that were changed.
45
+ # @return [Set<String>] the names of the pods that were changed.
38
46
  #
39
47
  attr_accessor :changed
40
48
 
41
- # @return [Array<String>] the names of the pods that were deleted.
49
+ # @return [Set<String>] the names of the pods that were deleted.
42
50
  #
43
51
  attr_accessor :deleted
44
52
 
45
- # @return [Array<String>] the names of the pods that were unchanged.
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.downcase
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.end_with?('.lproj') && path.directory?
214
- lproj_paths << path_str
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)\/.*/.match(path_str)[1]
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.to_s.downcase == lproj_path
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"
@@ -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
- /x
161
+ }x
162
162
  base_config_ref.real_path.readlines.find { |line| line =~ regex }
163
163
  end
164
164
 
@@ -1,3 +1,5 @@
1
+ # rubocop:disable Style/FileName
2
+
1
3
  require 'open-uri'
2
4
 
3
5
  # Allow OpenURI to follow http to https redirects.
@@ -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 #{versions['last']} is available.".green,
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'.green,
385
- 'and the CHANGELOG for this version http://git.io/BaH8pQ.'.green,
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
  #
@@ -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.2
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-01-05 00:00:00.000000000 Z
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.2
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.2
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.2
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.2
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.1
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.1
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.1
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.1
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/open_uri.rb
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.1
474
+ rubygems_version: 2.5.2
475
475
  signing_key:
476
476
  specification_version: 3
477
477
  summary: The Cocoa library package manager.