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