sigh 1.3.0 → 1.3.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
  SHA1:
3
- metadata.gz: 967ededb8169f8a0771e37d422d19875de5750a0
4
- data.tar.gz: f8513c6e171c78e8d9d3327a477174939322eee2
3
+ metadata.gz: 9589402f17e4e3c23d0511b977fa7346999dea3f
4
+ data.tar.gz: 8980cd98b9bd6e6ab7dd2dd7b73d1dc4ce292a93
5
5
  SHA512:
6
- metadata.gz: d6c0333740d3489f347e07f5124fdc488c4c9bfdd879863a2dbb83c20d9722c534c242602ce9773581bb575b2df68ea132e4ea3e91c211596d644e72189135f2
7
- data.tar.gz: c9bae3d4c703a9290eee7a886aecf4fad311121c691e24bb1267fb153956daf79748727eeb7592e40680ee7d7c9187cc902776e9b3ca211a4aea0f3c10f69f15
6
+ metadata.gz: b0933b80dfa931ab145d08c9c42229913ccecde99acf6060a3efb458a3b3648d49feb54c74af817640c31d26d8f5fa5f08e2a53df20646801ba7f731f1537deb
7
+ data.tar.gz: 4b9e228b65c5edef013145cde661982b30229a1e860f22b72c57fb68de3836e8439c930c73a181c9fd33df42a349e05383b188dc7549f50b4f078236f5a94a81
data/README.md CHANGED
@@ -250,6 +250,9 @@ If you also want to create a new App Identifier on the Apple Developer Portal, c
250
250
  # Need help?
251
251
  Please submit an issue on GitHub and provide information about your setup
252
252
 
253
+ # Code of Conduct
254
+ Help us keep `sigh` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
255
+
253
256
  # License
254
257
  This project is licensed under the terms of the MIT license. See the LICENSE file.
255
258
 
@@ -2,17 +2,17 @@ module Sigh
2
2
  class DownloadAll
3
3
  # Download all valid provisioning profiles
4
4
  def download_all
5
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
5
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
6
6
  Spaceship.login(Sigh.config[:username], nil)
7
7
  Spaceship.select_team
8
- Helper.log.info "Successfully logged in"
8
+ UI.message "Successfully logged in"
9
9
 
10
10
  Spaceship.provisioning_profile.all.each do |profile|
11
11
  if profile.valid?
12
- Helper.log.info "Downloading profile '#{profile.name}'...".green
12
+ UI.message "Downloading profile '#{profile.name}'..."
13
13
  download_profile(profile)
14
14
  else
15
- Helper.log.info "Skipping invalid/expired profile '#{profile.name}'".yellow
15
+ UI.important "Skipping invalid/expired profile '#{profile.name}'"
16
16
  end
17
17
  end
18
18
  end
@@ -13,7 +13,7 @@ module Sigh
13
13
  end
14
14
 
15
15
  def self.install_profile(profile)
16
- Helper.log.info "Installing provisioning profile..."
16
+ UI.message "Installing provisioning profile..."
17
17
  profile_path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/"
18
18
  profile_filename = ENV["SIGH_UDID"] + ".mobileprovision"
19
19
  destination = profile_path + profile_filename
@@ -27,9 +27,9 @@ module Sigh
27
27
  FileUtils.copy profile, destination
28
28
 
29
29
  if File.exist? destination
30
- Helper.log.info "Profile installed at \"#{destination}\""
30
+ UI.success "Profile installed at \"#{destination}\""
31
31
  else
32
- raise "Failed installation of provisioning profile at location: #{destination}".red
32
+ UI.user_error!("Failed installation of provisioning profile at location: #{destination}")
33
33
  end
34
34
  end
35
35
 
@@ -40,7 +40,6 @@ module Sigh
40
40
  return command, clean_expired, clean_pattern
41
41
  end
42
42
 
43
- # rubocop:disable Metrics/AbcSize
44
43
  def self.list_profiles
45
44
  profiles = load_profiles
46
45
 
@@ -49,62 +48,61 @@ module Sigh
49
48
 
50
49
  profiles_valid = profiles.select { |profile| profile["ExpirationDate"] > now && profile["ExpirationDate"] > soon }
51
50
  if profiles_valid.count > 0
52
- Helper.log.info "Provisioning profiles installed"
53
- Helper.log.info "Valid:"
51
+ UI.message "Provisioning profiles installed"
52
+ UI.message "Valid:"
54
53
  profiles_valid.each do |profile|
55
- Helper.log.info profile["Name"].green
54
+ UI.message profile["Name"].green
56
55
  end
57
56
  end
58
57
 
59
58
  profiles_soon = profiles.select { |profile| profile["ExpirationDate"] > now && profile["ExpirationDate"] < soon }
60
59
  if profiles_soon.count > 0
61
- Helper.log.info ""
62
- Helper.log.info "Expiring within 30 day:"
60
+ UI.message ""
61
+ UI.message "Expiring within 30 day:"
63
62
  profiles_soon.each do |profile|
64
- Helper.log.info profile["Name"].yellow
63
+ UI.message profile["Name"].yellow
65
64
  end
66
65
  end
67
66
 
68
67
  profiles_expired = profiles.select { |profile| profile["ExpirationDate"] < now }
69
68
  if profiles_expired.count > 0
70
- Helper.log.info ""
71
- Helper.log.info "Expired:"
69
+ UI.message ""
70
+ UI.message "Expired:"
72
71
  profiles_expired.each do |profile|
73
- Helper.log.info profile["Name"].red
72
+ UI.message profile["Name"].red
74
73
  end
75
74
  end
76
75
 
77
- Helper.log.info ""
78
- Helper.log.info "Summary"
79
- Helper.log.info "#{profiles.count} installed profiles"
80
- Helper.log.info "#{profiles_expired.count} are expired".red
81
- Helper.log.info "#{profiles_soon.count} are valid but will expire within 30 days".yellow
82
- Helper.log.info "#{profiles_valid.count} are valid".green
76
+ UI.message ""
77
+ UI.message "Summary"
78
+ UI.message "#{profiles.count} installed profiles"
79
+ UI.message "#{profiles_expired.count} are expired".red
80
+ UI.message "#{profiles_soon.count} are valid but will expire within 30 days".yellow
81
+ UI.message "#{profiles_valid.count} are valid".green
83
82
 
84
- Helper.log.info "You can remove all expired profiles using `sigh manage -e`" if profiles_expired.count > 0
83
+ UI.message "You can remove all expired profiles using `sigh manage -e`" if profiles_expired.count > 0
85
84
  end
86
- # rubocop:enable Metrics/AbcSize
87
85
 
88
86
  def self.cleanup_profiles(expired = false, pattern = nil)
89
87
  now = DateTime.now
90
88
 
91
89
  profiles = load_profiles.select { |profile| (expired && profile["ExpirationDate"] < now) || (!pattern.nil? && profile["Name"] =~ pattern) }
92
90
 
93
- Helper.log.info "The following provisioning profiles are either expired or matches your pattern:"
91
+ UI.message "The following provisioning profiles are either expired or matches your pattern:"
94
92
  profiles.each do |profile|
95
- Helper.log.info profile["Name"].red
93
+ UI.message profile["Name"].red
96
94
  end
97
95
 
98
96
  if agree("Delete these provisioning profiles #{profiles.length}? (y/n) ", true)
99
97
  profiles.each do |profile|
100
98
  File.delete profile["Path"]
101
99
  end
102
- Helper.log.info "\n\nDeleted #{profiles.length} profiles".green
100
+ UI.success "\n\nDeleted #{profiles.length} profiles"
103
101
  end
104
102
  end
105
103
 
106
104
  def self.load_profiles
107
- Helper.log.info "Loading Provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/"
105
+ UI.message "Loading Provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/"
108
106
  profiles_path = File.expand_path("~") + "/Library/MobileDevice/Provisioning Profiles/*.mobileprovision"
109
107
  profile_paths = Dir[profiles_path]
110
108
 
data/lib/sigh/options.rb CHANGED
@@ -88,7 +88,7 @@ module Sigh
88
88
  optional: true,
89
89
  description: "Filename to use for the generated provisioning profile (must include .mobileprovision)",
90
90
  verify_block: proc do |value|
91
- raise "The output name must end with .mobileprovision".red unless value.end_with? ".mobileprovision"
91
+ UI.user_error!("The output name must end with .mobileprovision") unless value.end_with?(".mobileprovision")
92
92
  end),
93
93
  FastlaneCore::ConfigItem.new(key: :skip_fetch_profiles,
94
94
  env_name: "SIGH_SKIP_FETCH_PROFILES",
data/lib/sigh/repair.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  module Sigh
2
2
  class Repair
3
3
  def repair_all
4
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
4
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
5
5
  Spaceship.login(Sigh.config[:username], nil)
6
6
  Spaceship.select_team
7
- Helper.log.info "Successfully logged in"
7
+ UI.message "Successfully logged in"
8
8
 
9
9
  # Select all 'Invalid' or 'Expired' provisioning profiles
10
10
  broken_profiles = Spaceship.provisioning_profile.all.find_all do |profile|
@@ -12,19 +12,19 @@ module Sigh
12
12
  end
13
13
 
14
14
  if broken_profiles.count == 0
15
- Helper.log.info "All provisioning profiles are valid, nothing to do".green
15
+ UI.success "All provisioning profiles are valid, nothing to do"
16
16
  return
17
17
  end
18
18
 
19
- Helper.log.info "Going to repair #{broken_profiles.count} provisioning profiles".green
19
+ UI.success "Going to repair #{broken_profiles.count} provisioning profiles"
20
20
 
21
21
  # Iterate over all broken profiles and repair them
22
22
  broken_profiles.each do |profile|
23
- Helper.log.info "Repairing profile '#{profile.name}'..."
23
+ UI.message "Repairing profile '#{profile.name}'..."
24
24
  profile.repair! # yes, that's all you need to repair a profile
25
25
  end
26
26
 
27
- Helper.log.info "Successfully repaired #{broken_profiles.count} provisioning profiles".green
27
+ UI.success "Successfully repaired #{broken_profiles.count} provisioning profiles"
28
28
  end
29
29
  end
30
30
  end
data/lib/sigh/resign.rb CHANGED
@@ -41,10 +41,10 @@ module Sigh
41
41
  puts `#{command}`
42
42
 
43
43
  if $?.to_i == 0
44
- Helper.log.info "Successfully signed #{ipa}!".green
44
+ UI.success "Successfully signed #{ipa}!"
45
45
  true
46
46
  else
47
- Helper.log.fatal "Something went wrong while code signing #{ipa}".red
47
+ UI.error "Something went wrong while code signing #{ipa}"
48
48
  false
49
49
  end
50
50
  end
@@ -76,7 +76,7 @@ module Sigh
76
76
 
77
77
  def find_signing_identity(signing_identity)
78
78
  until installed_identies.include?(signing_identity)
79
- Helper.log.error "Couldn't find signing identity '#{signing_identity}'."
79
+ UI.error "Couldn't find signing identity '#{signing_identity}'."
80
80
  signing_identity = ask_for_signing_identity
81
81
  end
82
82
 
@@ -90,19 +90,21 @@ module Sigh
90
90
  end
91
91
 
92
92
  def validate_resign_path(resign_path)
93
- raise 'Could not find resign.sh file. Please try re-installing the gem.'.red unless File.exist?(resign_path)
93
+ UI.user_error!('Could not find resign.sh file. Please try re-installing the gem') unless File.exist?(resign_path)
94
94
  end
95
95
 
96
96
  def validate_ipa_file(ipa)
97
- raise "ipa file could not be found or is not an ipa file (#{ipa})".red unless File.exist?(ipa) && ipa.end_with?('.ipa')
97
+ UI.user_error!("ipa file could not be found or is not an ipa file (#{ipa})") unless File.exist?(ipa) && ipa.end_with?('.ipa')
98
98
  end
99
99
 
100
100
  def validate_provisioning_file(provisioning_profile)
101
- raise "Provisioning profile file could not be found or is not a .mobileprovision file (#{provisioning_profile})".red unless File.exist?(provisioning_profile) && provisioning_profile.end_with?('.mobileprovision')
101
+ unless File.exist?(provisioning_profile) && provisioning_profile.end_with?('.mobileprovision')
102
+ UI.user_error!("Provisioning profile file could not be found or is not a .mobileprovision file (#{provisioning_profile})")
103
+ end
102
104
  end
103
105
 
104
106
  def print_available_identities
105
- Helper.log.info "Available identities: \n\t#{installed_identies.join("\n\t")}\n"
107
+ UI.message "Available identities: \n\t#{installed_identies.join("\n\t")}\n"
106
108
  end
107
109
 
108
110
  def ask_for_signing_identity
data/lib/sigh/runner.rb CHANGED
@@ -11,35 +11,35 @@ module Sigh
11
11
  hide_keys: [:output_path],
12
12
  title: "Summary for sigh #{Sigh::VERSION}")
13
13
 
14
- Helper.log.info "Starting login with user '#{Sigh.config[:username]}'"
14
+ UI.message "Starting login with user '#{Sigh.config[:username]}'"
15
15
  Spaceship.login(Sigh.config[:username], nil)
16
16
  Spaceship.select_team
17
- Helper.log.info "Successfully logged in"
17
+ UI.message "Successfully logged in"
18
18
 
19
19
  profiles = [] if Sigh.config[:skip_fetch_profiles]
20
20
  profiles ||= fetch_profiles # download the profile if it's there
21
21
 
22
22
  if profiles.count > 0
23
- Helper.log.info "Found #{profiles.count} matching profile(s)".yellow
23
+ UI.success "Found #{profiles.count} matching profile(s)"
24
24
  profile = profiles.first
25
25
 
26
26
  if Sigh.config[:force]
27
27
  if profile_type == Spaceship.provisioning_profile::AppStore or profile_type == Spaceship.provisioning_profile::InHouse
28
- Helper.log.info "Updating the provisioning profile".yellow
28
+ UI.important "Updating the provisioning profile"
29
29
  else
30
- Helper.log.info "Updating the profile to include all devices".yellow
30
+ UI.important "Updating the profile to include all devices"
31
31
  profile.devices = Spaceship.device.all_for_profile_type(profile.type)
32
32
  end
33
33
 
34
34
  profile = profile.update! # assign it, as it's a new profile
35
35
  end
36
36
  else
37
- Helper.log.info "No existing profiles found, that match the certificates you have installed, creating a new one for you".yellow
37
+ UI.important "No existing profiles found, that match the certificates you have installed, creating a new one for you"
38
38
  ensure_app_exists!
39
39
  profile = create_profile!
40
40
  end
41
41
 
42
- raise "Something went wrong fetching the latest profile".red unless profile
42
+ UI.user_error!("Something went wrong fetching the latest profile") unless profile
43
43
 
44
44
  if profile_type == Spaceship.provisioning_profile.in_house
45
45
  ENV["SIGH_PROFILE_ENTERPRISE"] = "1"
@@ -64,7 +64,7 @@ module Sigh
64
64
 
65
65
  # Fetches a profile matching the user's search requirements
66
66
  def fetch_profiles
67
- Helper.log.info "Fetching profiles..."
67
+ UI.message "Fetching profiles..."
68
68
  results = profile_type.find_by_bundle_id(Sigh.config[:app_identifier]).find_all(&:valid?)
69
69
 
70
70
  # Take the provisioning profile name into account
@@ -100,12 +100,12 @@ module Sigh
100
100
 
101
101
  unless Sigh.config[:skip_fetch_profiles]
102
102
  if Spaceship.provisioning_profile.all.find { |p| p.name == name }
103
- Helper.log.error "The name '#{name}' is already taken, using another one."
103
+ UI.error "The name '#{name}' is already taken, using another one."
104
104
  name += " #{Time.now.to_i}"
105
105
  end
106
106
  end
107
107
 
108
- Helper.log.info "Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}'".yellow
108
+ UI.important "Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}'"
109
109
  profile = profile_type.create!(name: name,
110
110
  bundle_id: bundle_id,
111
111
  certificate: cert)
@@ -137,11 +137,11 @@ module Sigh
137
137
  end
138
138
 
139
139
  if certificates.count > 1 and !Sigh.config[:development]
140
- Helper.log.info "Found more than one code signing identity. Choosing the first one. Check out `sigh --help` to see all available options.".yellow
141
- Helper.log.info "Available Code Signing Identities for current filters:".green
140
+ UI.important "Found more than one code signing identity. Choosing the first one. Check out `sigh --help` to see all available options."
141
+ UI.important "Available Code Signing Identities for current filters:"
142
142
  certificates.each do |c|
143
143
  str = ["\t- Name:", c.owner_name, "- ID:", c.id + "- Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
144
- Helper.log.info str.green
144
+ UI.message str.green
145
145
  end
146
146
  end
147
147
 
@@ -149,8 +149,8 @@ module Sigh
149
149
  filters = ""
150
150
  filters << "Owner Name: '#{Sigh.config[:cert_owner_name]}' " if Sigh.config[:cert_owner_name]
151
151
  filters << "Certificate ID: '#{Sigh.config[:cert_id]}' " if Sigh.config[:cert_id]
152
- Helper.log.info "No certificates for filter: #{filters}".yellow if filters.length > 0
153
- raise "Could not find a matching code signing identity for #{profile_type}. You can use cert to generate one (https://github.com/fastlane/cert)".red
152
+ UI.important "No certificates for filter: #{filters}" if filters.length > 0
153
+ UI.user_error!("Could not find a matching code signing identity for #{profile_type}. You can use cert to generate one (https://github.com/fastlane/cert)")
154
154
  end
155
155
 
156
156
  return certificates if Sigh.config[:development] # development profiles support multiple certificates
@@ -160,7 +160,7 @@ module Sigh
160
160
 
161
161
  # Downloads and stores the provisioning profile
162
162
  def download_profile(profile)
163
- Helper.log.info "Downloading provisioning profile...".yellow
163
+ UI.important "Downloading provisioning profile..."
164
164
  profile_name ||= "#{profile.class.pretty_type}_#{Sigh.config[:app_identifier]}.mobileprovision" # default name
165
165
  profile_name += '.mobileprovision' unless profile_name.include? 'mobileprovision'
166
166
 
@@ -170,7 +170,7 @@ module Sigh
170
170
  f.write(profile.download)
171
171
  end
172
172
 
173
- Helper.log.info "Successfully downloaded provisioning profile...".green
173
+ UI.success "Successfully downloaded provisioning profile..."
174
174
  return output_path
175
175
  end
176
176
 
@@ -178,21 +178,21 @@ module Sigh
178
178
  def ensure_app_exists!
179
179
  return if Spaceship::App.find(Sigh.config[:app_identifier])
180
180
  print_produce_command(Sigh.config)
181
- raise "Could not find App with App Identifier '#{Sigh.config[:app_identifier]}'"
181
+ UI.user_error!("Could not find App with App Identifier '#{Sigh.config[:app_identifier]}'")
182
182
  end
183
183
 
184
184
  def print_produce_command(config)
185
- Helper.log.info ""
186
- Helper.log.info "==========================================".yellow
187
- Helper.log.info "Could not find App ID with bundle identifier '#{config[:app_identifier]}'"
188
- Helper.log.info "You can easily generate a new App ID on the Developer Portal using 'produce':"
189
- Helper.log.info ""
190
- Helper.log.info "produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow
191
- Helper.log.info ""
192
- Helper.log.info "You will be asked for any missing information, like the full name of your app"
193
- Helper.log.info "If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above"
194
- Helper.log.info "==========================================".yellow
195
- Helper.log.info ""
185
+ UI.message ""
186
+ UI.message "==========================================".yellow
187
+ UI.message "Could not find App ID with bundle identifier '#{config[:app_identifier]}'"
188
+ UI.message "You can easily generate a new App ID on the Developer Portal using 'produce':"
189
+ UI.message ""
190
+ UI.message "produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow
191
+ UI.message ""
192
+ UI.message "You will be asked for any missing information, like the full name of your app"
193
+ UI.message "If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above"
194
+ UI.message "==========================================".yellow
195
+ UI.message ""
196
196
  end
197
197
  end
198
198
  end
data/lib/sigh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sigh
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sigh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2016-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.30.0
19
+ version: 0.36.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.30.0
29
+ version: 0.36.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0