fastlane-plugin-sous 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4106c4a2457aa6d1e78a2e35a064ff34a199e6d0a335cec2f5d5254a720d5c8
4
- data.tar.gz: 72db785a94ea3068d9edf1a1530c03c001a1cc48fceba149b170ea949662bb14
3
+ metadata.gz: 03a0ccddbe0d3dd343cc317ba2ab2346aa2fb08403fddd57e0d8b4b10244db89
4
+ data.tar.gz: 245586eab3eed442e53bcc9c49bd2d082550b0749ab5cad8f513f9f86e5f6271
5
5
  SHA512:
6
- metadata.gz: b14bba76e1f8b10c6340c005eb881fe7ccbd2e1c06f947a1d8eb241f8386b5e55a6f7392b7571db84f35be44b45fb0692ec75bd6914f8b9e4b71688338f69f11
7
- data.tar.gz: 579cd49a419e3841ff703db51c71931cf2943506a190447143a226a4c4fad02c6d5c61c1dc50bcda5acddfd1a946a4ff60565e3e21eca5b9f42ec3dfa81f422a
6
+ metadata.gz: 0ea10affb8737e97056b012a596426f8f74ea328b11c62301af6227960f7bb0117a5f9641c4bafddb0b71ff9f276c661443791cc8025aa80122c07ceec3873da
7
+ data.tar.gz: 6ab42ed1c468bd43e7a17ebed7c8016ff1aa3a4a81b469c56a93d203b029dc70c8afd87de57c9be457f34645933b50f48ba6a08b765e80f69f2faf80f83b87c6
@@ -1,3 +1,4 @@
1
+
1
2
  ## Based strongly on the work done at https://github.com/christopherney/fastlane-plugin-match_keystore/blob/master/lib/fastlane/plugin/match_keystore/actions/match_keystore_action.rb
2
3
 
3
4
  require 'digest'
@@ -16,9 +17,7 @@ module Fastlane
16
17
  git_url = params[:git_url]
17
18
  git_branch = params[:git_branch]
18
19
  package_name = params[:package_name]
19
- existing_keystore = params[:existing_keystore]
20
20
  match_secret = params[:match_secret]
21
- keystore_data = params[:keystore_data]
22
21
 
23
22
  # constants:
24
23
  keystore_name = package_name + ".jks"
@@ -50,14 +49,14 @@ module Fastlane
50
49
  if security_password.to_s.strip.empty?
51
50
  raise "Security password is not defined! Please use 'match_secret' parameter"
52
51
  end
53
- UI.message "Generating security key '#{key_name}'..."
52
+ UI.message("Generating security key '#{key_name}'...")
54
53
  self.gen_key(key_path, security_password)
55
54
  end
56
55
 
57
56
  # check if password is well initialized
58
57
  tmpkey = self.get_file_content(key_path).strip
59
58
  if tmpkey.length == 128
60
- UI.message "Security key '#{key_name}' initialized"
59
+ UI.message("Security key '#{key_name}' initialized")
61
60
  else
62
61
  raise "The security key '#{key_name}' is malformed, or not initialized!"
63
62
  end
@@ -71,8 +70,8 @@ module Fastlane
71
70
  end
72
71
 
73
72
  # cloning/pulling git remote repo
74
- gitDir = File.join(repo_dir, '/.git')
75
- if !File.directory?(gitDir)
73
+ git_dir = File.join(repo_dir, '/.git')
74
+ if !File.directory?(git_dir)
76
75
  UI.message("Cloning remote Keystores repository...")
77
76
  self.git_clone(git_url, git_branch, self.to_md5(git_url), dir_name)
78
77
  else
@@ -84,11 +83,11 @@ module Fastlane
84
83
  if package_name.to_s.strip.empty?
85
84
  raise "Package name is not defined!"
86
85
  end
87
- keystoreAppDir = File.join(repo_dir, "android")
88
- keystore_path = File.join(keystoreAppDir, keystore_name)
89
- keystore_encrypt_path = File.join(keystoreAppDir, keystore_encrypt_name)
86
+ keystore_app_dir = File.join(repo_dir, "android")
87
+ keystore_path = File.join(keystore_app_dir, keystore_name)
88
+ keystore_encrypt_path = File.join(keystore_app_dir, keystore_encrypt_name)
90
89
 
91
- unless File.file?(keystore_encrypt_path)
90
+ if !File.file?(keystore_encrypt_path)
92
91
  raise "Cannot find encrypted keystore at path: #{keystore_encrypt_path}. Please make sure you have run `prep` at least once and that the keystore is uploaded to your store."
93
92
  else
94
93
  self.decrypt_file(keystore_encrypt_path, keystore_path, key_path)
@@ -96,29 +95,28 @@ module Fastlane
96
95
 
97
96
  Actions.lane_context[SharedValues::KEYSTORE_PATH] = keystore_path
98
97
 
99
- keystore_path
100
-
98
+ keystore_path
101
99
  end
102
100
 
103
101
  def self.git_clone(git_url, git_branch, repo_name, repo_dir)
104
- Git.clone(git_url, repo_name, :path => repo_dir, :branch => git_branch)
102
+ Git.clone(git_url, repo_name, path: repo_dir, branch: git_branch)
105
103
  end
106
104
 
107
105
  def self.git_pull(repo_dir, git_branch)
108
106
  g = Git.open(repo_dir)
109
107
  g.fetch
110
- g.checkout("origin/" + git_branch, :force => true)
108
+ g.checkout("origin/" + git_branch, force: true)
111
109
  g.pull("origin", git_branch)
112
- end
110
+ end
113
111
 
114
112
  def self.to_md5(value)
115
- hash_value = Digest::MD5.hexdigest value
113
+ hash_value = Digest::MD5.hexdigest(value)
116
114
  hash_value
117
115
  end
118
116
 
119
117
  def self.check_openssl_version
120
118
  output = `openssl version`
121
- if !output.start_with?("OpenSSL")
119
+ unless output.start_with?("OpenSSL")
122
120
  raise "Please install OpenSSL at least version 1.1.1 https://www.openssl.org/"
123
121
  end
124
122
  UI.message("OpenSSL v
@@ -164,7 +162,7 @@ module Fastlane
164
162
  description: "URL to the git repo containing the android secrets",
165
163
  is_string: true,
166
164
  verify_block: proc do |value|
167
- UI.user_error!("No Android Secrets Git Url given, pass using `git_url: 'url_location'`") unless (value and not value.empty?)
165
+ UI.user_error!("No Android Secrets Git Url given, pass using `git_url: 'url_location'`") unless value && !value.empty?
168
166
  end),
169
167
  FastlaneCore::ConfigItem.new(key: :git_branch,
170
168
  env_name: "SOUS_GIT_BRANCH",
@@ -181,7 +179,7 @@ module Fastlane
181
179
  description: "The package name of the App",
182
180
  is_string: true,
183
181
  verify_block: proc do |value|
184
- UI.user_error!("No Android Package Name given, pass using `package_name: 'package_name'`") unless (value and not value.empty?)
182
+ UI.user_error!("No Android Package Name given, pass using `package_name: 'package_name'`") unless value && !value.empty?
185
183
  end),
186
184
  FastlaneCore::ConfigItem.new(key: :existing_keystore,
187
185
  env_name: "SOUS_KEYSTORE",
@@ -1,3 +1,4 @@
1
+
1
2
  module Fastlane
2
3
  module Actions
3
4
  module SharedValues
@@ -13,23 +14,23 @@ module Fastlane
13
14
  alias_password = params[:alias_password]
14
15
  zip_align = params[:zip_align]
15
16
 
16
- UI.message "Signing APK #{apk_path}..."
17
+ UI.message("Signing APK #{apk_path}...")
17
18
  apk_path = self.sign_apk(
18
19
  apk_path: apk_path,
19
20
  keystore_path: keystore_path,
20
21
  key_password: key_password,
21
22
  alias_name: alias_name,
22
23
  alias_password: alias_password,
23
- zip_align: zip_align)
24
+ zip_align: zip_align
25
+ )
24
26
 
25
- Actions.lane_context[SharedValues::KEYSTORE_PATH] = apk_path
27
+ Actions.lane_context[SharedValues::SIGNED_APK_PATH] = apk_path
26
28
 
27
29
  apk_path
28
30
  end
29
31
 
30
32
  def self.sign_apk(apk_path:, keystore_path:, key_password:, alias_name:, alias_password:, zip_align:)
31
-
32
- build_tools_path = self.get_build_tools()
33
+ build_tools_path = self.get_build_tools
33
34
 
34
35
  # https://developer.android.com/studio/command-line/zipalign
35
36
  if zip_align == true
@@ -41,6 +42,7 @@ module Fastlane
41
42
  else
42
43
  apk_path_aligned = apk_path
43
44
  end
45
+
44
46
  apk_path_signed = apk_path.gsub(".apk", "-signed.apk")
45
47
  apk_path_signed = apk_path_signed.gsub("unsigned", "")
46
48
  apk_path_signed = apk_path_signed.gsub("--", "-")
@@ -49,9 +51,11 @@ module Fastlane
49
51
  if File.exist?(apk_path_signed)
50
52
  File.delete(apk_path_signed)
51
53
  end
54
+
52
55
  sh("#{build_tools_path}apksigner sign --ks \"#{keystore_path}\" --ks-pass pass:\"#{key_password}\" --v1-signing-enabled true --v2-signing-enabled true --out \"#{apk_path_signed}\" \"#{apk_path_aligned}\"")
53
-
56
+
54
57
  sh("#{build_tools_path}apksigner verify \"#{apk_path_signed}\"")
58
+
55
59
  if File.exist?(apk_path_aligned)
56
60
  File.delete(apk_path_aligned)
57
61
  end
@@ -65,7 +69,7 @@ module Fastlane
65
69
 
66
70
  sub_dirs = Dir.glob(File.join(build_tools_root, '*', ''))
67
71
  build_tools_last_version = ''
68
- for sub_dir in sub_dirs
72
+ sub_dirs.each do |sub_dir|
69
73
  build_tools_last_version = sub_dir
70
74
  end
71
75
 
@@ -79,21 +83,21 @@ module Fastlane
79
83
  description: "Path to the APK File",
80
84
  is_string: true,
81
85
  verify_block: proc do |value|
82
- UI.user_error!("No APK Path given, pass using `apk_path: 'path to apk'`") unless (value and not value.empty?)
86
+ UI.user_error!("No APK Path given, pass using `apk_path: 'path to apk'`") unless value && !value.empty?
83
87
  end),
84
88
  FastlaneCore::ConfigItem.new(key: :keystore_path,
85
89
  env_name: "SOUS_KEYSTORE_PATH",
86
90
  description: "Path to the Keystore file to sign APKs",
87
91
  is_string: true,
88
92
  verify_block: proc do |value|
89
- UI.user_error!("Keystore path is not present, pass using `keystore_path: 'path to keystore'`") unless (value and not value.empty?)
93
+ UI.user_error!("Keystore path is not present, pass using `keystore_path: 'path to keystore'`") unless value && !value.empty?
90
94
  end),
91
95
  FastlaneCore::ConfigItem.new(key: :key_password,
92
96
  env_name: "SOUS_KEY_PASSWORD",
93
97
  description: "Signing Keystore password",
94
98
  is_string: true,
95
99
  verify_block: proc do |value|
96
- UI.user_error!("No Keystore password given, pass using `key_password: 'password'`") unless (value and not value.empty?)
100
+ UI.user_error!("No Keystore password given, pass using `key_password: 'password'`") unless value && !value.empty?
97
101
  end),
98
102
  FastlaneCore::ConfigItem.new(key: :alias_name,
99
103
  env_name: "SOUS_ALIAS_NAME",
@@ -141,4 +145,4 @@ module Fastlane
141
145
  end
142
146
  end
143
147
  end
144
- end
148
+ end
@@ -5,7 +5,6 @@ module Fastlane
5
5
 
6
6
  module Helper
7
7
  class SousHelper
8
-
9
8
  def self.get_android_home
10
9
  android_home = File.absolute_path(ENV["ANDROID_HOME"])
11
10
  android_home
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Sous
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-sous
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Nogueira