fastlane 2.67.0.beta.20171128010003 → 2.67.0

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
2
  SHA1:
3
- metadata.gz: d92b3d6ba645ac912f3cdca875dae7ef62e56253
4
- data.tar.gz: 82cbe2ce21f20e2b1e293ca10bcf4a225e799e20
3
+ metadata.gz: 023dc8370b008bcf99703bb1543fd2ca6a2a32bd
4
+ data.tar.gz: eabea283aefde2fe8620c719d292fe6fd4da83bc
5
5
  SHA512:
6
- metadata.gz: c8c24e1621c5a651b25c426793998bf24061af17343c8ac0483c6ed86a9ff1a33aca439143aef136617fae07f16846116a4e0a5cbef87ebea4347a99a248c6d0
7
- data.tar.gz: c5653893d9d9e5fd495990681ade68aa559b84c6d6b820637b11f1eb47fe5a3f335df156e60562acf450fd75b470edf6cc7e08ef8d7888070df576dbd28dfd98
6
+ metadata.gz: 0f5c751c1a9873841c6ea8acfe70eb32e744007567089f1e983ee6b841c3d702981991e501c795dd92498084282f32c54cf593e567b6a68894e1f63564aa4953
7
+ data.tar.gz: df0ab4ebf116d631014475ad025c6173b7e71ccd1af77d41650363eda71e5cc1b59fbfd1da66accb072556a6df99da97f0c1196c775c8b47a752797f4c9bf6c5
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.67.0.beta.20171128010003'.freeze
2
+ VERSION = '2.67.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -1,6 +1,6 @@
1
1
  module FastlaneCore
2
2
  # Represents an Xcode project
3
- class Project
3
+ class Project # rubocop:disable Metrics/ClassLength
4
4
  class << self
5
5
  # Project discovery
6
6
  def detect_projects(config)
@@ -457,6 +457,34 @@ module FastlaneCore
457
457
  return result
458
458
  end
459
459
 
460
+ # Array of paths to all project files
461
+ # (might be multiple, because of workspaces)
462
+ def project_paths
463
+ return @_project_paths if @_project_paths
464
+ if self.workspace?
465
+ # Find the xcodeproj file, as the information isn't included in the workspace file
466
+ # We have a reference to the workspace, let's find the xcodeproj file
467
+ # For some reason the `plist` gem can't parse the content file
468
+ # so we'll use a regex to find all group references
469
+
470
+ workspace_data_path = File.join(path, "contents.xcworkspacedata")
471
+ workspace_data = File.read(workspace_data_path)
472
+ @_project_paths = workspace_data.scan(/\"group:(.*)\"/).collect do |current_match|
473
+ # It's a relative path from the workspace file
474
+ File.join(File.expand_path("..", path), current_match.first)
475
+ end.find_all do |current_match|
476
+ # We're not interested in a `Pods` project, as it doesn't contain any relevant
477
+ # information about code signing
478
+ !current_match.end_with?("Pods/Pods.xcodeproj")
479
+ end
480
+
481
+ return @_project_paths
482
+ else
483
+ # Return the path as an array
484
+ return @_project_paths = [path]
485
+ end
486
+ end
487
+
460
488
  private
461
489
 
462
490
  def parsed_info
@@ -4,8 +4,6 @@ module Gym
4
4
  class CodeSigningMapping
5
5
  attr_accessor :project
6
6
 
7
- attr_accessor :project_paths
8
-
9
7
  def initialize(project: nil)
10
8
  self.project = project
11
9
  end
@@ -72,34 +70,6 @@ module Gym
72
70
  return str.to_s.gsub("-", "").gsub(" ", "").gsub("InHouse", "enterprise").downcase.include?(contains.to_s.gsub("-", "").gsub(" ", "").downcase)
73
71
  end
74
72
 
75
- # Array of paths to all project files
76
- # (might be multiple, because of workspaces)
77
- def project_paths
78
- return @_project_paths if @_project_paths
79
- if self.project.workspace?
80
- # Find the xcodeproj file, as the information isn't included in the workspace file
81
- # We have a reference to the workspace, let's find the xcodeproj file
82
- # For some reason the `plist` gem can't parse the content file
83
- # so we'll use a regex to find all group references
84
-
85
- workspace_data_path = File.join(self.project.path, "contents.xcworkspacedata")
86
- workspace_data = File.read(workspace_data_path)
87
- @_project_paths = workspace_data.scan(/\"group:(.*)\"/).collect do |current_match|
88
- # It's a relative path from the workspace file
89
- File.join(File.expand_path("..", self.project.path), current_match.first)
90
- end.find_all do |current_match|
91
- # We're not interested in a `Pods` project, as it doesn't contain any relevant
92
- # information about code signing
93
- !current_match.end_with?("Pods/Pods.xcodeproj")
94
- end
95
-
96
- return @_project_paths
97
- else
98
- # Return the path as an array
99
- return @_project_paths = [self.project.path]
100
- end
101
- end
102
-
103
73
  def test_target?(build_settings)
104
74
  return (!build_settings["TEST_TARGET_NAME"].nil? || !build_settings["TEST_HOST"].nil?)
105
75
  end
@@ -123,7 +93,7 @@ module Gym
123
93
  provisioning_profile_mapping = {}
124
94
  specified_configuration = Gym.config[:configuration] || Gym.project.default_build_settings(key: "CONFIGURATION")
125
95
 
126
- self.project_paths.each do |project_path|
96
+ self.project.project_paths.each do |project_path|
127
97
  UI.verbose("Parsing project file '#{project_path}' to find selected provisioning profiles")
128
98
  UI.verbose("Finding provision profiles for '#{specified_configuration}'") if specified_configuration
129
99
 
@@ -170,7 +170,7 @@ module Gym
170
170
  # xcodebuild will not use provisioning profiles
171
171
  # if we don't specify signingStyle as manual
172
172
  if Helper.xcode_at_least?("9.0") && hash[:provisioningProfiles]
173
- hash[:signingStyle] = 'manual'
173
+ hash[:signingStyle] = signing_style
174
174
  end
175
175
 
176
176
  hash[:teamID] = Gym.config[:export_team_id] if Gym.config[:export_team_id]
@@ -189,6 +189,19 @@ module Gym
189
189
  to_plist(hash)
190
190
  end
191
191
 
192
+ def signing_style
193
+ projects = Gym.project.project_paths
194
+ project = projects.first
195
+ xcodeproj = Xcodeproj::Project.open(project)
196
+ xcodeproj.root_object.attributes["TargetAttributes"].each do |target, sett|
197
+ return sett["ProvisioningStyle"].to_s.downcase
198
+ end
199
+ rescue => e
200
+ UI.verbose(e.to_s)
201
+ UI.error("Unable to read provisioning style from .pbxproj file.")
202
+ return "automatic"
203
+ end
204
+
192
205
  # Avoids a Hash#to_plist conflict between CFPropertyList and plist gems
193
206
  def to_plist(hash)
194
207
  Plist::Emit.dump(hash, true)
@@ -439,7 +439,11 @@ module Spaceship
439
439
  sort: 'name=asc',
440
440
  includeRemovedDevices: include_disabled
441
441
  })
442
- parse_response(r, 'devices')
442
+ result = parse_response(r, 'devices')
443
+
444
+ csrf_cache[Spaceship::Device] = self.csrf_tokens
445
+
446
+ result
443
447
  end
444
448
  end
445
449
 
@@ -558,7 +562,11 @@ module Spaceship
558
562
  onlyCountLists: true
559
563
  })
560
564
 
561
- parse_response(req, 'provisioningProfiles')
565
+ result = parse_response(req, 'provisioningProfiles')
566
+
567
+ csrf_cache[Spaceship::ProvisioningProfile] = self.csrf_tokens
568
+
569
+ result
562
570
  end
563
571
  end
564
572
 
@@ -577,7 +585,11 @@ module Spaceship
577
585
  }
578
586
  end
579
587
 
580
- parse_response(req, 'provisioningProfiles')
588
+ result = parse_response(req, 'provisioningProfiles')
589
+
590
+ csrf_cache[Spaceship::ProvisioningProfile] = self.csrf_tokens
591
+
592
+ result
581
593
  end
582
594
 
583
595
  def provisioning_profile_details(provisioning_profile_id: nil, mac: false)
@@ -734,12 +746,6 @@ module Spaceship
734
746
  # we don't have a valid csrf token, that's why we have to do at least one request
735
747
  block_given? ? yield : klass.all
736
748
 
737
- # Update 18th August 2016
738
- # For some reason, we have to query the resource twice to actually get a valid csrf_token
739
- # I couldn't find out why, the first response does have a valid Set-Cookie header
740
- # But it still needs this second request
741
- block_given? ? yield : klass.all
742
-
743
749
  csrf_cache[klass] = self.csrf_tokens
744
750
  end
745
751
 
@@ -1202,7 +1202,10 @@ module Spaceship
1202
1202
  }.to_json
1203
1203
  req.headers['Content-Type'] = 'application/json'
1204
1204
  end
1205
- parse_response(r, 'data')['user']
1205
+ response_object = parse_response(r, 'data')
1206
+ errors = response_object['sectionErrorKeys']
1207
+ raise ITunesConnectError, errors.join(' ') unless errors.empty?
1208
+ response_object['user']
1206
1209
  end
1207
1210
 
1208
1211
  def delete_sandbox_testers!(tester_class, emails)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.67.0.beta.20171128010003
4
+ version: 2.67.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -828,6 +828,7 @@ files:
828
828
  - deliver/lib/deliver/upload_price_tier.rb
829
829
  - deliver/lib/deliver/upload_screenshots.rb
830
830
  - fastlane/README.md
831
+ - fastlane/lib/.DS_Store
831
832
  - fastlane/lib/assets/ActionDetails.md.erb
832
833
  - fastlane/lib/assets/Actions.md.erb
833
834
  - fastlane/lib/assets/AppfileTemplate
@@ -845,8 +846,10 @@ files:
845
846
  - fastlane/lib/assets/s3_plist_template.erb
846
847
  - fastlane/lib/assets/s3_version_template.erb
847
848
  - fastlane/lib/fastlane.rb
849
+ - fastlane/lib/fastlane/.DS_Store
848
850
  - fastlane/lib/fastlane/action.rb
849
851
  - fastlane/lib/fastlane/action_collector.rb
852
+ - fastlane/lib/fastlane/actions/.DS_Store
850
853
  - fastlane/lib/fastlane/actions/README.md
851
854
  - fastlane/lib/fastlane/actions/actions_helper.rb
852
855
  - fastlane/lib/fastlane/actions/adb.rb
@@ -891,6 +894,8 @@ files:
891
894
  - fastlane/lib/fastlane/actions/deliver.rb
892
895
  - fastlane/lib/fastlane/actions/deploygate.rb
893
896
  - fastlane/lib/fastlane/actions/device_grid/README.md
897
+ - fastlane/lib/fastlane/actions/docs/.DS_Store
898
+ - fastlane/lib/fastlane/actions/docs/assets/.DS_Store
894
899
  - fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif
895
900
  - fastlane/lib/fastlane/actions/docs/assets/MacExample.png
896
901
  - fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif
@@ -1504,24 +1509,24 @@ metadata:
1504
1509
  post_install_message:
1505
1510
  rdoc_options: []
1506
1511
  require_paths:
1507
- - supply/lib
1508
- - screengrab/lib
1512
+ - cert/lib
1513
+ - credentials_manager/lib
1514
+ - deliver/lib
1515
+ - fastlane/lib
1516
+ - fastlane_core/lib
1517
+ - frameit/lib
1518
+ - gym/lib
1509
1519
  - match/lib
1520
+ - pem/lib
1521
+ - pilot/lib
1510
1522
  - precheck/lib
1511
- - sigh/lib
1512
1523
  - produce/lib
1513
1524
  - scan/lib
1514
- - gym/lib
1525
+ - screengrab/lib
1526
+ - sigh/lib
1515
1527
  - snapshot/lib
1516
- - frameit/lib
1517
- - fastlane/lib
1518
- - cert/lib
1519
- - pilot/lib
1520
1528
  - spaceship/lib
1521
- - credentials_manager/lib
1522
- - deliver/lib
1523
- - fastlane_core/lib
1524
- - pem/lib
1529
+ - supply/lib
1525
1530
  required_ruby_version: !ruby/object:Gem::Requirement
1526
1531
  requirements:
1527
1532
  - - ">="
@@ -1529,14 +1534,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
1529
1534
  version: 2.0.0
1530
1535
  required_rubygems_version: !ruby/object:Gem::Requirement
1531
1536
  requirements:
1532
- - - ">"
1537
+ - - ">="
1533
1538
  - !ruby/object:Gem::Version
1534
- version: 1.3.1
1539
+ version: '0'
1535
1540
  requirements: []
1536
1541
  rubyforge_project:
1537
- rubygems_version: 2.4.5.1
1542
+ rubygems_version: 2.6.8
1538
1543
  signing_key:
1539
1544
  specification_version: 4
1540
1545
  summary: The easiest way to automate beta deployments and releases for your iOS and
1541
1546
  Android apps
1542
1547
  test_files: []
1548
+ has_rdoc: