fastlane 2.67.0.beta.20171128010003 → 2.67.0

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: 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: