cocoapods 1.6.0.beta.2 → 1.6.0.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.