fastlane 2.150.0.rc3 → 2.150.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +76 -76
- data/deliver/lib/deliver/download_screenshots.rb +48 -26
- data/deliver/lib/deliver/runner.rb +4 -1
- data/deliver/lib/deliver/submit_for_review.rb +26 -7
- data/deliver/lib/deliver/upload_metadata.rb +29 -10
- data/deliver/lib/deliver/upload_screenshots.rb +49 -10
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +6 -6
- data/fastlane/swift/Fastlane.swift +22 -19
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SocketClient.swift +2 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +4 -4
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +0 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +89 -52
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +1 -1
- data/pilot/lib/pilot/.manager.rb.swp +0 -0
- data/produce/lib/produce/itunes_connect.rb +29 -2
- data/spaceship/lib/spaceship/{.DS_Store → connect_api/.DS_Store} +0 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +42 -10
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +46 -6
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +62 -10
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +18 -28
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +86 -37
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +32 -2
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +5 -6
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +22 -3
- data/spaceship/lib/spaceship/connect_api/models/user.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +41 -13
- data/spaceship/lib/spaceship/connect_api/users/users.rb +13 -0
- metadata +37 -32
@@ -1,5 +1,8 @@
|
|
1
1
|
require_relative '../model'
|
2
2
|
require_relative '../file_uploader'
|
3
|
+
require 'spaceship/globals'
|
4
|
+
|
5
|
+
require 'digest/md5'
|
3
6
|
|
4
7
|
module Spaceship
|
5
8
|
class ConnectAPI
|
@@ -15,36 +18,6 @@ module Spaceship
|
|
15
18
|
attr_accessor :asset_delivery_state
|
16
19
|
attr_accessor :uploaded
|
17
20
|
|
18
|
-
# "fileSize": 92542,
|
19
|
-
# "fileName": "ftl_3241d62418767c0aa9b889b020c4f8db_45455763d4aaf7b18ee0045bc787f3de.png",
|
20
|
-
# "sourceFileChecksum": "c237fd7852ed8f9285d16d9a28d2ec25",
|
21
|
-
# "imageAsset": {
|
22
|
-
# "templateUrl": "https://is4-ssl.mzstatic.com/image/thumb/Purple113/v4/61/18/68/61186886-b234-5bd0-1f4a-563124f18511/pr_source.png/{w}x{h}bb.{f}",
|
23
|
-
# "width": 2048,
|
24
|
-
# "height": 2732
|
25
|
-
# },
|
26
|
-
# "assetToken": "Purple113/v4/61/18/68/61186886-b234-5bd0-1f4a-563124f18511/pr_source.png",
|
27
|
-
# "assetType": "SortedJ99ScreenShot",
|
28
|
-
# "uploadOperations": null,
|
29
|
-
# "assetDeliveryState": {
|
30
|
-
# "errors": [],
|
31
|
-
# "warnings": null,
|
32
|
-
# "state": "COMPLETE"
|
33
|
-
# },
|
34
|
-
# "uploaded": null
|
35
|
-
|
36
|
-
# "assetDeliveryState": {
|
37
|
-
# "errors": [],
|
38
|
-
# "warnings": null,
|
39
|
-
# "state": "AWAITING_UPLOAD"
|
40
|
-
# },
|
41
|
-
|
42
|
-
# "assetDeliveryState": {
|
43
|
-
# "errors": [],
|
44
|
-
# "warnings": null,
|
45
|
-
# "state": "UPLOAD_COMPLETE"
|
46
|
-
# },
|
47
|
-
|
48
21
|
attr_mapping({
|
49
22
|
"fileName" => "file_name",
|
50
23
|
"sourceFileChecksum" => "source_file_checksum",
|
@@ -60,33 +33,109 @@ module Spaceship
|
|
60
33
|
return "appScreenshots"
|
61
34
|
end
|
62
35
|
|
36
|
+
def complete?
|
37
|
+
(asset_delivery_state || {})["state"] == "COMPLETE"
|
38
|
+
end
|
39
|
+
|
40
|
+
def error?
|
41
|
+
(asset_delivery_state || {})["state"] == "FAILED"
|
42
|
+
end
|
43
|
+
|
44
|
+
def error_messages
|
45
|
+
errors = (asset_delivery_state || {})["errors"]
|
46
|
+
(errors || []).map do |error|
|
47
|
+
[error["code"], error["description"]].compact.join(" - ")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# This does not download the source image (exact image that was uploaded)
|
52
|
+
# This downloads a modified version.
|
53
|
+
# This image won't have the same checksums as source_file_checksum.
|
54
|
+
#
|
55
|
+
# There is an open radar for allowing downloading of source file.
|
56
|
+
# https://openradar.appspot.com/radar?id=4980344105205760
|
57
|
+
def image_asset_url(width: nil, height: nil, type: "png")
|
58
|
+
return nil if image_asset.nil?
|
59
|
+
|
60
|
+
template_url = image_asset["templateUrl"]
|
61
|
+
width ||= image_asset["width"]
|
62
|
+
height ||= image_asset["height"]
|
63
|
+
|
64
|
+
return template_url
|
65
|
+
.gsub("{w}", width.to_s)
|
66
|
+
.gsub("{h}", height.to_s)
|
67
|
+
.gsub("{f}", type)
|
68
|
+
end
|
69
|
+
|
63
70
|
#
|
64
71
|
# API
|
65
72
|
#
|
73
|
+
#
|
66
74
|
|
67
|
-
def self.create(app_screenshot_set_id: nil, path: nil)
|
75
|
+
def self.create(app_screenshot_set_id: nil, path: nil, wait_for_processing: true)
|
68
76
|
require 'faraday'
|
69
77
|
|
70
78
|
filename = File.basename(path)
|
71
79
|
filesize = File.size(path)
|
72
|
-
|
80
|
+
bytes = File.binread(path)
|
73
81
|
|
74
82
|
post_attributes = {
|
75
83
|
fileSize: filesize,
|
76
84
|
fileName: filename
|
77
85
|
}
|
78
86
|
|
79
|
-
|
87
|
+
# Create placeholder
|
88
|
+
screenshot = Spaceship::ConnectAPI.post_app_screenshot(
|
89
|
+
app_screenshot_set_id: app_screenshot_set_id,
|
90
|
+
attributes: post_attributes
|
91
|
+
).first
|
80
92
|
|
81
|
-
|
82
|
-
|
93
|
+
# Upload the file
|
94
|
+
upload_operations = screenshot.upload_operations
|
95
|
+
Spaceship::ConnectAPI::FileUploader.upload(upload_operations, bytes)
|
83
96
|
|
97
|
+
# Update file uploading complete
|
84
98
|
patch_attributes = {
|
85
99
|
uploaded: true,
|
86
|
-
sourceFileChecksum:
|
100
|
+
sourceFileChecksum: Digest::MD5.hexdigest(bytes)
|
87
101
|
}
|
88
102
|
|
89
|
-
|
103
|
+
# Patch screenshot that file upload is complete
|
104
|
+
# Catch error if patch retries due to 504. Origal patch
|
105
|
+
# may go through by return response as 504.
|
106
|
+
begin
|
107
|
+
screenshot = Spaceship::ConnectAPI.patch_app_screenshot(
|
108
|
+
app_screenshot_id: screenshot.id,
|
109
|
+
attributes: patch_attributes
|
110
|
+
).first
|
111
|
+
rescue => error
|
112
|
+
puts("Failed to patch app screenshot. Update may have gone through so verifying") if Spaceship::Globals.verbose?
|
113
|
+
|
114
|
+
screenshot = Spaceship::ConnectAPI.get_app_screenshot(app_screenshot_id: screenshot.id).first
|
115
|
+
raise error unless screenshot.complete?
|
116
|
+
end
|
117
|
+
|
118
|
+
# Wait for processing
|
119
|
+
if wait_for_processing
|
120
|
+
loop do
|
121
|
+
if screenshot.complete?
|
122
|
+
puts("Screenshot processing complete!") if Spaceship::Globals.verbose?
|
123
|
+
break
|
124
|
+
elsif screenshot.error?
|
125
|
+
messages = ["Error processing screenshot '#{screenshot.file_name}'"] + screenshot.error_messages
|
126
|
+
raise messages.join(". ")
|
127
|
+
end
|
128
|
+
|
129
|
+
# Poll every 2 seconds
|
130
|
+
sleep_time = 2
|
131
|
+
puts("Waiting #{sleep_time} seconds before checking status of processing...") if Spaceship::Globals.verbose?
|
132
|
+
sleep(sleep_time)
|
133
|
+
|
134
|
+
screenshot = Spaceship::ConnectAPI.get_app_screenshot(app_screenshot_id: screenshot.id).first
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
return screenshot
|
90
139
|
end
|
91
140
|
|
92
141
|
def delete!(filter: {}, includes: nil, limit: nil, sort: nil)
|
@@ -39,8 +39,24 @@ module Spaceship
|
|
39
39
|
APP_WATCH_SERIES_3 = "APP_WATCH_SERIES_3"
|
40
40
|
APP_WATCH_SERIES_4 = "APP_WATCH_SERIES_4"
|
41
41
|
|
42
|
+
APP_APPLE_TV = "APP_APPLE_TV"
|
43
|
+
|
42
44
|
APP_DESKTOP = "APP_DESKTOP"
|
43
45
|
|
46
|
+
ALL_IMESSAGE = [
|
47
|
+
IMESSAGE_APP_IPHONE_40,
|
48
|
+
IMESSAGE_APP_IPHONE_47,
|
49
|
+
IMESSAGE_APP_IPHONE_55,
|
50
|
+
IMESSAGE_APP_IPHONE_58,
|
51
|
+
IMESSAGE_APP_IPHONE_65,
|
52
|
+
|
53
|
+
IMESSAGE_APP_IPAD_97,
|
54
|
+
IMESSAGE_APP_IPAD_105,
|
55
|
+
IMESSAGE_APP_IPAD_PRO_129,
|
56
|
+
IMESSAGE_APP_IPAD_PRO_3GEN_11,
|
57
|
+
IMESSAGE_APP_IPAD_PRO_3GEN_129
|
58
|
+
]
|
59
|
+
|
44
60
|
ALL = [
|
45
61
|
APP_IPHONE_35,
|
46
62
|
APP_IPHONE_40,
|
@@ -84,6 +100,14 @@ module Spaceship
|
|
84
100
|
return "appScreenshotSets"
|
85
101
|
end
|
86
102
|
|
103
|
+
def apple_tv?
|
104
|
+
DisplayType::APP_APPLE_TV == screenshot_display_type
|
105
|
+
end
|
106
|
+
|
107
|
+
def imessage?
|
108
|
+
DisplayType::ALL_IMESSAGE.include?(screenshot_display_type)
|
109
|
+
end
|
110
|
+
|
87
111
|
#
|
88
112
|
# API
|
89
113
|
#
|
@@ -93,8 +117,14 @@ module Spaceship
|
|
93
117
|
return resp.to_models
|
94
118
|
end
|
95
119
|
|
96
|
-
def upload_screenshot(path: nil)
|
97
|
-
return Spaceship::ConnectAPI::AppScreenshot.create(app_screenshot_set_id: id, path: path)
|
120
|
+
def upload_screenshot(path: nil, wait_for_processing: true)
|
121
|
+
return Spaceship::ConnectAPI::AppScreenshot.create(app_screenshot_set_id: id, path: path, wait_for_processing: wait_for_processing)
|
122
|
+
end
|
123
|
+
|
124
|
+
def reorder_screenshots(app_screenshot_ids: nil)
|
125
|
+
Spaceship::ConnectAPI.patch_app_screenshot_set_screenshots(app_screenshot_set_id: id, app_screenshot_ids: app_screenshot_ids)
|
126
|
+
|
127
|
+
return Spaceship::ConnectAPI.get_app_screenshot_set(app_screenshot_set_id: id, includes: "appScreenshots").first
|
98
128
|
end
|
99
129
|
end
|
100
130
|
end
|
@@ -15,6 +15,8 @@ module Spaceship
|
|
15
15
|
attr_accessor :demo_account_required
|
16
16
|
attr_accessor :notes
|
17
17
|
|
18
|
+
attr_accessor :app_store_review_attachments
|
19
|
+
|
18
20
|
attr_mapping({
|
19
21
|
"contactFirstName" => "contact_first_name",
|
20
22
|
"contactLastName" => "contact_last_name",
|
@@ -23,7 +25,9 @@ module Spaceship
|
|
23
25
|
"demoAccountName" => "demo_account_name",
|
24
26
|
"demoAccountPassword" => "demo_account_password",
|
25
27
|
"demoAccountRequired" => "demo_account_required",
|
26
|
-
"notes" => "notes"
|
28
|
+
"notes" => "notes",
|
29
|
+
|
30
|
+
"appStoreReviewAttachments" => "app_store_review_attachments"
|
27
31
|
})
|
28
32
|
|
29
33
|
def self.type
|
@@ -34,11 +38,6 @@ module Spaceship
|
|
34
38
|
# API
|
35
39
|
#
|
36
40
|
|
37
|
-
def fetch_app_review_attachments
|
38
|
-
resp = Spaceship::ConnectAPI.get_app_review_attachments(app_store_review_detail_id: id)
|
39
|
-
return resp.to_models
|
40
|
-
end
|
41
|
-
|
42
41
|
def update(attributes: nil)
|
43
42
|
return Spaceship::ConnectAPI.patch_app_store_review_detail(app_store_review_detail_id: id, attributes: attributes)
|
44
43
|
end
|
@@ -19,13 +19,19 @@ module Spaceship
|
|
19
19
|
attr_accessor :downloadable
|
20
20
|
attr_accessor :created_date
|
21
21
|
|
22
|
+
attr_accessor :app_store_version_submission
|
23
|
+
|
22
24
|
module AppStoreState
|
23
25
|
READY_FOR_SALE = "READY_FOR_SALE"
|
26
|
+
PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE"
|
27
|
+
PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE"
|
28
|
+
IN_REVIEW = "IN_REVIEW"
|
24
29
|
WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
|
25
30
|
DEVELOPER_REJECTED = "DEVELOPER_REJECTED"
|
26
31
|
REJECTED = "REJECTED"
|
27
32
|
PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION"
|
28
33
|
METADATA_REJECTED = "METADATA_REJECTED"
|
34
|
+
INVALID_BINARY = "INVALID_BINARY"
|
29
35
|
end
|
30
36
|
|
31
37
|
module ReleaseType
|
@@ -46,13 +52,26 @@ module Spaceship
|
|
46
52
|
"usesIdfa" => "uses_idfa",
|
47
53
|
"isWatchOnly" => "is_watch_only",
|
48
54
|
"downloadable" => "downloadable",
|
49
|
-
"createdDate" => "created_date"
|
55
|
+
"createdDate" => "created_date",
|
56
|
+
|
57
|
+
"appStoreVersionSubmission" => "app_store_version_submission"
|
50
58
|
})
|
51
59
|
|
52
60
|
def self.type
|
53
61
|
return "appStoreVersions"
|
54
62
|
end
|
55
63
|
|
64
|
+
def can_reject?
|
65
|
+
raise "No app_store_version_submission included" unless app_store_version_submission
|
66
|
+
return app_store_version_submission.can_reject
|
67
|
+
end
|
68
|
+
|
69
|
+
def reject!
|
70
|
+
return false unless can_reject?
|
71
|
+
app_store_version_submission.delete!
|
72
|
+
return true
|
73
|
+
end
|
74
|
+
|
56
75
|
#
|
57
76
|
# API
|
58
77
|
#
|
@@ -103,8 +122,8 @@ module Spaceship
|
|
103
122
|
return resp.to_models.first
|
104
123
|
end
|
105
124
|
|
106
|
-
def fetch_app_store_review_detail
|
107
|
-
resp = Spaceship::ConnectAPI.get_app_store_review_detail(app_store_version_id: id)
|
125
|
+
def fetch_app_store_review_detail(includes: "appStoreReviewAttachments")
|
126
|
+
resp = Spaceship::ConnectAPI.get_app_store_review_detail(app_store_version_id: id, includes: includes)
|
108
127
|
return resp.to_models.first
|
109
128
|
end
|
110
129
|
|
@@ -39,7 +39,8 @@ module Spaceship
|
|
39
39
|
#
|
40
40
|
|
41
41
|
def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
|
42
|
-
|
42
|
+
resps = Spaceship::ConnectAPI.get_users(filter: filter, includes: includes).all_pages
|
43
|
+
return resps.flat_map(&:to_models)
|
43
44
|
end
|
44
45
|
|
45
46
|
def self.find(email: nil, includes: nil)
|
@@ -28,7 +28,7 @@ module Spaceship
|
|
28
28
|
# app
|
29
29
|
#
|
30
30
|
|
31
|
-
def post_app(name: nil, version_string: nil, sku: nil, primary_locale: nil, bundle_id: nil, platforms: nil)
|
31
|
+
def post_app(name: nil, version_string: nil, sku: nil, primary_locale: nil, bundle_id: nil, platforms: nil, company_name: nil)
|
32
32
|
included = []
|
33
33
|
included << {
|
34
34
|
type: "appInfos",
|
@@ -103,14 +103,17 @@ module Spaceship
|
|
103
103
|
}
|
104
104
|
}
|
105
105
|
|
106
|
+
app_attributes = {
|
107
|
+
sku: sku,
|
108
|
+
primaryLocale: primary_locale,
|
109
|
+
bundleId: bundle_id
|
110
|
+
}
|
111
|
+
app_attributes[:companyName] = company_name if company_name
|
112
|
+
|
106
113
|
body = {
|
107
114
|
data: {
|
108
115
|
type: "apps",
|
109
|
-
attributes:
|
110
|
-
sku: sku,
|
111
|
-
primaryLocale: primary_locale,
|
112
|
-
bundleId: bundle_id
|
113
|
-
},
|
116
|
+
attributes: app_attributes,
|
114
117
|
relationships: relationships
|
115
118
|
},
|
116
119
|
included: included
|
@@ -188,6 +191,11 @@ module Spaceship
|
|
188
191
|
# appPreview
|
189
192
|
#
|
190
193
|
|
194
|
+
def get_app_preview(app_preview_id: nil)
|
195
|
+
params = Client.instance.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
196
|
+
Client.instance.get("appPreviews/#{app_preview_id}", params)
|
197
|
+
end
|
198
|
+
|
191
199
|
def post_app_preview(app_preview_set_id: nil, attributes: {})
|
192
200
|
body = {
|
193
201
|
data: {
|
@@ -265,11 +273,6 @@ module Spaceship
|
|
265
273
|
# appReviewAttachments
|
266
274
|
#
|
267
275
|
|
268
|
-
def get_app_review_attachments(app_store_review_detail_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
269
|
-
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
270
|
-
Client.instance.get("appStoreReviewDetails/#{app_store_review_detail_id}/appReviewAttachments", params)
|
271
|
-
end
|
272
|
-
|
273
276
|
def post_app_review_attachment(app_store_review_detail_id: nil, attributes: {})
|
274
277
|
body = {
|
275
278
|
data: {
|
@@ -315,6 +318,11 @@ module Spaceship
|
|
315
318
|
Client.instance.get("appScreenshotSets", params)
|
316
319
|
end
|
317
320
|
|
321
|
+
def get_app_screenshot_set(app_screenshot_set_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
322
|
+
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
323
|
+
Client.instance.get("appScreenshotSets/#{app_screenshot_set_id}", params)
|
324
|
+
end
|
325
|
+
|
318
326
|
def post_app_screenshot_set(app_store_version_localization_id: nil, attributes: {})
|
319
327
|
body = {
|
320
328
|
data: {
|
@@ -334,10 +342,30 @@ module Spaceship
|
|
334
342
|
Client.instance.post("appScreenshotSets", body)
|
335
343
|
end
|
336
344
|
|
345
|
+
def patch_app_screenshot_set_screenshots(app_screenshot_set_id: nil, app_screenshot_ids: nil)
|
346
|
+
app_screenshot_ids ||= []
|
347
|
+
|
348
|
+
body = {
|
349
|
+
data: app_screenshot_ids.map do |app_screenshot_id|
|
350
|
+
{
|
351
|
+
type: "appScreenshots",
|
352
|
+
id: app_screenshot_id
|
353
|
+
}
|
354
|
+
end
|
355
|
+
}
|
356
|
+
|
357
|
+
Client.instance.patch("appScreenshotSets/#{app_screenshot_set_id}/relationships/appScreenshots", body)
|
358
|
+
end
|
359
|
+
|
337
360
|
#
|
338
361
|
# appScreenshots
|
339
362
|
#
|
340
363
|
|
364
|
+
def get_app_screenshot(app_screenshot_id: nil)
|
365
|
+
params = Client.instance.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
366
|
+
Client.instance.get("appScreenshots/#{app_screenshot_id}", params)
|
367
|
+
end
|
368
|
+
|
341
369
|
def post_app_screenshot(app_screenshot_set_id: nil, attributes: {})
|
342
370
|
body = {
|
343
371
|
data: {
|
@@ -378,9 +406,9 @@ module Spaceship
|
|
378
406
|
# appInfos
|
379
407
|
#
|
380
408
|
|
381
|
-
def get_app_infos(
|
409
|
+
def get_app_infos(filter: {}, includes: nil, limit: nil, sort: nil)
|
382
410
|
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
383
|
-
Client.instance.get("
|
411
|
+
Client.instance.get("appInfos", params)
|
384
412
|
end
|
385
413
|
|
386
414
|
def patch_app_info(app_info_id: nil, attributes: {})
|
@@ -11,6 +11,19 @@ module Spaceship
|
|
11
11
|
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
12
12
|
Client.instance.get("users", params)
|
13
13
|
end
|
14
|
+
|
15
|
+
def add_user_visible_apps(user_id: nil, app_ids: nil)
|
16
|
+
body = {
|
17
|
+
data: app_ids.map do |app_id|
|
18
|
+
{
|
19
|
+
type: "apps",
|
20
|
+
id: app_id
|
21
|
+
}
|
22
|
+
end
|
23
|
+
}
|
24
|
+
|
25
|
+
Client.instance.post("users/#{user_id}/relationships/visibleApps", body)
|
26
|
+
end
|
14
27
|
end
|
15
28
|
end
|
16
29
|
end
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.150.0
|
4
|
+
version: 2.150.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Manu Wallner
|
8
|
-
- Danielle Tomlinson
|
9
|
-
- Matthew Ellis
|
10
|
-
- Stefan Natchev
|
11
|
-
- Jimmy Dee
|
12
|
-
- Kohki Miki
|
13
|
-
- Jorge Revuelta H
|
14
|
-
- Daniel Jankowski
|
15
|
-
- Jérôme Lacoste
|
16
7
|
- Andrew McBurney
|
17
|
-
-
|
18
|
-
-
|
19
|
-
- Helmut Januschka
|
8
|
+
- Jimmy Dee
|
9
|
+
- Matthew Ellis
|
20
10
|
- Jan Piotrowski
|
21
|
-
- Luka Mirosevic
|
22
|
-
- Felix Krause
|
23
|
-
- Fumiya Nakamura
|
24
|
-
- Olivier Halligon
|
25
|
-
- Maksym Grebenets
|
26
11
|
- Aaron Brager
|
12
|
+
- Helmut Januschka
|
27
13
|
- Josh Holtz
|
14
|
+
- Daniel Jankowski
|
15
|
+
- Manu Wallner
|
16
|
+
- Kohki Miki
|
17
|
+
- Luka Mirosevic
|
18
|
+
- Max Ott
|
19
|
+
- Jorge Revuelta H
|
20
|
+
- Danielle Tomlinson
|
21
|
+
- Stefan Natchev
|
22
|
+
- Fumiya Nakamura
|
23
|
+
- Iulian Onofrei
|
28
24
|
- Joshua Liebowitz
|
29
|
-
|
25
|
+
- Jérôme Lacoste
|
26
|
+
- Maksym Grebenets
|
27
|
+
- Olivier Halligon
|
28
|
+
- Felix Krause
|
29
|
+
autorequire:
|
30
30
|
bindir: bin
|
31
31
|
cert_chain: []
|
32
|
-
date: 2020-
|
32
|
+
date: 2020-07-01 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: slack-notifier
|
@@ -495,20 +495,20 @@ dependencies:
|
|
495
495
|
requirements:
|
496
496
|
- - ">="
|
497
497
|
- !ruby/object:Gem::Version
|
498
|
-
version:
|
498
|
+
version: 2.0.0
|
499
499
|
- - "<"
|
500
500
|
- !ruby/object:Gem::Version
|
501
|
-
version:
|
501
|
+
version: 3.0.0
|
502
502
|
type: :runtime
|
503
503
|
prerelease: false
|
504
504
|
version_requirements: !ruby/object:Gem::Requirement
|
505
505
|
requirements:
|
506
506
|
- - ">="
|
507
507
|
- !ruby/object:Gem::Version
|
508
|
-
version:
|
508
|
+
version: 2.0.0
|
509
509
|
- - "<"
|
510
510
|
- !ruby/object:Gem::Version
|
511
|
-
version:
|
511
|
+
version: 3.0.0
|
512
512
|
- !ruby/object:Gem::Dependency
|
513
513
|
name: security
|
514
514
|
requirement: !ruby/object:Gem::Requirement
|
@@ -654,7 +654,7 @@ dependencies:
|
|
654
654
|
version: '0.1'
|
655
655
|
- - "<"
|
656
656
|
- !ruby/object:Gem::Version
|
657
|
-
version: '
|
657
|
+
version: '4.0'
|
658
658
|
type: :runtime
|
659
659
|
prerelease: false
|
660
660
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -664,7 +664,7 @@ dependencies:
|
|
664
664
|
version: '0.1'
|
665
665
|
- - "<"
|
666
666
|
- !ruby/object:Gem::Version
|
667
|
-
version: '
|
667
|
+
version: '4.0'
|
668
668
|
- !ruby/object:Gem::Dependency
|
669
669
|
name: aws-sdk-s3
|
670
670
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1013,6 +1013,9 @@ files:
|
|
1013
1013
|
- fastlane/lib/fastlane.rb
|
1014
1014
|
- fastlane/lib/fastlane/action.rb
|
1015
1015
|
- fastlane/lib/fastlane/action_collector.rb
|
1016
|
+
- fastlane/lib/fastlane/actions/.hockey.rb.swp
|
1017
|
+
- fastlane/lib/fastlane/actions/.slack.rb.swp
|
1018
|
+
- fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
|
1016
1019
|
- fastlane/lib/fastlane/actions/README.md
|
1017
1020
|
- fastlane/lib/fastlane/actions/actions_helper.rb
|
1018
1021
|
- fastlane/lib/fastlane/actions/adb.rb
|
@@ -1349,6 +1352,7 @@ files:
|
|
1349
1352
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
|
1350
1353
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
1351
1354
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
1355
|
+
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
|
1352
1356
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
|
1353
1357
|
- fastlane/swift/FastlaneSwiftRunner/README.txt
|
1354
1358
|
- fastlane/swift/Gymfile.swift
|
@@ -1505,6 +1509,7 @@ files:
|
|
1505
1509
|
- pem/lib/pem/options.rb
|
1506
1510
|
- pilot/README.md
|
1507
1511
|
- pilot/lib/pilot.rb
|
1512
|
+
- pilot/lib/pilot/.manager.rb.swp
|
1508
1513
|
- pilot/lib/pilot/build_manager.rb
|
1509
1514
|
- pilot/lib/pilot/commands_generator.rb
|
1510
1515
|
- pilot/lib/pilot/features.rb
|
@@ -1632,12 +1637,12 @@ files:
|
|
1632
1637
|
- spaceship/lib/assets/languageMapping.json
|
1633
1638
|
- spaceship/lib/assets/languageMappingReadable.json
|
1634
1639
|
- spaceship/lib/spaceship.rb
|
1635
|
-
- spaceship/lib/spaceship/.DS_Store
|
1636
1640
|
- spaceship/lib/spaceship/babosa_fix.rb
|
1637
1641
|
- spaceship/lib/spaceship/base.rb
|
1638
1642
|
- spaceship/lib/spaceship/client.rb
|
1639
1643
|
- spaceship/lib/spaceship/commands_generator.rb
|
1640
1644
|
- spaceship/lib/spaceship/connect_api.rb
|
1645
|
+
- spaceship/lib/spaceship/connect_api/.DS_Store
|
1641
1646
|
- spaceship/lib/spaceship/connect_api/client.rb
|
1642
1647
|
- spaceship/lib/spaceship/connect_api/file_uploader.rb
|
1643
1648
|
- spaceship/lib/spaceship/connect_api/model.rb
|
@@ -1809,7 +1814,7 @@ licenses:
|
|
1809
1814
|
- MIT
|
1810
1815
|
metadata:
|
1811
1816
|
docs_url: https://docs.fastlane.tools
|
1812
|
-
post_install_message:
|
1817
|
+
post_install_message:
|
1813
1818
|
rdoc_options: []
|
1814
1819
|
require_paths:
|
1815
1820
|
- credentials_manager/lib
|
@@ -1837,12 +1842,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1837
1842
|
version: '2.4'
|
1838
1843
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1839
1844
|
requirements:
|
1840
|
-
- - "
|
1845
|
+
- - ">="
|
1841
1846
|
- !ruby/object:Gem::Version
|
1842
|
-
version:
|
1847
|
+
version: '0'
|
1843
1848
|
requirements: []
|
1844
|
-
rubygems_version: 3.0.
|
1845
|
-
signing_key:
|
1849
|
+
rubygems_version: 3.0.3
|
1850
|
+
signing_key:
|
1846
1851
|
specification_version: 4
|
1847
1852
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
1848
1853
|
Android apps
|