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 +4 -4
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/.DS_Store +0 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +29 -1
- data/gym/lib/gym/code_signing_mapping.rb +1 -31
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +14 -1
- data/spaceship/lib/spaceship/portal/portal_client.rb +15 -9
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -1
- metadata +22 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 023dc8370b008bcf99703bb1543fd2ca6a2a32bd
|
4
|
+
data.tar.gz: eabea283aefde2fe8620c719d292fe6fd4da83bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f5c751c1a9873841c6ea8acfe70eb32e744007567089f1e983ee6b841c3d702981991e501c795dd92498084282f32c54cf593e567b6a68894e1f63564aa4953
|
7
|
+
data.tar.gz: df0ab4ebf116d631014475ad025c6173b7e71ccd1af77d41650363eda71e5cc1b59fbfd1da66accb072556a6df99da97f0c1196c775c8b47a752797f4c9bf6c5
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.67.0
|
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] =
|
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')
|
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
|
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
|
-
-
|
1508
|
-
-
|
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
|
-
-
|
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
|
-
-
|
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:
|
1539
|
+
version: '0'
|
1535
1540
|
requirements: []
|
1536
1541
|
rubyforge_project:
|
1537
|
-
rubygems_version: 2.
|
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:
|