deploygate 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 240a15ab59a4c7bbf4a9eaddea45753f1e0c43b043d7dd13da404567034e8b97
4
- data.tar.gz: f4e49f23e2e26a96c26d44e6cc499260494f6540b13e4cebd9a108b0e93e1e79
3
+ metadata.gz: 8cd91c1e3ea9e8f1bb159e257e3bc6f3eeb557b89c654caabb8aea817d1470e7
4
+ data.tar.gz: afc969266c279b32687df44fa78265ca843bb210b9e457195296abdc0c489d0e
5
5
  SHA512:
6
- metadata.gz: 74c6ec9d1a2fc12a27f722a336e5e2438481644d2c4eec1740001c07ede7c1733739a51bebf0bec034a3a7e2aca88ecd2e2665c28fcca277a363af0e646086ba
7
- data.tar.gz: ebbd48822b79e23fd0098377fa09254f5cd46a3244f08c817a942db381cc2080434f0e77c403caae9875ce1f59c0b27b7631cd5dbed7ac28d4720840e1420121
6
+ metadata.gz: bf82535795d7295dfdc325ca359b950ce599453e6927a02c02430a5a95d45fdeddd3ac4d67ab0626b1fc9f8e71e4bfbfdd1050b2b99bc75f301aed0a6f029859
7
+ data.tar.gz: c0e6d977d35e49acd25e4ee4cec35c6925535e4968964f172a0bff1bc7974b27fc834690a3d9dbd7ed0b6748ee8a95d75d64a9e2189c43369e9efc7625695645
@@ -20,5 +20,6 @@ deploy:
20
20
  on:
21
21
  tags: true
22
22
  repo: DeployGate/deploygate-cli
23
+ rvm: 2.4
23
24
  after_deploy:
24
25
  - 'curl -X POST --data-urlencode "payload={\"text\": \"Released a deploygate gem in <https://rubygems.org/gems/deploygate/|RubyGems>\"}" $SLACK_URL'
@@ -142,16 +142,16 @@ en:
142
142
  choice: '%{team_name} %{team_id}'
143
143
  check_local_certificates:
144
144
  not_local_install_certificate:
145
- error_message: 'Error: No applicable iPhone Distribution certificate found on your Mac.'
145
+ error_message: 'Error: No applicable iPhone Distribution or Apple Distribution certificate found on your Mac.'
146
146
  note: |
147
- No "iPhone Distribution" certificate and/or corresponding private key installed locally.
147
+ No "iPhone Distribution" or "Apple Distribution" certificate and/or corresponding private key installed locally.
148
148
  To sign your application code, make sure you have installed them and available in your Keychain.
149
149
 
150
150
  See also: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
151
151
  conflict_certificate:
152
152
  error_message: 'Error: Too many certificates found.'
153
153
  note: |
154
- You have more than one "iPhone Distribution" certificate installed on your Mac.
154
+ You have more than one "iPhone Distribution" or "Apple Distribution" certificate installed on your Mac.
155
155
  Please remove other unnecessary certificates from your Keychain.
156
156
  clean_provisioning_profiles:
157
157
  start: 'Cleaning local Provisioning Profiles...'
@@ -171,5 +171,5 @@ en:
171
171
  Note: Your password will be stored to your Keychain and never be sent to DeployGate.
172
172
  email: 'Email: '
173
173
  provisioning_profile:
174
- not_installed_certificate_error: 'No iPhone Distribution Certificate associated with private key was found in local Keychain'
174
+ not_installed_certificate_error: 'No iPhone Distribution or Apple Distribution Certificate associated with private key was found in local Keychain'
175
175
  not_exist_uuid_provisioning_profile_error: 'No provisioning profile found for the specified UUID (%{uuid})'
@@ -1,3 +1,3 @@
1
1
  module DeployGate
2
- VERSION = '0.8.0'
2
+ VERSION = '0.8.1'
3
3
  end
@@ -53,7 +53,7 @@ module DeployGate
53
53
  identity
54
54
  end
55
55
 
56
- # Support Xcode7 more
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
- next if build_configuration.name != specified_configuration
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 installed_distribution_conflicting_certificates
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(/(iPhone Distribution:.*)/)[1]
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(/(iPhone Distribution:.*)/)[1]
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
- conflicting_certificates = installed_distribution_conflicting_certificates
259
- if conflicting_certificates.count > 0
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
- conflicting_certificates.each do |certificate|
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 ""
@@ -35,16 +35,22 @@ module DeployGate
35
35
 
36
36
  # @return [Array]
37
37
  def all_create
38
- if @member_center.adhoc?
39
- prod_certs = @member_center.launcher.certificate.production.all
40
- else
41
- prod_certs = @member_center.launcher.certificate.all.reject{|cert| cert.class != Spaceship::Portal::Certificate::InHouse}
42
- end
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)
@@ -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 "#installed_distribution_conflicting_certificates" do
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.installed_distribution_conflicting_certificates.count).to eql 2
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.installed_distribution_conflicting_certificates.count).to eql 0
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.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - deploygate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-21 00:00:00.000000000 Z
11
+ date: 2020-05-22 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
- rubyforge_project:
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