cocoapods 0.36.0.beta.2 → 0.36.0.rc.1

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: 86bf745ff3beb43f547d72bdc3bb5561250836ef
4
- data.tar.gz: 527fecbbab8649bf447a7fb6ea5130340a9ffd65
3
+ metadata.gz: ef4ce8ae91c04f6565e9e5607da50a2f6b6d96f1
4
+ data.tar.gz: e913792e08a80a242b1817fb186456219cc3cca1
5
5
  SHA512:
6
- metadata.gz: 691fb6ca9b5324b5a1ac63a496e9cb87429941ce7d178b45501649890a5029a9eeb1801850e9a73e655405c016a40da7cfaa53326f63825123939e501f6ad9c5
7
- data.tar.gz: bf435ded4cbcaca3b11a79aa9df3aecfcc65b9f54f070f98bf451f98a8dc2b010ce58d2353cb117f7a5488e8bf51b10ff8f9461aac0d7f6b9ec652544d3f64c1
6
+ metadata.gz: 697dbb533f3490b27c2683c110f6f7ddea96b2197be16d042d805ed3baa3a17e36807f24821abb559f43c4c0f0c44b6afbb4487d1a9f613ea265e9b5d9f85d57
7
+ data.tar.gz: 5a881818cfcc504b8f45e1bda435397279a806e357768c6520bd2fe198eb5521b35e32f85481d971a97e8b7e8ba69b8437effe506ee5aa7ffcb40f9b2cb514fd
@@ -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)
@@ -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'
@@ -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-frameworks', 'Lint uses frameworks to install the spec'],
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-frameworks')
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-frameworks', 'Lint uses frameworks to install the spec'],
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-frameworks')
35
+ @use_frameworks = !argv.flag?('use-libraries')
36
36
  @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
37
- @podspecs_paths = argv.arguments!
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(File.join(Pathname.new('/tmp').realpath, '/CocoaPods/Lint_podspec'))
100
+ Pathname.new(Dir.tmpdir) + 'CocoaPods/Lint_podspec'
101
101
  end
102
102
  end
103
103
  end
@@ -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
@@ -19,6 +19,7 @@ module Pod
19
19
  store_podspec(sandbox, podspec, podspec.extname == '.json')
20
20
  is_absolute = absolute?(declared_path)
21
21
  sandbox.store_local_path(name, podspec.dirname, is_absolute)
22
+ sandbox.remove_checkout_source(name)
22
23
  end
23
24
  end
24
25
 
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the cocoapods command line tool.
3
3
  #
4
- VERSION = '0.36.0.beta.2' unless defined? Pod::VERSION
4
+ VERSION = '0.36.0.rc.1' unless defined? Pod::VERSION
5
5
  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 += " install_resource '#{resource}'\n"
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 -av \\"${SWIFT_STDLIB_PATH}/${lib}\\" \\"${destination}\\""
80
- rsync -av "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
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
@@ -54,6 +54,7 @@ module Pod
54
54
  'PODS_ROOT' => '${SRCROOT}',
55
55
  'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(search_paths),
56
56
  'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
57
+ 'SKIP_INSTALL' => 'YES',
57
58
  # 'USE_HEADERMAP' => 'NO'
58
59
  }
59
60
 
@@ -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(['-D COCOAPODS']),
163
+ 'OTHER_SWIFT_FLAGS' => quote(%w(-D COCOAPODS)),
164
164
  }
165
165
  xcconfig.merge!(build_settings)
166
166
  end
@@ -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 a unknown user configuration is found.
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).include?(:app_extension)
471
- configure_app_extension_api_only_for_target(aggregate_target) if is_app_extension
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 "From now on use `#{workspace_path.basename}`."
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
@@ -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
 
@@ -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
  #
@@ -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? || uses_swift?
95
+ host_requires_frameworks? || false
101
96
  end
102
97
 
103
98
  #-------------------------------------------------------------------------#
@@ -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.new(File.join(Pathname.new('/tmp').realpath, 'CocoaPods/Lint'))
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 = nil)
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) unless use_frameworks.nil?
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{/tmp/CocoaPods/Lint/Pods/}, '')
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
- UI.puts 'xcodebuild clean build -target Pods' if config.verbose?
523
- output = `xcodebuild clean build -target Pods 2>&1`
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 $?.success?
526
- message = 'Returned a unsuccessful exit code.'
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.beta.2
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-01-28 00:00:00.000000000 Z
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.beta.2
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.beta.2
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.0
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.0
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.21.2
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.21.2
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.0
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.0
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.0
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.0
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.0
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.0
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.0.14
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: