fastlane 2.126.0.beta.20190606200048 → 2.126.0.beta.20190607200028
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/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +3 -4
- data/pilot/lib/pilot/build_manager.rb +7 -7
- data/pilot/lib/pilot/manager.rb +2 -2
- data/pilot/lib/pilot/tester_exporter.rb +3 -3
- data/pilot/lib/pilot/tester_manager.rb +2 -2
- data/spaceship/lib/spaceship/connect_api.rb +2 -17
- data/spaceship/lib/spaceship/connect_api/{models/model.rb → model.rb} +5 -4
- data/spaceship/lib/spaceship/connect_api/response.rb +4 -7
- data/spaceship/lib/spaceship/connect_api/testflight/base.rb +41 -0
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +553 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/app.rb +99 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_localization.rb +30 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_review_detail.rb +34 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_review_submission.rb +28 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_build_localization.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_build_metric.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_group.rb +43 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_tester.rb +58 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/beta_tester_metric.rb +45 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/build.rb +146 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/build_beta_detail.rb +58 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/build_delivery.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/pre_release_version.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/testflight/models/user.rb +52 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +27 -0
- data/spaceship/lib/spaceship/test_flight/build.rb +3 -3
- data/spaceship/lib/spaceship/test_flight/build_trains.rb +1 -1
- metadata +34 -33
- data/spaceship/lib/spaceship/connect_api/base.rb +0 -39
- data/spaceship/lib/spaceship/connect_api/client.rb +0 -551
- data/spaceship/lib/spaceship/connect_api/models/app.rb +0 -97
- data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +0 -28
- data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +0 -32
- data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +0 -26
- data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +0 -20
- data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +0 -24
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +0 -41
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +0 -56
- data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +0 -43
- data/spaceship/lib/spaceship/connect_api/models/build.rb +0 -144
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +0 -56
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +0 -36
- data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +0 -20
- data/spaceship/lib/spaceship/connect_api/models/user.rb +0 -50
@@ -0,0 +1,99 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
require_relative './build'
|
3
|
+
|
4
|
+
module Spaceship
|
5
|
+
module ConnectAPI
|
6
|
+
module TestFlight
|
7
|
+
class App
|
8
|
+
include Spaceship::ConnectAPI::Model
|
9
|
+
|
10
|
+
attr_accessor :name
|
11
|
+
attr_accessor :bundle_id
|
12
|
+
attr_accessor :sku
|
13
|
+
attr_accessor :primary_locale
|
14
|
+
attr_accessor :removed
|
15
|
+
attr_accessor :is_aag
|
16
|
+
|
17
|
+
self.attr_mapping({
|
18
|
+
"name" => "name",
|
19
|
+
"bundleId" => "bundle_id",
|
20
|
+
"sku" => "sku",
|
21
|
+
"primaryLocale" => "primary_locale",
|
22
|
+
"removed" => "removed",
|
23
|
+
"isAAG" => "is_aag"
|
24
|
+
})
|
25
|
+
|
26
|
+
def self.type
|
27
|
+
return "apps"
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# Apps
|
32
|
+
#
|
33
|
+
|
34
|
+
def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
|
35
|
+
resps = testflight_client.get_apps(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
36
|
+
return resps.map(&:to_models).flatten
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.find(bundle_id)
|
40
|
+
return all(filter: { bundleId: bundle_id }).find do |app|
|
41
|
+
app.bundle_id == bundle_id
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.get(app_id: nil, includes: nil)
|
46
|
+
return testflight_client.get_app(app_id: app_id, includes: includes).first
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# Beta Testers
|
51
|
+
#
|
52
|
+
|
53
|
+
def get_beta_testers(filter: {}, includes: nil, limit: nil, sort: nil)
|
54
|
+
filter ||= {}
|
55
|
+
filter[:apps] = id
|
56
|
+
|
57
|
+
resps = testflight_client.get_beta_testers(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
58
|
+
return resps.map(&:to_models).flatten
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Builds
|
63
|
+
#
|
64
|
+
|
65
|
+
def get_builds(filter: {}, includes: nil, limit: nil, sort: nil)
|
66
|
+
filter ||= {}
|
67
|
+
filter[:app] = id
|
68
|
+
|
69
|
+
resps = testflight_client.get_builds(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
70
|
+
return resps.map(&:to_models).flatten
|
71
|
+
end
|
72
|
+
|
73
|
+
def get_build_deliveries(filter: {}, includes: nil, limit: nil, sort: nil)
|
74
|
+
filter ||= {}
|
75
|
+
filter[:app] = id
|
76
|
+
|
77
|
+
resps = testflight_client.get_build_deliveries(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
78
|
+
return resps.map(&:to_models).flatten
|
79
|
+
end
|
80
|
+
|
81
|
+
def get_beta_app_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
|
82
|
+
filter ||= {}
|
83
|
+
filter[:app] = id
|
84
|
+
|
85
|
+
resps = testflight_client.get_beta_app_localizations(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
86
|
+
return resps.map(&:to_models).flatten
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_beta_groups(filter: {}, includes: nil, limit: nil, sort: nil)
|
90
|
+
filter ||= {}
|
91
|
+
filter[:app] = id
|
92
|
+
|
93
|
+
resps = testflight_client.get_beta_groups(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
94
|
+
return resps.map(&:to_models).flatten
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaAppLocalization
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :feedback_email
|
9
|
+
attr_accessor :marketing_url
|
10
|
+
attr_accessor :privacy_policy_url
|
11
|
+
attr_accessor :tv_os_privacy_policy
|
12
|
+
attr_accessor :description
|
13
|
+
attr_accessor :locale
|
14
|
+
|
15
|
+
attr_mapping({
|
16
|
+
"feedbackEmail" => "feedback_email",
|
17
|
+
"marketingUrl" => "marketing_url",
|
18
|
+
"privacyPolicyUrl" => "privacy_policy_url",
|
19
|
+
"tvOsPrivacyPolicy" => "tv_os_privacy_policy",
|
20
|
+
"description" => "description",
|
21
|
+
"locale" => "locale"
|
22
|
+
})
|
23
|
+
|
24
|
+
def self.type
|
25
|
+
return "betaAppLocalizations"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaAppReviewDetail
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :contact_first_name
|
9
|
+
attr_accessor :contact_last_name
|
10
|
+
attr_accessor :contact_phone
|
11
|
+
attr_accessor :contact_email
|
12
|
+
attr_accessor :demo_account_name
|
13
|
+
attr_accessor :demo_account_password
|
14
|
+
attr_accessor :demo_account_required
|
15
|
+
attr_accessor :notes
|
16
|
+
|
17
|
+
attr_mapping({
|
18
|
+
"contactFirstName" => "contact_first_name",
|
19
|
+
"contactLastName" => "contact_last_name",
|
20
|
+
"contactPhone" => "contact_phone",
|
21
|
+
"contactEmail" => "contact_email",
|
22
|
+
"demoAccountName" => "demo_account_name",
|
23
|
+
"demoAccountPassword" => "demo_account_password",
|
24
|
+
"demoAccountRequired" => "demo_account_required",
|
25
|
+
"notes" => "notes"
|
26
|
+
})
|
27
|
+
|
28
|
+
def self.type
|
29
|
+
return "betaAppReviewDetails"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaAppReviewSubmission
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :beta_review_state
|
9
|
+
|
10
|
+
attr_mapping({
|
11
|
+
"betaReviewState" => "beta_review_state"
|
12
|
+
})
|
13
|
+
|
14
|
+
def self.type
|
15
|
+
return "betaAppReviewSubmissions"
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# API
|
20
|
+
#
|
21
|
+
|
22
|
+
def delete!
|
23
|
+
return testflight_client.delete_beta_app_review_submission(beta_app_review_submission_id: id)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaBuildLocalization
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :whats_new
|
9
|
+
attr_accessor :locale
|
10
|
+
|
11
|
+
attr_mapping({
|
12
|
+
"whatsNew" => "whats_new",
|
13
|
+
"locale" => "locale"
|
14
|
+
})
|
15
|
+
|
16
|
+
def self.type
|
17
|
+
return "betaBuildLocalizations"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaBuildMetric
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :install_count
|
9
|
+
attr_accessor :crash_count
|
10
|
+
attr_accessor :invite_count
|
11
|
+
attr_accessor :seven_day_tester_count
|
12
|
+
|
13
|
+
attr_mapping({
|
14
|
+
"installCount" => "install_count",
|
15
|
+
"crashCount" => "crash_count",
|
16
|
+
"inviteCount" => "invite_count",
|
17
|
+
"sevenDayTesterCount" => "seven_day_tester_count"
|
18
|
+
})
|
19
|
+
|
20
|
+
def self.type
|
21
|
+
return "betaBuildMetrics"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaGroup
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :name
|
9
|
+
attr_accessor :created_date
|
10
|
+
attr_accessor :is_internal_group
|
11
|
+
attr_accessor :public_link_enabled
|
12
|
+
attr_accessor :public_link_id
|
13
|
+
attr_accessor :public_link_limit_enabled
|
14
|
+
attr_accessor :public_link_limit
|
15
|
+
attr_accessor :public_link
|
16
|
+
|
17
|
+
attr_mapping({
|
18
|
+
"name" => "name",
|
19
|
+
"createdDate" => "created_date",
|
20
|
+
"isInternalGroup" => "is_internal_group",
|
21
|
+
"publicLinkEnabled" => "public_link_enabled",
|
22
|
+
"publicLinkId" => "public_link_id",
|
23
|
+
"publicLinkLimitEnabled" => "public_link_limit_enabled",
|
24
|
+
"publicLinkLimit" => "public_link_limit",
|
25
|
+
"publicLink" => "public_link"
|
26
|
+
})
|
27
|
+
|
28
|
+
def self.type
|
29
|
+
return "betaGroups"
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# API
|
34
|
+
#
|
35
|
+
|
36
|
+
# beta_testers - [{email: "", firstName: "", lastName: ""}]
|
37
|
+
def post_bulk_beta_tester_assignments(beta_testers: nil)
|
38
|
+
return testflight_client.post_bulk_beta_tester_assignments(beta_group_id: id, beta_testers: beta_testers)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaTester
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :first_name
|
9
|
+
attr_accessor :last_name
|
10
|
+
attr_accessor :email
|
11
|
+
attr_accessor :invite_type
|
12
|
+
attr_accessor :invitation
|
13
|
+
|
14
|
+
attr_accessor :apps
|
15
|
+
attr_accessor :beta_groups
|
16
|
+
attr_accessor :beta_tester_metrics
|
17
|
+
|
18
|
+
attr_mapping({
|
19
|
+
"firstName" => "first_name",
|
20
|
+
"lastName" => "last_name",
|
21
|
+
"email" => "email",
|
22
|
+
"inviteType" => "invite_type",
|
23
|
+
"invitation" => "invitation",
|
24
|
+
|
25
|
+
"apps" => "apps",
|
26
|
+
"betaGroups" => "beta_groups",
|
27
|
+
"betaTesterMetrics" => "beta_tester_metrics"
|
28
|
+
})
|
29
|
+
|
30
|
+
def self.type
|
31
|
+
return "betaTesters"
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# API
|
36
|
+
#
|
37
|
+
|
38
|
+
def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
|
39
|
+
return testflight_client.get_beta_testers(filter: filter, includes: includes)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.find(email: nil, includes: nil)
|
43
|
+
return all(filter: { email: email }, includes: includes).first
|
44
|
+
end
|
45
|
+
|
46
|
+
def delete_from_apps(apps: nil)
|
47
|
+
app_ids = apps.map(&:id)
|
48
|
+
return testflight_client.delete_beta_tester_from_apps(beta_tester_id: id, app_ids: app_ids)
|
49
|
+
end
|
50
|
+
|
51
|
+
def delete_from_beta_groups(beta_groups: nil)
|
52
|
+
beta_group_ids = beta_groups.map(&:id)
|
53
|
+
return testflight_client.delete_beta_tester_from_beta_groups(beta_tester_id: id, beta_group_ids: beta_group_ids)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
module Spaceship
|
3
|
+
module ConnectAPI
|
4
|
+
module TestFlight
|
5
|
+
class BetaTesterMetric
|
6
|
+
include Spaceship::ConnectAPI::Model
|
7
|
+
|
8
|
+
attr_accessor :install_count
|
9
|
+
attr_accessor :crash_count
|
10
|
+
attr_accessor :session_count
|
11
|
+
attr_accessor :beta_tester_state
|
12
|
+
attr_accessor :last_modified_date
|
13
|
+
attr_accessor :installed_cf_bundle_short_version_string
|
14
|
+
attr_accessor :installed_cf_bundle_version
|
15
|
+
|
16
|
+
attr_mapping({
|
17
|
+
"installCount" => "install_count",
|
18
|
+
"crashCount" => "crash_count",
|
19
|
+
"sessionCount" => "session_count",
|
20
|
+
"betaTesterState" => "beta_tester_state",
|
21
|
+
"lastModifiedDate" => "last_modified_date",
|
22
|
+
"installedCfBundleShortVersionString" => "installed_cf_bundle_short_version_string",
|
23
|
+
"installedCfBundleVersion" => "installed_cf_bundle_version"
|
24
|
+
})
|
25
|
+
|
26
|
+
module BetaTesterState
|
27
|
+
INSTALLED = "INSTALLED"
|
28
|
+
NO_BUILDS = "NO_BUILDS"
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.type
|
32
|
+
return "betaTesterMetrics"
|
33
|
+
end
|
34
|
+
|
35
|
+
#
|
36
|
+
# Helpers
|
37
|
+
#
|
38
|
+
|
39
|
+
def installed?
|
40
|
+
return beta_tester_state == BetaTesterState::INSTALLED
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require_relative '../../model'
|
2
|
+
require 'spaceship/test_flight/build'
|
3
|
+
module Spaceship
|
4
|
+
module ConnectAPI
|
5
|
+
module TestFlight
|
6
|
+
class Build
|
7
|
+
include Spaceship::ConnectAPI::Model
|
8
|
+
|
9
|
+
attr_accessor :version
|
10
|
+
attr_accessor :uploaded_date
|
11
|
+
attr_accessor :expiration_date
|
12
|
+
attr_accessor :expired
|
13
|
+
attr_accessor :min_os_version
|
14
|
+
attr_accessor :icon_asset_token
|
15
|
+
attr_accessor :processing_state
|
16
|
+
attr_accessor :uses_non_exempt_encryption
|
17
|
+
|
18
|
+
attr_accessor :app
|
19
|
+
attr_accessor :beta_app_review_submission
|
20
|
+
attr_accessor :beta_build_metrics
|
21
|
+
attr_accessor :build_beta_detail
|
22
|
+
attr_accessor :pre_release_version
|
23
|
+
|
24
|
+
attr_mapping({
|
25
|
+
"version" => "version",
|
26
|
+
"uploadedDate" => "uploaded_date",
|
27
|
+
"expirationDate" => "expiration_date",
|
28
|
+
"expired" => "expired",
|
29
|
+
"minOsVersion" => "min_os_version",
|
30
|
+
"iconAssetToken" => "icon_asset_token",
|
31
|
+
"processingState" => "processing_state",
|
32
|
+
"usesNonExemptEncryption" => "uses_non_exempt_encryption",
|
33
|
+
|
34
|
+
"app" => "app",
|
35
|
+
"betaAppReviewSubmission" => "beta_app_review_submission",
|
36
|
+
"betaBuildMetrics" => "beta_build_metrics",
|
37
|
+
"buildBetaDetail" => "build_beta_detail",
|
38
|
+
"preReleaseVersion" => "pre_release_version"
|
39
|
+
})
|
40
|
+
|
41
|
+
ESSENTIAL_INCLUDES = "app,buildBetaDetail,preReleaseVersion"
|
42
|
+
|
43
|
+
module ProcessingState
|
44
|
+
PROCESSING = "PROCESSING"
|
45
|
+
FAILED = "FAILED"
|
46
|
+
INVALID = "INVALID"
|
47
|
+
VALID = "VALID"
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.type
|
51
|
+
return "builds"
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Helpers
|
56
|
+
#
|
57
|
+
|
58
|
+
def app_version
|
59
|
+
raise "No pre_release_version included" unless pre_release_version
|
60
|
+
return pre_release_version.version
|
61
|
+
end
|
62
|
+
|
63
|
+
def app_id
|
64
|
+
raise "No app included" unless app
|
65
|
+
return app.id
|
66
|
+
end
|
67
|
+
|
68
|
+
def bundle_id
|
69
|
+
raise "No app included" unless app
|
70
|
+
return app.bundle_id
|
71
|
+
end
|
72
|
+
|
73
|
+
def processed?
|
74
|
+
return processing_state != ProcessingState::PROCESSING
|
75
|
+
end
|
76
|
+
|
77
|
+
def ready_for_beta_submission?
|
78
|
+
raise "No build_beat_detail included" unless build_beta_detail
|
79
|
+
return build_beta_detail.ready_for_beta_submission?
|
80
|
+
end
|
81
|
+
|
82
|
+
# This is here temporarily until the removal of Spaceship::TestFlight
|
83
|
+
def to_testflight_build
|
84
|
+
h = {
|
85
|
+
'buildVersion' => version,
|
86
|
+
'uploadDate' => uploaded_date,
|
87
|
+
'externalState' => processed? ? Spaceship::TestFlight::Build::BUILD_STATES[:active] : Spaceship::TestFlight::Build::BUILD_STATES[:processing],
|
88
|
+
'appAdamId' => app_id,
|
89
|
+
'bundleId' => bundle_id,
|
90
|
+
'trainVersion' => app_version
|
91
|
+
}
|
92
|
+
|
93
|
+
return Spaceship::TestFlight::Build.new(h)
|
94
|
+
end
|
95
|
+
|
96
|
+
#
|
97
|
+
# API
|
98
|
+
#
|
99
|
+
|
100
|
+
def self.all(app_id: nil, version: nil, build_number: nil, includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
|
101
|
+
resps = testflight_client.get_builds(
|
102
|
+
filter: { app: app_id, "preReleaseVersion.version" => version, version: build_number },
|
103
|
+
includes: includes,
|
104
|
+
sort: sort,
|
105
|
+
limit: limit
|
106
|
+
).all_pages
|
107
|
+
return resps.map(&:to_models).flatten
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.get(build_id: nil, includes: ESSENTIAL_INCLUDES)
|
111
|
+
return testflight_client.get_build(build_id: build_id, includes: includes).first
|
112
|
+
end
|
113
|
+
|
114
|
+
def add_beta_groups(beta_groups: nil)
|
115
|
+
beta_groups ||= []
|
116
|
+
beta_group_ids = beta_groups.map(&:id)
|
117
|
+
return testflight_client.add_beta_groups_to_build(build_id: id, beta_group_ids: beta_group_ids)
|
118
|
+
end
|
119
|
+
|
120
|
+
def get_beta_build_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
|
121
|
+
resps = testflight_client.get_beta_build_localizations(
|
122
|
+
filter: { build: id },
|
123
|
+
includes: includes,
|
124
|
+
sort: sort,
|
125
|
+
limit: limit
|
126
|
+
).all_pages
|
127
|
+
return resps.map(&:to_models).flatten
|
128
|
+
end
|
129
|
+
|
130
|
+
def get_build_beta_details(filter: {}, includes: nil, limit: nil, sort: nil)
|
131
|
+
resps = testflight_client.get_build_beta_details(
|
132
|
+
filter: { build: id },
|
133
|
+
includes: includes,
|
134
|
+
sort: sort,
|
135
|
+
limit: limit
|
136
|
+
).all_pages
|
137
|
+
return resps.map(&:to_models).flatten
|
138
|
+
end
|
139
|
+
|
140
|
+
def post_beta_app_review_submission
|
141
|
+
return testflight_client.post_beta_app_review_submissions(build_id: id)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|