cocoapods 1.6.0.beta.2 → 1.6.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
- SHA256:
3
- metadata.gz: 78fc10cd8ecb6e143b881badf52a7688a75a4027494be697848432c15e4ef2ea
4
- data.tar.gz: 1193a91131a6f03a5ac7b7b52eecca0ca82d74167e7b465f08342255ba4b14d8
2
+ SHA1:
3
+ metadata.gz: 22d034f2584a2be7eca9591e3e96aadfe0d69bdf
4
+ data.tar.gz: ccef570c47e3403cb37da66528683828e71ade6a
5
5
  SHA512:
6
- metadata.gz: f24e4f502e4251a6cebfb9020037af737c52094121aea6d0f26f6392f14d993ba95597249266e74c5113b0062dfc8de277a60ce6eba7e9b2213f19f907ca51cc
7
- data.tar.gz: 949700b4fd4b5fec511390a75ad55b12d86128650833b3caf72da2c4bb3d15ecd90429d6e70177b3f67134e4cf8d7848b8c3d06504cf9dbe350b9750f7bbd164
6
+ metadata.gz: 59c090cf2cd1dfc0d4e6f486d4eb6f223314a8f992a7428b71b6f9b8cf1f29b2cf032642d1e2d6f49a3b3f6421c68437b4527326fc27d3c35ae11e2bcdfe64b3
7
+ data.tar.gz: 378668cdae9cb9086bac89df9a94841f2a33b539bd57020c3b42362f287a385ab1e72cd727da1a093cb1a6f3128aa8885bf1a41aabeb9017e87753fed619dff0
@@ -4,6 +4,29 @@ 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.6.0.rc.1 (2019-01-25)
8
+
9
+ ##### Enhancements
10
+
11
+ * Generate Info.plist files for static frameworks
12
+ [Paul Beusterien](https://github.com/paulb777)
13
+ [#8287](https://github.com/CocoaPods/CocoaPods/issues/8287)
14
+
15
+ ##### Bug Fixes
16
+
17
+ * Do not force 64-bit architectures on Xcode 10
18
+ [Eric Amorde](https://github.com/amorde)
19
+ [#8242](https://github.com/CocoaPods/CocoaPods/issues/8242)
20
+
21
+ * Fix running test specs that support iOS 8.
22
+ [Jeff Kelley](https://github.com/SlaunchaMan)
23
+ [#8286](https://github.com/CocoaPods/CocoaPods/pull/8286)
24
+
25
+ * Remove linker flags that linked dynamic libraries & frameworks from the build
26
+ settings for pod targets.
27
+ [Samuel Giddins](https://github.com/segiddins)
28
+ [#8314](https://github.com/CocoaPods/CocoaPods/pull/8314)
29
+
7
30
  ## 1.6.0.beta.2 (2018-10-17)
8
31
 
9
32
  ##### Enhancements
data/bin/pod CHANGED
@@ -35,7 +35,7 @@ STDOUT.sync = true if ENV['CP_STDOUT_SYNC'] == 'TRUE'
35
35
 
36
36
  require 'cocoapods'
37
37
 
38
- if profile_filename = ENV['PROFILE']
38
+ if profile_filename = ENV['COCOAPODS_PROFILE']
39
39
  require 'ruby-prof'
40
40
  reporter =
41
41
  case (profile_extname = File.extname(profile_filename))
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.6.0.beta.2'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.6.0.rc.1'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -105,13 +105,16 @@ module Pod
105
105
  # @param [Symbol] platform
106
106
  # the platform of the target. Can be `:ios` or `:osx`, etc.
107
107
  #
108
+ # @param [String] deployment_target
109
+ # the deployment target for the platform.
110
+ #
108
111
  # @param [String] name
109
112
  # The name to use for the target, defaults to 'App'.
110
113
  #
111
114
  # @return [PBXFileReference] the created file reference of the launchscreen storyboard.
112
115
  #
113
- def self.add_launchscreen_storyboard(project, target, group, name = 'App')
114
- launch_storyboard_file = AppTargetHelper.create_launchscreen_storyboard_file(project, name)
116
+ def self.add_launchscreen_storyboard(project, target, group, deployment_target, name = 'App')
117
+ launch_storyboard_file = AppTargetHelper.create_launchscreen_storyboard_file(project, deployment_target, name)
115
118
  launch_storyboard_ref = group.new_file(launch_storyboard_file)
116
119
  target.resources_build_phase.add_file_reference(launch_storyboard_ref)
117
120
  end
@@ -199,15 +202,22 @@ module Pod
199
202
  # @param [Project] project
200
203
  # the Xcodeproj to generate the launchscreen storyboard into.
201
204
  #
205
+ # @param [String] deployment_target
206
+ # the deployment target for the platform.
207
+ #
202
208
  # @param [String] name
203
209
  # The name of the folder to use and save the generated launchscreen storyboard file.
204
210
  #
205
211
  # @return [Pathname] the new launchscreen storyboard file that was generated.
206
212
  #
207
- def self.create_launchscreen_storyboard_file(project, name = 'App')
213
+ def self.create_launchscreen_storyboard_file(project, deployment_target, name = 'App')
208
214
  launch_storyboard_file = project.path.dirname.+("#{name}/LaunchScreen.storyboard")
209
215
  launch_storyboard_file.parent.mkpath
210
- File.write(launch_storyboard_file, LAUNCHSCREEN_STORYBOARD_CONTENTS)
216
+ if Version.new(deployment_target) >= Version.new('9.0')
217
+ File.write(launch_storyboard_file, LAUNCHSCREEN_STORYBOARD_CONTENTS)
218
+ else
219
+ File.write(launch_storyboard_file, LAUNCHSCREEN_STORYBOARD_CONTENTS_IOS_8)
220
+ end
211
221
  launch_storyboard_file
212
222
  end
213
223
 
@@ -279,6 +289,36 @@ int main(int argc, const char * argv[]) {
279
289
  }
280
290
  EOS
281
291
 
292
+ LAUNCHSCREEN_STORYBOARD_CONTENTS_IOS_8 = <<-XML.strip_heredoc.freeze
293
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
294
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
295
+ <dependencies>
296
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
297
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
298
+ </dependencies>
299
+ <scenes>
300
+ <!--View Controller-->
301
+ <scene sceneID="EHf-IW-A2E">
302
+ <objects>
303
+ <viewController id="01J-lp-oVM" sceneMemberID="viewController">
304
+ <layoutGuides>
305
+ <viewControllerLayoutGuide type="top" id="rUq-ht-380"/>
306
+ <viewControllerLayoutGuide type="bottom" id="a9l-8d-mfx"/>
307
+ </layoutGuides>
308
+ <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
309
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
310
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
311
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
312
+ </view>
313
+ </viewController>
314
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
315
+ </objects>
316
+ <point key="canvasLocation" x="53" y="375"/>
317
+ </scene>
318
+ </scenes>
319
+ </document>
320
+ XML
321
+
282
322
  LAUNCHSCREEN_STORYBOARD_CONTENTS = <<-XML.strip_heredoc.freeze
283
323
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
284
324
  <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
@@ -23,6 +23,11 @@ module Pod
23
23
  #
24
24
  IOS_64_BIT_ONLY_VERSION = Version.new('11.0')
25
25
 
26
+ # @return [Integer] The Xcode object version until which 64-bit architectures should be manually specified
27
+ #
28
+ # Xcode 10 will automatically select the correct architectures based on deployment target
29
+ IOS_64_BIT_ONLY_PROJECT_VERSION = 50
30
+
26
31
  # @return [Sandbox] The sandbox to use for this analysis.
27
32
  #
28
33
  attr_reader :sandbox
@@ -436,7 +441,7 @@ module Pod
436
441
  # @param [TargetDefinition] target_definition
437
442
  # the target definition for the user target.
438
443
  #
439
- # @param [Array<TargetInspection>] target_inspections
444
+ # @param [Hash{TargetDefinition => TargetInspectionResult}] target_inspections
440
445
  # the user target inspections used to construct the aggregate and pod targets.
441
446
  #
442
447
  # @param [Array<PodTarget>] pod_targets
@@ -448,16 +453,17 @@ module Pod
448
453
  # @return [AggregateTarget]
449
454
  #
450
455
  def generate_target(target_definition, target_inspections, pod_targets, resolver_specs_by_target)
451
- target_requires_64_bit = requires_64_bit_archs?(target_definition.platform)
452
456
  if installation_options.integrate_targets?
453
457
  target_inspection = target_inspections[target_definition]
454
458
  raise "missing inspection: #{target_definition.name}" unless target_inspection
459
+ target_requires_64_bit = Analyzer.requires_64_bit_archs?(target_definition.platform, target_inspection.project.object_version)
455
460
  user_project = target_inspection.project
456
461
  client_root = target_inspection.client_root
457
462
  user_target_uuids = target_inspection.project_target_uuids
458
463
  user_build_configurations = target_inspection.build_configurations
459
464
  archs = target_requires_64_bit ? ['$(ARCHS_STANDARD_64_BIT)'] : target_inspection.archs
460
465
  else
466
+ target_requires_64_bit = Analyzer.requires_64_bit_archs?(target_definition.platform, nil)
461
467
  user_project = nil
462
468
  client_root = config.installation_root.realpath
463
469
  user_target_uuids = []
@@ -549,7 +555,7 @@ module Pod
549
555
  # @param [Hash{Podfile::TargetDefinition => Array<ResolvedSpecification>}] resolver_specs_by_target
550
556
  # the resolved specifications grouped by target.
551
557
  #
552
- # @param [Array<TargetInspection>] target_inspections
558
+ # @param [Hash{TargetDefinition => TargetInspectionResult}] target_inspections
553
559
  # the user target inspections used to construct the aggregate and pod targets.
554
560
  #
555
561
  # @return [Array<PodTarget>]
@@ -661,7 +667,7 @@ module Pod
661
667
  # @param [Array<TargetDefinition>] target_definitions
662
668
  # the target definitions of the aggregate target
663
669
  #
664
- # @param [Array<TargetInspection>] target_inspections
670
+ # @param [Hash{TargetDefinition => TargetInspectionResult}] target_inspections
665
671
  # the user target inspections used to construct the aggregate and pod targets.
666
672
  #
667
673
  # @param [Array<Specification>] specs
@@ -673,7 +679,8 @@ module Pod
673
679
  # @return [PodTarget]
674
680
  #
675
681
  def generate_pod_target(target_definitions, target_inspections, specs, scope_suffix: nil)
676
- target_requires_64_bit = target_definitions.all? { |td| requires_64_bit_archs?(td.platform) }
682
+ object_version = target_inspections.values.map { |ti| ti.project.object_version }.min
683
+ target_requires_64_bit = target_definitions.all? { |td| Analyzer.requires_64_bit_archs?(td.platform, object_version) }
677
684
  if installation_options.integrate_targets?
678
685
  target_inspections = target_inspections.select { |t, _| target_definitions.include?(t) }.values
679
686
  user_build_configurations = target_inspections.map(&:build_configurations).reduce({}, &:merge)
@@ -953,22 +960,31 @@ module Pod
953
960
  sandbox_state
954
961
  end
955
962
 
956
- # @param [Platform] platform
957
- # The platform to build against
958
- #
959
- # @return [Boolean] Whether the platform requires 64-bit architectures
960
- #
961
- def requires_64_bit_archs?(platform)
962
- return false unless platform
963
- case platform.name
964
- when :osx
965
- true
966
- when :ios
967
- platform.deployment_target >= IOS_64_BIT_ONLY_VERSION
968
- when :watchos
969
- false
970
- when :tvos
971
- false
963
+ class << self
964
+ # @param [Platform] platform
965
+ # The platform to build against
966
+ #
967
+ # @param [String, Nil] object_version
968
+ # The user project's object version, or nil if not available
969
+ #
970
+ # @return [Boolean] Whether the platform requires 64-bit architectures
971
+ #
972
+ def requires_64_bit_archs?(platform, object_version)
973
+ return false unless platform
974
+ case platform.name
975
+ when :osx
976
+ true
977
+ when :ios
978
+ if (version = object_version)
979
+ platform.deployment_target >= IOS_64_BIT_ONLY_VERSION && version.to_i < IOS_64_BIT_ONLY_PROJECT_VERSION
980
+ else
981
+ platform.deployment_target >= IOS_64_BIT_ONLY_VERSION
982
+ end
983
+ when :watchos
984
+ false
985
+ when :tvos
986
+ false
987
+ end
972
988
  end
973
989
  end
974
990
 
@@ -61,7 +61,7 @@ module Pod
61
61
  end
62
62
 
63
63
  Pod::Generator::AppTargetHelper.add_app_host_main_file(project, app_host_target, platform_name, @group, name)
64
- Pod::Generator::AppTargetHelper.add_launchscreen_storyboard(project, app_host_target, @group, name) if platform == :ios
64
+ Pod::Generator::AppTargetHelper.add_launchscreen_storyboard(project, app_host_target, @group, deployment_target, name) if platform == :ios
65
65
  additional_entries = platform == :ios ? ADDITIONAL_IOS_INFO_PLIST_ENTRIES : {}
66
66
  create_info_plist_file_with_sandbox(sandbox, app_host_info_plist_path, app_host_target, '1.0.0', platform,
67
67
  :appl, additional_entries)
@@ -126,7 +126,6 @@ module Pod
126
126
  # @return [Boolean] Whether the target should build an Info.plist file
127
127
  #
128
128
  def skip_info_plist?(native_target)
129
- return true if target.static_framework?
130
129
  existing_setting = native_target.resolved_build_setting('INFOPLIST_FILE', true).values.compact
131
130
  !existing_setting.empty?
132
131
  end
@@ -665,7 +664,8 @@ module Pod
665
664
  linked_path = target.module_map_path
666
665
  if path != linked_path
667
666
  linked_path.dirname.mkpath
668
- FileUtils.ln_sf(path, linked_path)
667
+ source = path.relative_path_from(linked_path.dirname)
668
+ FileUtils.ln_sf(source, linked_path)
669
669
  end
670
670
 
671
671
  relative_path = target.module_map_path.relative_path_from(sandbox.root).to_s
@@ -163,7 +163,8 @@ module Pod
163
163
  linked_path = target.module_map_path
164
164
  if path != linked_path
165
165
  linked_path.dirname.mkpath
166
- FileUtils.ln_sf(path, linked_path)
166
+ source = path.relative_path_from(linked_path.dirname)
167
+ FileUtils.ln_sf(source, linked_path)
167
168
  end
168
169
 
169
170
  relative_path_string = target.module_map_path.relative_path_from(sandbox.root).to_s
@@ -199,7 +200,8 @@ module Pod
199
200
  linked_path = target.umbrella_header_path
200
201
  if path != linked_path
201
202
  linked_path.dirname.mkpath
202
- FileUtils.ln_sf(path, linked_path)
203
+ source = path.relative_path_from(linked_path.dirname)
204
+ FileUtils.ln_sf(source, linked_path)
203
205
  end
204
206
 
205
207
  acl = target.requires_frameworks? ? 'Public' : 'Project'
@@ -512,11 +512,15 @@ module Pod
512
512
  define_build_settings_method :frameworks, :memoized => true, :sorted => true, :uniqued => true do
513
513
  return [] if (!target.requires_frameworks? || target.static_framework?) && !test_xcconfig?
514
514
 
515
- frameworks = vendored_dynamic_frameworks.map { |l| File.basename(l, '.framework') }
516
- frameworks.concat vendored_static_frameworks.map { |l| File.basename(l, '.framework') } unless test_xcconfig?
517
- frameworks.concat consumer_frameworks
518
- frameworks.concat dependent_targets.flat_map { |pt| pt.build_settings.dynamic_frameworks_to_import }
519
- frameworks.concat dependent_targets.flat_map { |pt| pt.build_settings.static_frameworks_to_import } if test_xcconfig?
515
+ frameworks = []
516
+ if test_xcconfig? || (target.should_build? && target.requires_frameworks? && !target.static_framework?)
517
+ frameworks.concat vendored_static_frameworks.map { |l| File.basename(l, '.framework') }
518
+ end
519
+ if test_xcconfig?
520
+ frameworks.concat consumer_frameworks
521
+ frameworks.concat vendored_dynamic_frameworks.map { |l| File.basename(l, '.framework') }
522
+ frameworks.concat dependent_targets.flat_map { |pt| pt.build_settings.frameworks_to_import }
523
+ end
520
524
  frameworks
521
525
  end
522
526
 
@@ -538,8 +542,7 @@ module Pod
538
542
 
539
543
  # @return [Array<String>]
540
544
  define_build_settings_method :weak_frameworks, :memoized => true do
541
- return [] if (!target.requires_frameworks? || target.static_framework?) && !test_xcconfig?
542
-
545
+ return [] unless test_xcconfig?
543
546
  weak_frameworks = spec_consumers.flat_map(&:weak_frameworks)
544
547
  weak_frameworks.concat dependent_targets.flat_map { |pt| pt.build_settings.weak_frameworks_to_import }
545
548
  weak_frameworks
@@ -602,15 +605,24 @@ module Pod
602
605
  define_build_settings_method :libraries, :memoized => true, :sorted => true, :uniqued => true do
603
606
  return [] if (!target.requires_frameworks? || target.static_framework?) && !test_xcconfig?
604
607
 
605
- libraries = libraries_to_import.dup
606
- libraries.concat dependent_targets.flat_map { |pt| pt.build_settings.dynamic_libraries_to_import }
607
- libraries.concat dependent_targets.flat_map { |pt| pt.build_settings.static_libraries_to_import } if test_xcconfig?
608
+ libraries = []
609
+ if test_xcconfig? || target.requires_frameworks? && !target.static_framework?
610
+ libraries.concat vendored_static_frameworks.map { |l| File.basename(l, '.framework') }
611
+ libraries.concat libraries_to_import
612
+ end
613
+ if test_xcconfig?
614
+ libraries.concat dependent_targets.flat_map { |pt| pt.build_settings.dynamic_libraries_to_import }
615
+ libraries.concat dependent_targets.flat_map { |pt| pt.build_settings.static_libraries_to_import }
616
+ end
608
617
  libraries
609
618
  end
610
619
 
611
620
  # @return [Array<String>]
612
621
  define_build_settings_method :static_libraries_to_import, :memoized => true do
613
- static_libraries_to_import = vendored_static_libraries.map { |l| File.basename(l, l.extname).sub(/\Alib/, '') }
622
+ static_libraries_to_import = []
623
+ unless target.should_build? && target.requires_frameworks? && !target.static_framework?
624
+ static_libraries_to_import.concat vendored_static_libraries.map { |l| File.basename(l, l.extname).sub(/\Alib/, '') }
625
+ end
614
626
  static_libraries_to_import << target.product_basename if target.should_build? && !target.requires_frameworks?
615
627
  static_libraries_to_import
616
628
  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: 1.6.0.beta.2
4
+ version: 1.6.0.rc.1
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: 2018-10-17 00:00:00.000000000 Z
14
+ date: 2019-01-24 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.6.0.beta.2
22
+ version: 1.6.0.rc.1
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.6.0.beta.2
29
+ version: 1.6.0.rc.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ dependencies:
207
207
  requirements:
208
208
  - - ">="
209
209
  - !ruby/object:Gem::Version
210
- version: 1.7.0
210
+ version: 1.8.0
211
211
  - - "<"
212
212
  - !ruby/object:Gem::Version
213
213
  version: '2.0'
@@ -217,7 +217,7 @@ dependencies:
217
217
  requirements:
218
218
  - - ">="
219
219
  - !ruby/object:Gem::Version
220
- version: 1.7.0
220
+ version: 1.8.0
221
221
  - - "<"
222
222
  - !ruby/object:Gem::Version
223
223
  version: '2.0'
@@ -275,14 +275,14 @@ dependencies:
275
275
  requirements:
276
276
  - - "~>"
277
277
  - !ruby/object:Gem::Version
278
- version: 2.0.1
278
+ version: 2.1.0
279
279
  type: :runtime
280
280
  prerelease: false
281
281
  version_requirements: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: 2.0.1
285
+ version: 2.1.0
286
286
  - !ruby/object:Gem::Dependency
287
287
  name: gh_inspector
288
288
  requirement: !ruby/object:Gem::Requirement
@@ -534,7 +534,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
534
534
  version: '0'
535
535
  requirements: []
536
536
  rubyforge_project:
537
- rubygems_version: 2.7.7
537
+ rubygems_version: 2.6.14
538
538
  signing_key:
539
539
  specification_version: 3
540
540
  summary: The Cocoa library package manager.