mysigner 0.1.2 → 0.1.3

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.githooks/pre-commit +15 -0
  3. data/.githooks/pre-push +21 -0
  4. data/.github/workflows/ci.yml +29 -0
  5. data/.rubocop.yml +55 -0
  6. data/.rubocop_todo.yml +112 -0
  7. data/CHANGELOG.md +96 -0
  8. data/Gemfile +5 -3
  9. data/Gemfile.lock +38 -8
  10. data/README.md +13 -15
  11. data/Rakefile +5 -3
  12. data/bin/console +4 -3
  13. data/bin/setup +3 -0
  14. data/exe/mysigner +2 -1
  15. data/lib/mysigner/build/android_executor.rb +46 -52
  16. data/lib/mysigner/build/android_parser.rb +33 -40
  17. data/lib/mysigner/build/configurator.rb +17 -16
  18. data/lib/mysigner/build/detector.rb +39 -50
  19. data/lib/mysigner/build/error_analyzer.rb +70 -68
  20. data/lib/mysigner/build/executor.rb +30 -37
  21. data/lib/mysigner/build/parser.rb +18 -18
  22. data/lib/mysigner/cli/auth_commands.rb +735 -752
  23. data/lib/mysigner/cli/build_commands.rb +697 -721
  24. data/lib/mysigner/cli/concerns/actionable_suggestions.rb +208 -154
  25. data/lib/mysigner/cli/concerns/api_helpers.rb +46 -54
  26. data/lib/mysigner/cli/concerns/error_handlers.rb +247 -237
  27. data/lib/mysigner/cli/concerns/helpers.rb +12 -1
  28. data/lib/mysigner/cli/diagnostic_commands.rb +659 -635
  29. data/lib/mysigner/cli/resource_commands.rb +880 -902
  30. data/lib/mysigner/cli/validate_commands.rb +25 -25
  31. data/lib/mysigner/cli.rb +3 -1
  32. data/lib/mysigner/client.rb +27 -19
  33. data/lib/mysigner/config.rb +93 -56
  34. data/lib/mysigner/export/exporter.rb +32 -36
  35. data/lib/mysigner/signing/certificate_checker.rb +18 -23
  36. data/lib/mysigner/signing/keystore_manager.rb +34 -39
  37. data/lib/mysigner/signing/validator.rb +38 -40
  38. data/lib/mysigner/signing/wizard.rb +329 -342
  39. data/lib/mysigner/upload/app_store_automation.rb +51 -49
  40. data/lib/mysigner/upload/app_store_submission.rb +87 -92
  41. data/lib/mysigner/upload/play_store_uploader.rb +98 -115
  42. data/lib/mysigner/upload/uploader.rb +101 -109
  43. data/lib/mysigner/version.rb +3 -1
  44. data/lib/mysigner.rb +13 -11
  45. data/mysigner.gemspec +36 -33
  46. data/test_manual.rb +37 -36
  47. metadata +37 -16
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'xcodeproj'
2
4
 
3
5
  module Mysigner
@@ -32,8 +34,8 @@ module Mysigner
32
34
  def extension_targets
33
35
  @project.targets.select do |target|
34
36
  target.product_type&.include?('app-extension') ||
35
- target.product_type&.include?('widget-extension') ||
36
- target.product_type == 'com.apple.product-type.watchkit2-extension'
37
+ target.product_type&.include?('widget-extension') ||
38
+ target.product_type == 'com.apple.product-type.watchkit2-extension'
37
39
  end
38
40
  end
39
41
 
@@ -55,7 +57,7 @@ module Mysigner
55
57
  # Get detailed info about a target
56
58
  def target_info(target_name, configuration = 'Release')
57
59
  target = find_target(target_name)
58
-
60
+
59
61
  {
60
62
  name: target.name,
61
63
  type: product_type(target_name),
@@ -78,17 +80,18 @@ module Mysigner
78
80
  def target_platform(target_name = nil)
79
81
  target = find_target(target_name)
80
82
  sdk = target.sdk
81
-
83
+
82
84
  return :macos if sdk&.include?('macosx')
83
85
  return :tvos if sdk&.include?('appletvos')
84
86
  return :watchos if sdk&.include?('watchos')
85
- :ios # default
87
+
88
+ :ios # default
86
89
  end
87
90
 
88
91
  # Detect product type (app, framework, library)
89
92
  def product_type(target_name = nil)
90
93
  target = find_target(target_name)
91
-
94
+
92
95
  case target.product_type
93
96
  when 'com.apple.product-type.application'
94
97
  :app
@@ -114,9 +117,9 @@ module Mysigner
114
117
  def build_settings(target_name = nil, configuration = 'Release')
115
118
  target = find_target(target_name)
116
119
  config = target.build_configurations.find { |c| c.name == configuration }
117
-
120
+
118
121
  raise "Configuration '#{configuration}' not found" unless config
119
-
122
+
120
123
  config.build_settings
121
124
  end
122
125
 
@@ -160,7 +163,7 @@ module Mysigner
160
163
  def signing_configured?(target_name = nil, configuration = 'Release')
161
164
  profile = provisioning_profile(target_name, configuration)
162
165
  identity = code_sign_identity(target_name, configuration)
163
-
166
+
164
167
  !profile.to_s.empty? && !identity.to_s.empty?
165
168
  end
166
169
 
@@ -172,13 +175,11 @@ module Mysigner
172
175
 
173
176
  # Find a target by name (public method for use by other classes)
174
177
  def find_target(target_name)
175
- if target_name.nil?
176
- return main_target
177
- end
178
+ return main_target if target_name.nil?
178
179
 
179
180
  target = @project.targets.find { |t| t.name == target_name }
180
181
  raise "Target '#{target_name}' not found" unless target
181
-
182
+
182
183
  target
183
184
  end
184
185
 
@@ -187,13 +188,13 @@ module Mysigner
187
188
  # Workspace contains multiple projects
188
189
  # Get the main project (not Pods)
189
190
  workspace = Xcodeproj::Workspace.new_from_xcworkspace(@project_info[:path])
190
-
191
+
191
192
  project_ref = workspace.file_references.find do |ref|
192
193
  !ref.path.include?('Pods') && ref.path.end_with?('.xcodeproj')
193
194
  end
194
-
195
- raise "No main project found in workspace" unless project_ref
196
-
195
+
196
+ raise 'No main project found in workspace' unless project_ref
197
+
197
198
  project_path = File.join(File.dirname(@project_info[:path]), project_ref.path)
198
199
  Xcodeproj::Project.open(project_path)
199
200
  else
@@ -203,4 +204,3 @@ module Mysigner
203
204
  end
204
205
  end
205
206
  end
206
-