deploygate 0.8.0 → 0.8.4
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/.travis.yml +1 -0
- data/config/locales/en.yml +8 -27
- data/lib/deploygate/api/v1/base.rb +5 -1
- data/lib/deploygate/api/v1/user.rb +0 -24
- data/lib/deploygate/command_builder.rb +2 -0
- data/lib/deploygate/commands/add_devices.rb +1 -1
- data/lib/deploygate/commands/deploy/push.rb +1 -1
- data/lib/deploygate/commands/deploy.rb +1 -1
- data/lib/deploygate/commands/login.rb +10 -70
- data/lib/deploygate/user.rb +0 -11
- data/lib/deploygate/version.rb +1 -1
- data/lib/deploygate/xcode/analyze.rb +12 -2
- data/lib/deploygate/xcode/export.rb +11 -7
- data/lib/deploygate/xcode/ios.rb +7 -1
- data/lib/deploygate/xcode/member_centers/provisioning_profile.rb +11 -5
- data/lib/deploygate.rb +1 -0
- data/spec/deploygate/api/v1/user_spec.rb +0 -27
- data/spec/deploygate/xcode/export_spec.rb +25 -3
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a067b187ce090f469740902b25df05047db95908131057a995481c4a023b11bd
|
4
|
+
data.tar.gz: 8d67c1abb0a90436120bdfd45e0831b9002a7b2089c46a3d42cd3ac7d985143c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a10f3ec84688ac65572f3ffb77a70f231436ae8222a6d2c7534a6e5cfa126eca71b4c8f2319ca8f7583c4257ae90896605b093af69dbcdc353e70f667307303
|
7
|
+
data.tar.gz: e5abc3793a771f2c1ac96cbaa875a80ab47e665993c7f4a77790f45c983ab557fe4d94345e34d03c9b2ad2ecbfada109bc6e2cacc50881c983da038c54740745
|
data/.travis.yml
CHANGED
data/config/locales/en.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
---
|
2
2
|
en:
|
3
|
+
errors:
|
4
|
+
check_update_failure: 'Checking update failed'
|
5
|
+
account_not_found_error: 'Your account was not found. Please create it from https://deploygate.com'
|
3
6
|
command_builder:
|
4
7
|
name: 'dg'
|
5
8
|
description: 'Control DeployGate from your terminal.'
|
@@ -93,7 +96,7 @@ en:
|
|
93
96
|
$ dg login
|
94
97
|
print_login_user: 'User name: %{name}'
|
95
98
|
login:
|
96
|
-
|
99
|
+
start_login:
|
97
100
|
welcome: 'Welcome to DeployGate!'
|
98
101
|
email: 'Email: '
|
99
102
|
check_account: 'Checking for your account...'
|
@@ -103,28 +106,6 @@ en:
|
|
103
106
|
Could not log in to DeployGate.
|
104
107
|
Please try again.
|
105
108
|
success: 'Hello %{name}!'
|
106
|
-
create_account:
|
107
|
-
prompt: "Looks new to DeployGate. Let's set up your account, just choose your user name and password."
|
108
|
-
creating: 'Creating your account... '
|
109
|
-
error: |
|
110
|
-
Could not create your account.
|
111
|
-
Please try again.
|
112
|
-
success: 'done! Your account has been set up successfully.'
|
113
|
-
input_new_account_name:
|
114
|
-
input_user_name: 'Username: '
|
115
|
-
checking: 'Checking for availability... '
|
116
|
-
already_used_user_name: 'Sorry, %{user_name} was already taken. Please try again.'
|
117
|
-
success: 'Good, %{user_name} is available.'
|
118
|
-
input_new_account_password:
|
119
|
-
input_password: 'Password: '
|
120
|
-
input_same_password: 'Type the same password: '
|
121
|
-
error: "Passwords didn't match. Please type again."
|
122
|
-
check_terms:
|
123
|
-
terms_url: 'Terms of Service: https://deploygate.com/terms'
|
124
|
-
privacy_url: 'Privacy Policy: https://deploygate.com/terms/privacy'
|
125
|
-
note: "DeployGate properly manages your account information under GDPR, Japan's Personal Information Protection Act and our Privacy Policy."
|
126
|
-
text: 'I agree to the Terms of Service and Privacy Policy (y/n) '
|
127
|
-
error: 'You must agree to the Terms of Service and Privacy Policy.'
|
128
109
|
logout:
|
129
110
|
success: |
|
130
111
|
Logout success!
|
@@ -142,16 +123,16 @@ en:
|
|
142
123
|
choice: '%{team_name} %{team_id}'
|
143
124
|
check_local_certificates:
|
144
125
|
not_local_install_certificate:
|
145
|
-
error_message: 'Error: No applicable iPhone Distribution certificate found on your Mac.'
|
126
|
+
error_message: 'Error: No applicable iPhone Distribution or Apple Distribution certificate found on your Mac.'
|
146
127
|
note: |
|
147
|
-
No "iPhone Distribution" certificate and/or corresponding private key installed locally.
|
128
|
+
No "iPhone Distribution" or "Apple Distribution" certificate and/or corresponding private key installed locally.
|
148
129
|
To sign your application code, make sure you have installed them and available in your Keychain.
|
149
130
|
|
150
131
|
See also: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
|
151
132
|
conflict_certificate:
|
152
133
|
error_message: 'Error: Too many certificates found.'
|
153
134
|
note: |
|
154
|
-
You have more than one "iPhone Distribution" certificate installed on your Mac.
|
135
|
+
You have more than one "iPhone Distribution" or "Apple Distribution" certificate installed on your Mac.
|
155
136
|
Please remove other unnecessary certificates from your Keychain.
|
156
137
|
clean_provisioning_profiles:
|
157
138
|
start: 'Cleaning local Provisioning Profiles...'
|
@@ -171,5 +152,5 @@ en:
|
|
171
152
|
Note: Your password will be stored to your Keychain and never be sent to DeployGate.
|
172
153
|
email: 'Email: '
|
173
154
|
provisioning_profile:
|
174
|
-
not_installed_certificate_error: 'No iPhone Distribution Certificate associated with private key was found in local Keychain'
|
155
|
+
not_installed_certificate_error: 'No iPhone Distribution or Apple Distribution Certificate associated with private key was found in local Keychain'
|
175
156
|
not_exist_uuid_provisioning_profile_error: 'No provisioning profile found for the specified UUID (%{uuid})'
|
@@ -45,7 +45,11 @@ module DeployGate
|
|
45
45
|
private
|
46
46
|
|
47
47
|
def client
|
48
|
-
|
48
|
+
timeout = 60 * 5 # 5 minutes
|
49
|
+
HTTPClient.new(agent_name: "dg/#{DeployGate::VERSION}").tap do |c|
|
50
|
+
c.receive_timeout = timeout
|
51
|
+
c.send_timeout = timeout
|
52
|
+
end
|
49
53
|
end
|
50
54
|
|
51
55
|
def headers
|
@@ -6,30 +6,6 @@ module DeployGate
|
|
6
6
|
ENDPOINT = '/users'
|
7
7
|
|
8
8
|
class << self
|
9
|
-
# @param [String] name
|
10
|
-
# @param [String] email
|
11
|
-
# @param [String] password
|
12
|
-
# @param [String] locale
|
13
|
-
# @return [Hash]
|
14
|
-
def create(name, email, password, locale = 'en')
|
15
|
-
res = Base.new().post(ENDPOINT, {:name => name, :email => email, :password => password, :locale => locale})
|
16
|
-
|
17
|
-
user_create_results = {
|
18
|
-
:error => res['error'],
|
19
|
-
:message => res['because']
|
20
|
-
}
|
21
|
-
|
22
|
-
results = res['results']
|
23
|
-
unless results.nil?
|
24
|
-
user_create_results.merge!({
|
25
|
-
:name => results['user']['name'],
|
26
|
-
:token => results['api_token']
|
27
|
-
})
|
28
|
-
end
|
29
|
-
|
30
|
-
user_create_results
|
31
|
-
end
|
32
|
-
|
33
9
|
# @param [String] name
|
34
10
|
# @param [String] email
|
35
11
|
# @return [Boolean]
|
@@ -6,7 +6,7 @@ module DeployGate
|
|
6
6
|
# @param [Array] args
|
7
7
|
# @param [Commander::Command::Options] options
|
8
8
|
def run(args, options)
|
9
|
-
Login.
|
9
|
+
Login.start_login() unless DeployGate::Session.new.login?
|
10
10
|
|
11
11
|
# push or build(android/ios)
|
12
12
|
args.push(Dir.pwd) if args.empty?
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module DeployGate
|
2
2
|
module Commands
|
3
3
|
class Login
|
4
|
+
class AccountNotFoundError < DeployGate::RavenIgnoreException; end
|
5
|
+
|
4
6
|
class << self
|
5
7
|
|
6
8
|
# @return [void]
|
@@ -8,31 +10,32 @@ module DeployGate
|
|
8
10
|
welcome()
|
9
11
|
|
10
12
|
if options.terminal
|
11
|
-
|
13
|
+
start_login()
|
12
14
|
else
|
13
15
|
DeployGate::BrowserLogin.new().start()
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def welcome
|
18
|
-
puts I18n.t('commands.login.
|
20
|
+
puts I18n.t('commands.login.start_login.welcome')
|
19
21
|
print_deploygate_aa()
|
20
22
|
end
|
21
23
|
|
22
24
|
# @return [void]
|
23
|
-
|
25
|
+
# @raise [AccountNotFoundError] emailに一致するUserが存在しないとき
|
26
|
+
def start_login
|
24
27
|
puts ''
|
25
|
-
email = ask(I18n.t('commands.login.
|
28
|
+
email = ask(I18n.t('commands.login.start_login.email'))
|
26
29
|
|
27
30
|
puts ''
|
28
|
-
puts I18n.t('commands.login.
|
31
|
+
puts I18n.t('commands.login.start_login.check_account')
|
29
32
|
if DeployGate::User.registered?('', email)
|
30
33
|
puts ''
|
31
|
-
password = input_password(I18n.t('commands.login.
|
34
|
+
password = input_password(I18n.t('commands.login.start_login.input_password'))
|
32
35
|
puts ''
|
33
36
|
start(email, password)
|
34
37
|
else
|
35
|
-
|
38
|
+
raise AccountNotFoundError, HighLine.color(I18n.t('errors.account_not_found_error'))
|
36
39
|
end
|
37
40
|
end
|
38
41
|
|
@@ -56,69 +59,6 @@ module DeployGate
|
|
56
59
|
puts HighLine.color(I18n.t('commands.login.start.success', name: session.name), HighLine::GREEN)
|
57
60
|
end
|
58
61
|
|
59
|
-
# @param [String] email
|
60
|
-
# @return [void]
|
61
|
-
def create_account(email)
|
62
|
-
puts I18n.t('commands.login.create_account.prompt')
|
63
|
-
puts ''
|
64
|
-
|
65
|
-
name = input_new_account_name()
|
66
|
-
puts ''
|
67
|
-
|
68
|
-
password = input_new_account_password()
|
69
|
-
puts ''
|
70
|
-
|
71
|
-
unless check_terms
|
72
|
-
puts HighLine.color(I18n.t('commands.login.check_terms.error'), HighLine::RED)
|
73
|
-
exit 1
|
74
|
-
end
|
75
|
-
|
76
|
-
print I18n.t('commands.login.create_account.creating')
|
77
|
-
if DeployGate::User.create(name, email, password).nil?
|
78
|
-
puts HighLine.color(I18n.t('commands.login.create_account.error'), HighLine::RED)
|
79
|
-
raise 'User create error'
|
80
|
-
else
|
81
|
-
puts HighLine.color(I18n.t('commands.login.create_account.success'), HighLine::GREEN)
|
82
|
-
start(email, password)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
# @return [String]
|
87
|
-
def input_new_account_name
|
88
|
-
user_name = ask(I18n.t('commands.login.input_new_account_name.input_user_name'))
|
89
|
-
print I18n.t('commands.login.input_new_account_name.checking')
|
90
|
-
|
91
|
-
if DeployGate::User.registered?(user_name, '')
|
92
|
-
puts HighLine.color(I18n.t('commands.login.input_new_account_name.already_used_user_name', user_name: user_name), HighLine::RED)
|
93
|
-
return input_new_account_name()
|
94
|
-
else
|
95
|
-
puts HighLine.color(I18n.t('commands.login.input_new_account_name.success', user_name: user_name), HighLine::GREEN)
|
96
|
-
return user_name
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
# @return [String]
|
101
|
-
def input_new_account_password
|
102
|
-
password = input_password(I18n.t('commands.login.input_new_account_password.input_password'))
|
103
|
-
secound_password = input_password(I18n.t('commands.login.input_new_account_password.input_same_password'))
|
104
|
-
|
105
|
-
if password == secound_password
|
106
|
-
return password
|
107
|
-
else
|
108
|
-
puts HighLine.color(I18n.t('commands.login.input_new_account_password.error'), HighLine::RED)
|
109
|
-
return input_new_account_password()
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
# @return [boolean]
|
114
|
-
def check_terms
|
115
|
-
puts I18n.t('commands.login.check_terms.terms_url')
|
116
|
-
puts I18n.t('commands.login.check_terms.privacy_url')
|
117
|
-
puts I18n.t('commands.login.check_terms.note')
|
118
|
-
puts ''
|
119
|
-
HighLine.agree(I18n.t('commands.login.check_terms.text')) {|q| q.default = "n"}
|
120
|
-
end
|
121
|
-
|
122
62
|
# @return [String]
|
123
63
|
def input_password(message)
|
124
64
|
ask(message) { |q| q.echo = "*" }
|
data/lib/deploygate/user.rb
CHANGED
@@ -8,17 +8,6 @@ module DeployGate
|
|
8
8
|
@name = name
|
9
9
|
end
|
10
10
|
|
11
|
-
# @param [String] name
|
12
|
-
# @param [String] email
|
13
|
-
# @param [String] password
|
14
|
-
# @return [DeployGate::User]
|
15
|
-
def self.create(name, email, password)
|
16
|
-
locale = Locale.current.language
|
17
|
-
results = DeployGate::API::V1::User.create(name, email, password, locale)
|
18
|
-
return if results[:error]
|
19
|
-
DeployGate::User.new(results[:name])
|
20
|
-
end
|
21
|
-
|
22
11
|
# @param [String] name
|
23
12
|
# @param [String] email
|
24
13
|
# @return [Boolean]
|
data/lib/deploygate/version.rb
CHANGED
@@ -53,7 +53,7 @@ module DeployGate
|
|
53
53
|
identity
|
54
54
|
end
|
55
55
|
|
56
|
-
#
|
56
|
+
# TODO: Need to support UDID additions for watchOS and App Extension
|
57
57
|
# @return [String]
|
58
58
|
def target_bundle_identifier
|
59
59
|
bundle_identifier = nil
|
@@ -96,7 +96,17 @@ module DeployGate
|
|
96
96
|
|
97
97
|
Xcodeproj::Project.open(@xcodeproj).targets.each do |target|
|
98
98
|
target.build_configuration_list.build_configurations.each do |build_configuration|
|
99
|
-
|
99
|
+
# Used the following code as an example
|
100
|
+
# https://github.com/fastlane/fastlane/blob/2.148.1/gym/lib/gym/code_signing_mapping.rb#L138
|
101
|
+
current = build_configuration.build_settings
|
102
|
+
next if gym.test_target?(current)
|
103
|
+
sdk_root = build_configuration.resolve_build_setting("SDKROOT", target)
|
104
|
+
next unless gym.same_platform?(sdk_root)
|
105
|
+
next unless specified_configuration == build_configuration.name
|
106
|
+
|
107
|
+
# If SKIP_INSTALL is true, it is an app extension or watch app
|
108
|
+
next if current["SKIP_INSTALL"]
|
109
|
+
|
100
110
|
block.call(build_configuration, target)
|
101
111
|
end
|
102
112
|
end
|
@@ -80,7 +80,7 @@ module DeployGate
|
|
80
80
|
certificates = installed_certificates()
|
81
81
|
ids = []
|
82
82
|
certificates.each do |current|
|
83
|
-
next unless current.match(/iPhone Distribution:/)
|
83
|
+
next unless current.match(/iPhone Distribution:/) || current.match(/Apple Distribution:/)
|
84
84
|
begin
|
85
85
|
(ids << current.match(/.*\) (.*) \".*/)[1])
|
86
86
|
rescue
|
@@ -92,12 +92,12 @@ module DeployGate
|
|
92
92
|
end
|
93
93
|
|
94
94
|
# @return [Array]
|
95
|
-
def
|
95
|
+
def installed_distribution_conflicting_certificates_by(distribution_name)
|
96
96
|
certificates = installed_certificates()
|
97
97
|
names = []
|
98
98
|
certificates.each do |current|
|
99
99
|
begin
|
100
|
-
names << current.match(/(
|
100
|
+
names << current.match(/(#{distribution_name}:.*)/)[1]
|
101
101
|
rescue
|
102
102
|
end
|
103
103
|
end
|
@@ -106,7 +106,7 @@ module DeployGate
|
|
106
106
|
conflicting_certificates = []
|
107
107
|
certificates.each do |current|
|
108
108
|
begin
|
109
|
-
name = current.match(/(
|
109
|
+
name = current.match(/(#{distribution_name}:.*)/)[1]
|
110
110
|
next unless conflicting_names.include?(name)
|
111
111
|
conflicting_certificates << current
|
112
112
|
rescue
|
@@ -255,12 +255,16 @@ module DeployGate
|
|
255
255
|
exit
|
256
256
|
end
|
257
257
|
|
258
|
-
|
259
|
-
|
258
|
+
iphone_conflicting_certificates = installed_distribution_conflicting_certificates_by('iPhone Distribution')
|
259
|
+
apple_conflicting_certificates = installed_distribution_conflicting_certificates_by('Apple Distribution')
|
260
|
+
if iphone_conflicting_certificates.count > 0 || apple_conflicting_certificates.count > 0
|
260
261
|
puts HighLine.color(I18n.t('xcode.export.check_local_certificates.conflict_certificate.error_message'), HighLine::RED)
|
261
262
|
puts ''
|
262
263
|
puts I18n.t('xcode.export.check_local_certificates.conflict_certificate.note')
|
263
|
-
|
264
|
+
iphone_conflicting_certificates.each do |certificate|
|
265
|
+
puts certificate
|
266
|
+
end
|
267
|
+
apple_conflicting_certificates.each do |certificate|
|
264
268
|
puts certificate
|
265
269
|
end
|
266
270
|
puts ""
|
data/lib/deploygate/xcode/ios.rb
CHANGED
@@ -28,10 +28,16 @@ module DeployGate
|
|
28
28
|
|
29
29
|
values = {
|
30
30
|
export_method: export_method,
|
31
|
-
project: ios_analyze.xcodeproj,
|
32
31
|
configuration: build_configuration || DeployGate::Xcode::Analyze::DEFAULT_BUILD_CONFIGURATION,
|
33
32
|
scheme: target_scheme
|
34
33
|
}
|
34
|
+
|
35
|
+
if ios_analyze.build_workspace
|
36
|
+
values[:workspace] = ios_analyze.build_workspace
|
37
|
+
else
|
38
|
+
values[:project] = ios_analyze.xcodeproj
|
39
|
+
end
|
40
|
+
|
35
41
|
values[:codesigning_identity] = codesigning_identity if codesigning_identity
|
36
42
|
if allow_provisioning_updates
|
37
43
|
values[:xcargs] = '-allowProvisioningUpdates'
|
@@ -35,16 +35,22 @@ module DeployGate
|
|
35
35
|
|
36
36
|
# @return [Array]
|
37
37
|
def all_create
|
38
|
-
if @member_center.adhoc?
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
prod_certs = if @member_center.adhoc?
|
39
|
+
@member_center.launcher.certificate.all.select{|cert|
|
40
|
+
cert.class == Spaceship::Portal::Certificate::Production ||
|
41
|
+
cert.class == Spaceship::Portal::Certificate::AppleDistribution
|
42
|
+
}
|
43
|
+
else
|
44
|
+
@member_center.launcher.certificate.all.select{|cert|
|
45
|
+
cert.class == Spaceship::Portal::Certificate::InHouse
|
46
|
+
}
|
47
|
+
end
|
43
48
|
|
44
49
|
# check local install certificate
|
45
50
|
FileUtils.mkdir_p(CERTIFICATE_OUTPUT_PATH)
|
46
51
|
distribution_cert_ids = []
|
47
52
|
prod_certs.each do |cert|
|
53
|
+
next if cert.expires < Time.now
|
48
54
|
path = File.join(CERTIFICATE_OUTPUT_PATH, "#{cert.id}.cer")
|
49
55
|
raw_data = cert.download_raw
|
50
56
|
File.write(path, raw_data)
|
data/lib/deploygate.rb
CHANGED
@@ -1,31 +1,4 @@
|
|
1
1
|
describe DeployGate::API::V1::User do
|
2
|
-
describe "#create" do
|
3
|
-
it "success" do
|
4
|
-
name = 'test'
|
5
|
-
email = 'email'
|
6
|
-
password = 'password'
|
7
|
-
token = 'token'
|
8
|
-
response = {
|
9
|
-
:error => false,
|
10
|
-
:because => '',
|
11
|
-
:results => {
|
12
|
-
:user => {:name => name},
|
13
|
-
:api_token => token
|
14
|
-
}
|
15
|
-
}
|
16
|
-
stub_request(:post, "#{API_ENDPOINT}/users").
|
17
|
-
to_return(:body => response.to_json)
|
18
|
-
|
19
|
-
results = DeployGate::API::V1::User.create(name, email, password)
|
20
|
-
expect(results).to eq({
|
21
|
-
:error => response[:error],
|
22
|
-
:message => response[:because],
|
23
|
-
:name => name,
|
24
|
-
:token => token
|
25
|
-
})
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
2
|
describe "#registered?" do
|
30
3
|
it "registered" do
|
31
4
|
name = 'test'
|
@@ -61,6 +61,7 @@ describe DeployGate::Xcode::Export do
|
|
61
61
|
before do
|
62
62
|
@distribution_certificate_id = 'distribution_certificate_id'
|
63
63
|
@distribution_certificate = " 1) #{@distribution_certificate_id} \"iPhone Distribution: DeployGate Inc.\""
|
64
|
+
@apple_distribution_certificate = " 1) #{@distribution_certificate_id} \"Apple Distribution: DeployGate Inc.\""
|
64
65
|
@not_distribution_certificate = " 1) xxxxxxxxxxxxxx \"iPhone Developer: DeployGate Inc.\""
|
65
66
|
end
|
66
67
|
it "not installed distribution certificate" do
|
@@ -74,23 +75,44 @@ describe DeployGate::Xcode::Export do
|
|
74
75
|
ids = DeployGate::Xcode::Export.installed_distribution_certificate_ids
|
75
76
|
expect(ids).to eql([@distribution_certificate_id])
|
76
77
|
end
|
78
|
+
|
79
|
+
it "installed apple distribution certificate" do
|
80
|
+
allow(DeployGate::Xcode::Export).to receive(:installed_certificates).and_return([@apple_distribution_certificate, @not_distribution_certificate])
|
81
|
+
|
82
|
+
ids = DeployGate::Xcode::Export.installed_distribution_certificate_ids
|
83
|
+
expect(ids).to eql([@distribution_certificate_id])
|
84
|
+
end
|
77
85
|
end
|
78
86
|
|
79
|
-
describe "#
|
87
|
+
describe "#installed_distribution_conflicting_certificates_by" do
|
80
88
|
before do
|
81
89
|
@distribution_certificate = " 1) xxxxxxxxxx \"iPhone Distribution: DeployGate Inc.\""
|
82
90
|
@distribution_certificate2 = " 2) yyyyyyyyyyyy \"iPhone Distribution: DeployGate Inc.\""
|
83
91
|
@distribution_certificate3 = " 2) yyyyyyyyyyyy \"iPhone Distribution: DeployGate Inc2.\""
|
92
|
+
|
93
|
+
@apple_distribution_certificate = " 1) xxxxxxxxxxx \"Apple Distribution: DeployGate Inc.\""
|
94
|
+
@apple_distribution_certificate2 = " 2) yyyyyyyyyyyy \"Apple Distribution: DeployGate Inc.\""
|
95
|
+
@apple_distribution_certificate3 = " 2) yyyyyyyyyyyy \"Apple Distribution: DeployGate Inc2.\""
|
84
96
|
end
|
85
97
|
|
86
98
|
it "conflicting" do
|
87
99
|
allow(DeployGate::Xcode::Export).to receive(:installed_certificates).and_return([@distribution_certificate, @distribution_certificate2])
|
88
|
-
expect(DeployGate::Xcode::Export.
|
100
|
+
expect(DeployGate::Xcode::Export.installed_distribution_conflicting_certificates_by('iPhone Distribution').count).to eql 2
|
101
|
+
end
|
102
|
+
|
103
|
+
it "conflicting by apple" do
|
104
|
+
allow(DeployGate::Xcode::Export).to receive(:installed_certificates).and_return([@apple_distribution_certificate, @apple_distribution_certificate2])
|
105
|
+
expect(DeployGate::Xcode::Export.installed_distribution_conflicting_certificates_by('Apple Distribution').count).to eql 2
|
89
106
|
end
|
90
107
|
|
91
108
|
it "not conflicting" do
|
92
109
|
allow(DeployGate::Xcode::Export).to receive(:installed_certificates).and_return([@distribution_certificate, @distribution_certificate3])
|
93
|
-
expect(DeployGate::Xcode::Export.
|
110
|
+
expect(DeployGate::Xcode::Export.installed_distribution_conflicting_certificates_by('iPhone Distribution').count).to eql 0
|
111
|
+
end
|
112
|
+
|
113
|
+
it "not conflicting by apple" do
|
114
|
+
allow(DeployGate::Xcode::Export).to receive(:installed_certificates).and_return([@apple_distribution_certificate, @apple_distribution_certificate3])
|
115
|
+
expect(DeployGate::Xcode::Export.installed_distribution_conflicting_certificates_by('Apple Distribution').count).to eql 0
|
94
116
|
end
|
95
117
|
end
|
96
118
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deploygate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- deploygate
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -424,8 +424,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
424
424
|
- !ruby/object:Gem::Version
|
425
425
|
version: '0'
|
426
426
|
requirements: []
|
427
|
-
|
428
|
-
rubygems_version: 2.7.7
|
427
|
+
rubygems_version: 3.0.8
|
429
428
|
signing_key:
|
430
429
|
specification_version: 4
|
431
430
|
summary: A command-line interface for DeployGate
|