cocoapods 0.17.0.rc3 → 0.17.0.rc4

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: 74228860bfe13ef84dd8e60454d29c94236d5bb0
4
- data.tar.gz: fddc172441d9b378abe7ac8b1ab81df832b467d3
3
+ metadata.gz: 968e618e17077f1e02347a81b681117a6b4410b3
4
+ data.tar.gz: cf0e4cd10cc63cbae184f22762edd7b3878e5622
5
5
  SHA512:
6
- metadata.gz: a5b7857acea13393645d5721c05a715c12e001a79d3abc3731425ea5c0b24f0485f4164eebdabbc76c76512841bba5941bfb804da7d52fa7d1ce47f2bb16a2da
7
- data.tar.gz: fb80a8e7dd50bd800e95959292b328304bdf4337b959814d0da03f421fa8fff932affa8c376aae14fdd606a61a5aa3734082e2cf73751a69725ce1e147ca6396
6
+ metadata.gz: 8849e6833fcbce9561184db443eb3e1dab6d9cbc6ac453f6c2e8f7fba53c9ecc73415308052814fb1bae3f660159c35cc88f495e8eed5ff53c6512301bacd9ab
7
+ data.tar.gz: 41c7fb584d7f9bc34b23c61141f4d633f543001ae21a78bc6cfd0e915db13a14b84e6219a4d9b5815d117f3c38adc9324001c552b4b9c18850d7ee163beb11d5
@@ -1,5 +1,30 @@
1
+ ## 0.17.0.rc4
2
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc3...0.17.0.rc4
3
+
4
+ ###### Bug fixes
5
+
6
+ - Restored compatibility with `Podfile::TargetDefinition#copy_resources_script_name`
7
+ in the Podfile hooks.
8
+ - Updated copy resources script so that it will use base internationalization
9
+ [#846](https://github.com/CocoaPods/CocoaPods/issues/846)
10
+ - Robustness against an empty configuration file.
11
+ - Fixed a crash with `pod push`
12
+ [#848](https://github.com/CocoaPods/CocoaPods/issues/848)
13
+ - Fixed an issue which lead to the creation of a Pods project which would
14
+ crash Xcode.
15
+ [#854](https://github.com/CocoaPods/CocoaPods/issues/854)
16
+ - Fixed a crash related to a `PBXVariantGroup` present in the frameworks build
17
+ phase of client targets.
18
+ [#859](https://github.com/CocoaPods/CocoaPods/issues/859)
19
+
20
+
21
+ ###### Ancillary enhancements
22
+
23
+ - The `podspec` option of the `pod` directive of the Podfile DSL now accepts
24
+ folders.
25
+
1
26
  ## 0.17.0.rc3
2
- [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc1...0.17.0.rc2
27
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc2...0.17.0.rc3
3
28
  • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.5.0...0.5.1))
4
29
 
5
30
  ###### Bug fixes
@@ -120,7 +120,7 @@ module Pod
120
120
  UI.puts " - #{message}"
121
121
 
122
122
  FileUtils.mkdir_p(output_path)
123
- FileUtils.cp(Pathname.new(spec.name+'.podspec'), output_path)
123
+ FileUtils.cp(spec_file, output_path)
124
124
  Dir.chdir(repo_dir) do
125
125
  git!("add #{spec.name}")
126
126
  git!("commit --no-verify -m '#{message}'")
@@ -197,7 +197,7 @@ module Pod
197
197
  self.arguments = '[ NAME ]'
198
198
 
199
199
  def self.options
200
- [["--show-all", "Pick which spec to edit from all avaliable versions of the given podspec"]].concat(super)
200
+ [["--show-all", "Pick which spec to edit from all available versions of the given podspec"]].concat(super)
201
201
  end
202
202
 
203
203
  def initialize(argv)
@@ -450,11 +450,9 @@ module Pod
450
450
  return <<-SPEC
451
451
  #
452
452
  # Be sure to run `pod spec lint #{data[:name]}.podspec' to ensure this is a
453
- # valid spec.
453
+ # valid spec and remove all comments before submitting the spec.
454
454
  #
455
- # Remove all comments before submitting the spec. Optional attributes are commented.
456
- #
457
- # For details see: https://github.com/CocoaPods/CocoaPods/wiki/The-podspec-format
455
+ # To learn more about the attributes see http://docs.cocoapods.org/specification.html
458
456
  #
459
457
  Pod::Spec.new do |s|
460
458
  s.name = "#{data[:name]}"
@@ -467,25 +465,12 @@ Pod::Spec.new do |s|
467
465
  # * Don't worry about the indent, we strip it!
468
466
  # DESC
469
467
  s.homepage = "#{data[:homepage]}"
468
+ # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
470
469
 
471
470
  # Specify the license type. CocoaPods detects automatically the license file if it is named
472
471
  # 'LICENCE*.*' or 'LICENSE*.*', however if the name is different, specify it.
473
472
  s.license = 'MIT (example)'
474
473
  # s.license = { :type => 'MIT (example)', :file => 'FILE_LICENSE' }
475
- #
476
- # Only if no dedicated file is available include the full text of the license.
477
- #
478
- # s.license = {
479
- # :type => 'MIT (example)',
480
- # :text => <<-LICENSE
481
- # Copyright (C) <year> <copyright holders>
482
-
483
- # All rights reserved.
484
-
485
- # Redistribution and use in source and binary forms, with or without
486
- # ...
487
- # LICENSE
488
- # }
489
474
 
490
475
  # Specify the authors of the library, with email addresses. You can often find
491
476
  # the email addresses of the authors by using the SCM log. E.g. $ git log
@@ -500,14 +485,12 @@ Pod::Spec.new do |s|
500
485
  # Specify the location from where the source should be retrieved.
501
486
  #
502
487
  s.source = { :git => "#{data[:source_url]}", #{data[:ref_type]} => "#{data[:ref]}" }
503
- # s.source = { :svn => 'http://EXAMPLE/#{data[:name]}/tags/1.0.0' }
504
- # s.source = { :hg => 'http://EXAMPLE/#{data[:name]}', :revision => '1.0.0' }
488
+
505
489
 
506
490
  # If this Pod runs only on iOS or OS X, then specify the platform and
507
491
  # the deployment target.
508
492
  #
509
493
  # s.platform = :ios, '5.0'
510
- # s.platform = :ios
511
494
 
512
495
  # ――― MULTI-PLATFORM VALUES ――――――――――――――――――――――――――――――――――――――――――――――――― #
513
496
 
@@ -521,10 +504,6 @@ Pod::Spec.new do |s|
521
504
  # added to the Pods project. If the pattern is a directory then the
522
505
  # path will automatically have '*.{h,m,mm,c,cpp}' appended.
523
506
  #
524
- # Alternatively, you can use the FileList class for even more control
525
- # over the selected files.
526
- # (See http://rake.rubyforge.org/classes/Rake/FileList.html.)
527
- #
528
507
  s.source_files = 'Classes', 'Classes/**/*.{h,m}'
529
508
 
530
509
  # A list of file patterns which select the header files that should be
@@ -567,7 +546,7 @@ Pod::Spec.new do |s|
567
546
 
568
547
  # If this Pod uses ARC, specify it like so.
569
548
  #
570
- # s.requires_arc = true
549
+ s.requires_arc = true
571
550
 
572
551
  # If you need to specify any other build settings, add them to the
573
552
  # xcconfig hash.
@@ -176,6 +176,7 @@ module Pod
176
176
  # @return [void]
177
177
  #
178
178
  def configure_with(values_by_key)
179
+ return unless values_by_key
179
180
  values_by_key.each do |key, value|
180
181
  self.instance_variable_set("@#{key}", value)
181
182
  end
@@ -268,10 +268,9 @@ module Pod
268
268
  #
269
269
  def fetch(sandbox)
270
270
  UI.titled_section("Fetching podspec for `#{name}` #{description}", { :verbose_prefix => "-> " }) do
271
- path = params[:podspec]
272
- path = Pathname.new(path).expand_path if path.to_s.start_with?("~")
271
+
273
272
  require 'open-uri'
274
- open(path) { |io| store_podspec(sandbox, io.read) }
273
+ open(podspec_uri) { |io| store_podspec(sandbox, io.read) }
275
274
  end
276
275
  end
277
276
 
@@ -280,6 +279,30 @@ module Pod
280
279
  def description
281
280
  "from `#{params[:podspec]}`"
282
281
  end
282
+
283
+ #--------------------------------------#
284
+
285
+ private
286
+
287
+ # @!group Helpers
288
+
289
+ # @return [String] The uri of the podspec appending the name of the file
290
+ # and expanding it if necessary.
291
+ #
292
+ # @note If the declared path is expanded only if the represents a path
293
+ # relative to the file system.
294
+ #
295
+ def podspec_uri
296
+ declared_path = params[:podspec].to_s
297
+ if declared_path.match(%r{^.+://})
298
+ declared_path
299
+ else
300
+ path_with_ext = File.extname(declared_path) == '.podspec' ? declared_path : "#{declared_path}/#{name}.podspec"
301
+ podfile_dir = File.dirname(podfile_path || '')
302
+ absolute_path = File.expand_path(path_with_ext, podfile_dir)
303
+ absolute_path
304
+ end
305
+ end
283
306
  end
284
307
 
285
308
  #-------------------------------------------------------------------------#
@@ -295,7 +318,7 @@ module Pod
295
318
  #
296
319
  def fetch(sandbox)
297
320
  UI.titled_section("Fetching podspec for `#{name}` #{description}", { :verbose_prefix => "-> " }) do
298
- podspec = pod_spec_path
321
+ podspec = podspec_path
299
322
  store_podspec(sandbox, podspec)
300
323
  sandbox.store_local_path(name, podspec.dirname)
301
324
  end
@@ -315,7 +338,7 @@ module Pod
315
338
 
316
339
  # @return [Pathname] the path of the podspec.
317
340
  #
318
- def pod_spec_path
341
+ def podspec_path
319
342
  declared_path = params[:local].to_s
320
343
  path_with_ext = File.extname(declared_path) == '.podspec' ? declared_path : "#{declared_path}/#{name}.podspec"
321
344
  podfile_dir = File.dirname(podfile_path || '')
@@ -328,5 +351,8 @@ module Pod
328
351
  pathname
329
352
  end
330
353
  end
354
+
355
+ #-------------------------------------------------------------------------#
356
+
331
357
  end
332
358
  end
@@ -2,6 +2,6 @@ module Pod
2
2
 
3
3
  # The version of the cocoapods command line tool.
4
4
  #
5
- VERSION = '0.17.0.rc3' unless defined? Pod::VERSION
5
+ VERSION = '0.17.0.rc4' unless defined? Pod::VERSION
6
6
  end
7
7
 
@@ -8,12 +8,12 @@ install_resource()
8
8
  {
9
9
  case $1 in
10
10
  *\.storyboard)
11
- echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
12
- ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
11
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
12
+ ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
13
13
  ;;
14
14
  *\.xib)
15
- echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
16
- ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
15
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
16
+ ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
17
17
  ;;
18
18
  *.framework)
19
19
  echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
@@ -8,6 +8,15 @@ module Pod
8
8
  end
9
9
  end
10
10
 
11
+ class Podfile::TargetDefinition
12
+ def copy_resources_script_name
13
+ UI.warn "TargetDefinition#copy_resources_script_name is deprecated. " \
14
+ "The value is accessible directly from the representation of the " \
15
+ "library using the #copy_resources_script_path method."
16
+ Config.instance.sandbox.root + "#{label}-resources.sh"
17
+ end
18
+ end
19
+
11
20
  module Hooks
12
21
 
13
22
  # The installer representation to pass to the hooks.
@@ -26,13 +26,14 @@ module Pod
26
26
 
27
27
  # @return [Pathname] The path of the prefix_header
28
28
  #
29
- def prefix_header_filename
29
+ def prefix_header_path
30
30
  library.prefix_header_path
31
31
  end
32
+ alias :prefix_header_filename :prefix_header_path
32
33
 
33
34
  # @return [Pathname] The path of the script used to copy the resources.
34
35
  #
35
- def copy_resources_script_name
36
+ def copy_resources_script_path
36
37
  library.copy_resources_script_path
37
38
  end
38
39
 
@@ -367,16 +367,53 @@ module Pod
367
367
  installed_specs.each do |spec|
368
368
  executed = false
369
369
  libraries_using_spec(spec).each do |lib|
370
- executed ||= spec.pre_install!(pod_rep(spec.root.name), library_rep(lib))
370
+ lib_representation = library_rep(lib)
371
+ executed ||= run_spec_pre_install_hook(spec, lib_representation)
371
372
  end
372
373
  UI.message "- #{spec.name}" if executed
373
374
  end
374
375
 
375
- executed = @podfile.pre_install!(installer_rep)
376
+ executed = run_podfile_pre_install_hook
376
377
  UI.message "- Podfile" if executed
377
378
  end
378
379
  end
379
380
 
381
+ # Runs the pre install hook of the given specification with the given
382
+ # library representation.
383
+ #
384
+ # @param [Specification] spec
385
+ # The spec for which the pre install hook should be run.
386
+ #
387
+ # @param [Hooks::LibraryRepresentation] lib_representation
388
+ # The library representation to be passed as an argument to the
389
+ # hook.
390
+ #
391
+ # @raise Raises an informative if the hooks raises.
392
+ #
393
+ # @return [Bool] Whether the hook was run.
394
+ #
395
+ def run_spec_pre_install_hook(spec, lib_representation)
396
+ spec.pre_install!(pod_rep(spec.root.name), lib_representation)
397
+ rescue => e
398
+ raise Informative, "The pre install hook of #{spec} is not " \
399
+ "compatible with this version of CocoaPods." \
400
+ "\n\n#{e.message}\n\n#{e.backtrace * "\n"}"
401
+ end
402
+
403
+ # Runs the pre install hook of the Podfile
404
+ #
405
+ # @raise Raises an informative if the hooks raises.
406
+ #
407
+ # @return [Bool] Whether the hook was run.
408
+ #
409
+ def run_podfile_pre_install_hook
410
+ podfile.pre_install!(installer_rep)
411
+ rescue => e
412
+ raise Informative, "The pre install hook of the Podfile is not " \
413
+ "compatible with this version of CocoaPods." \
414
+ "\n\n#{e.message}\n\n#{e.backtrace * "\n"}"
415
+ end
416
+
380
417
  # Runs the post install hooks of the installed specs and of the Podfile.
381
418
  #
382
419
  # @note Post install hooks run _before_ saving of project, so that they
@@ -389,15 +426,53 @@ module Pod
389
426
  installed_specs.each do |spec|
390
427
  executed = false
391
428
  libraries_using_spec(spec).each do |lib|
392
- executed ||= spec.post_install!(library_rep(lib))
429
+ lib_representation = library_rep(lib)
430
+ executed ||= run_spec_post_install_hook(spec, lib_representation)
393
431
  end
394
432
  UI.message "- #{spec.name}" if executed
395
433
  end
396
- executed = @podfile.post_install!(installer_rep)
434
+ executed = run_podfile_post_install_hook
397
435
  UI.message "- Podfile" if executed
398
436
  end
399
437
  end
400
438
 
439
+
440
+ # Runs the post install hook of the given specification with the given
441
+ # library representation.
442
+ #
443
+ # @param [Specification] spec
444
+ # The spec for which the post install hook should be run.
445
+ #
446
+ # @param [Hooks::LibraryRepresentation] lib_representation
447
+ # The library representation to be passed as an argument to the
448
+ # hook.
449
+ #
450
+ # @raise Raises an informative if the hooks raises.
451
+ #
452
+ # @return [Bool] Whether the hook was run.
453
+ #
454
+ def run_spec_post_install_hook(spec, lib_representation)
455
+ spec.post_install!(lib_representation)
456
+ rescue => e
457
+ raise Informative, "The post install hook of #{spec} is not " \
458
+ "compatible with this version of CocoaPods." \
459
+ "\n\n#{e.message}\n\n#{e.backtrace * "\n"}"
460
+ end
461
+
462
+ # Runs the post install hook of the Podfile
463
+ #
464
+ # @raise Raises an informative if the hooks raises.
465
+ #
466
+ # @return [Bool] Whether the hook was run.
467
+ #
468
+ def run_podfile_post_install_hook
469
+ podfile.post_install!(installer_rep)
470
+ rescue => e
471
+ raise Informative, "The post install hook of the Podfile is not " \
472
+ "compatible with this version of CocoaPods." \
473
+ "\n\n#{e.message}\n\n#{e.backtrace * "\n"}"
474
+ end
475
+
401
476
  #-------------------------------------------------------------------------#
402
477
 
403
478
  public
@@ -55,8 +55,10 @@ module Pod
55
55
  #
56
56
  # @note The `PODS_HEADERS_SEARCH_PATHS` overrides the xcconfig.
57
57
  #
58
- # @todo Add integration test for build configurations and don't add the
59
- # build configurations to the project if they are not needed.
58
+ # @todo CocoaPods 0.16 used to add the build configurations to the build
59
+ # configuration list of the project (`root object`) as well with
60
+ # an empty build settings. This behaviour was changed in 0.17.
61
+ # Restore if needed.
60
62
  #
61
63
  # @return [void]
62
64
  #
@@ -77,14 +79,13 @@ module Pod
77
79
  @target.build_settings('Debug').merge!(settings)
78
80
  @target.build_settings('Release').merge!(settings)
79
81
 
80
- library.user_build_configurations.each do |lib_name, type|
81
- unless @target.build_configurations.map(&:name).include?(lib_name)
82
+ library.user_build_configurations.each do |bc_name, type|
83
+ unless @target.build_configurations.map(&:name).include?(bc_name)
82
84
  build_config = project.new(Xcodeproj::Project::XCBuildConfiguration)
83
- build_config.name = lib_name
85
+ build_config.name = bc_name
84
86
  settings = @target.build_settings(type.to_s.capitalize)
85
87
  build_config.build_settings = settings
86
88
  target.build_configurations << build_config
87
- project.build_configurations << build_config
88
89
  end
89
90
  end
90
91
 
@@ -52,7 +52,7 @@ module Pod
52
52
  non_integrated = targets.reject do |target|
53
53
  target.frameworks_build_phase.files.any? do |build_file|
54
54
  file_ref = build_file.file_ref
55
- !file_ref.proxy? && file_ref.display_name == library.product_name
55
+ file_ref.isa == 'PBXFileReference' && file_ref.display_name == library.product_name
56
56
  end
57
57
  end
58
58
  @targets = non_integrated
@@ -64,9 +64,9 @@ EOS
64
64
  ### Podfile
65
65
 
66
66
  ```ruby
67
- #{Config.instance.podfile_path.read.strip}
67
+ #{Config.instance.podfile_path.read.strip}
68
68
  ```
69
- EOS
69
+ EOS
70
70
  end
71
71
 
72
72
  def error_from_podfile(error)
@@ -62,23 +62,20 @@ module Pod
62
62
  end
63
63
 
64
64
  perform_linting
65
-
66
- # begin
67
- if spec
68
- check_repo_path if repo_path
69
- perform_extensive_analysis unless quick
70
- end
71
- # rescue Exception => e
72
- # error "The specification is malformed and crashed the linter."
73
- # end
65
+ check_repo_path if spec && repo_path
66
+ perform_extensive_analysis if spec && !quick
74
67
 
75
68
  unless disable_ui_output
76
- UI.puts " -> ".send(result_color) << (spec ? spec.name : file.basename.to_s)
69
+ UI.puts " -> ".send(result_color) << (spec ? spec.to_s : file.basename.to_s)
77
70
  print_results
78
71
  end
79
72
  validated?
80
73
  end
81
74
 
75
+ # Prints the result of the validation to the user.
76
+ #
77
+ # @return [void]
78
+ #
82
79
  def print_results
83
80
  results.each do |result|
84
81
  if result.platforms == [:ios]
@@ -87,7 +84,7 @@ module Pod
87
84
  platform_message = "[OSX] "
88
85
  end
89
86
 
90
- case result.type
87
+ case result.type
91
88
  when :error then type = "ERROR"
92
89
  when :warning then type = "WARN"
93
90
  when :note then type = "NOTE"
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.17.0.rc3
4
+ version: 0.17.0.rc4
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: 2013-03-09 00:00:00.000000000 Z
12
+ date: 2013-03-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cocoapods-core
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.17.0.rc3
20
+ version: 0.17.0.rc4
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.17.0.rc3
27
+ version: 0.17.0.rc4
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: claide
30
30
  requirement: !ruby/object:Gem::Requirement