fastlane-plugin-fivethree_ionic 0.1.4 → 0.1.5

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: 9a75285850239bce8920f6049beb1f0c88539bb1
4
- data.tar.gz: 51cd9286a3ef592c007413b5d43a0c1fde4b6540
3
+ metadata.gz: 4aec649ee473a5d82c3c6e8fa933a065ab33efa2
4
+ data.tar.gz: d736a7dfd30c87a7971a4e98e27f1f0c3452ecc9
5
5
  SHA512:
6
- metadata.gz: 02b18fcc1d4fbd4c722bb32815081b1094f757f9d37c7c85fb430d6f444564c9a5c59d76bb16fe8cc976cbc456c3b61293f93643321fab4fed538f1007c73f0f
7
- data.tar.gz: 5a11042677f9896b6ea881ebf9e3b4bc181c78e75bb07b3f2d46cd844c1291327bd8292d5d2544e8942f11cce685ce05157f56e456d62b3384de19244f0c7ee3
6
+ metadata.gz: 754cc6f0659efd2a61bb29541aaba65042d27853c85addd13745cae57db7363f2fd29fe27b430f933163d236fb7277e77e09ffc780523b731efcbd47bcce7c46
7
+ data.tar.gz: ca5b01f7c0251c565dca7df5306bc25166ed14559155f039d683d333e393da467577b9e66c1721ad491033ff0ef30dae5c8adf70718cd7ffcb49f065757862c7
@@ -0,0 +1,129 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ ANDROID_KEYSTORE_KEYSTORE_PATH = :ANDROID_KEYSTORE_KEYSTORE_PATH
5
+ ANDROID_KEYSTORE_RELEASE_SIGNING_PATH = :ANDROID_KEYSTORE_RELEASE_SIGNING_PATH
6
+ end
7
+
8
+ class FivAndroidKeystoreAction < Action
9
+ def self.run(params)
10
+
11
+ output_directory = params[:output_directory]
12
+ keystore_name = params[:keystore_name]
13
+ keystore_path = File.join(output_directory, keystore_name) + '.keystore'
14
+
15
+ # Validating output doesn't exist yet for our android signing info
16
+ if File.directory?(output_directory)
17
+ if File.exists?(keystore_path)
18
+ return keystore_path
19
+ end
20
+ else
21
+ UI.message "android keystore doesnt exist yet. creating one for you..."
22
+ Dir.mkdir output_directory
23
+ end
24
+
25
+
26
+ puts "Please enter the keystore password for new keystore:"
27
+ keychain_entry = CredentialsManager::AccountManager.new(user: "#{keystore_name}_android_keystore_storepass")
28
+ password = keychain_entry.password
29
+
30
+ puts "Please enter the keystore password for new keystore:"
31
+ keypass_entry = CredentialsManager::AccountManager.new(user: "#{keystore_name}_android_keystore_keypass")
32
+ key_password = keypass_entry.password
33
+
34
+ alias_name = Fastlane::Actions::PromptAction.run(text:"Enter kexystore alias")
35
+
36
+
37
+ full_name = Fastlane::Actions::PromptAction.run(text:"Enter kexystore full name")
38
+ org = Fastlane::Actions::PromptAction.run(text:"Enter kexystore org")
39
+ org_unit = Fastlane::Actions::PromptAction.run(text:"Enter kexystore org unit")
40
+ city_locality = Fastlane::Actions::PromptAction.run(text:"Enter city")
41
+ state_province = Fastlane::Actions::PromptAction.run(text:"Enter state")
42
+ country = Fastlane::Actions::PromptAction.run(text:"country")
43
+
44
+ Actions.lane_context[SharedValues::ANDROID_KEYSTORE_KEYSTORE_PATH] = keystore_path
45
+
46
+ # Create keystore with command
47
+ unless File.file?(keystore_path)
48
+ keytool_parts = [
49
+ "keytool -genkey -v",
50
+ "-keystore #{keystore_path}",
51
+ "-alias #{alias_name}",
52
+ "-keyalg RSA -keysize 2048 -validity 10000",
53
+ "-storepass #{password} ",
54
+ "-keypass #{key_password}",
55
+ "-dname \"CN=#{full_name}, OU=#{org_unit}, O=#{org}, L=#{city_locality}, S=#{state_province}, C=#{country}\"",
56
+ ]
57
+ sh keytool_parts.join(" ")
58
+ else
59
+ UI.message "Keystore file already exists - #{keystore_path}"
60
+ end
61
+
62
+ # Create release-signing.properties for automatic signing with Ionic
63
+
64
+ release_signing_path = File.join(output_directory, "release-signing.properties")
65
+ Actions.lane_context[SharedValues::ANDROID_KEYSTORE_RELEASE_SIGNING_PATH] = release_signing_path
66
+
67
+ unless File.file?(release_signing_path)
68
+ out_file = File.new(release_signing_path, "w")
69
+ out_file.puts("storeFile=#{keystore_name}")
70
+ out_file.puts("storePassword=#{password}")
71
+ out_file.puts("keyAlias=#{alias_name}")
72
+ out_file.puts("keyPassword=#{key_password}")
73
+ out_file.close
74
+ else
75
+ UI.message "release-signing.properties file already exists - #{release_signing_path}"
76
+ end
77
+
78
+ return keystore_path
79
+ end
80
+
81
+ #####################################################
82
+ # @!group Documentation
83
+ #####################################################
84
+
85
+ def self.description
86
+ "Generate an Android keystore file"
87
+ end
88
+
89
+ def self.details
90
+ "Generate an Android keystore file"
91
+ end
92
+
93
+ def self.available_options
94
+ [
95
+ FastlaneCore::ConfigItem.new(key: :output_directory,
96
+ env_name: "ANDROID_KEYSTORE_OUTPUT_DIRECTORY",
97
+ description: "",
98
+ is_string: true,
99
+ optional: false,
100
+ default_value: File.absolute_path(File.join(Dir.pwd, ".android_signing"))),
101
+ FastlaneCore::ConfigItem.new(key: :keystore_name,
102
+ env_name: "ANDROID_KEYSTORE_KEYSTORE_NAME",
103
+ description: "",
104
+ is_string: true,
105
+ optional: false)
106
+ ]
107
+ end
108
+
109
+ def self.output
110
+ [
111
+ ['ANDROID_KEYSTORE_KEYSTORE_PATH', 'Path to keystore'],
112
+ ['ANDROID_KEYSTORE_RELEASE_SIGNING_PATH', 'Path to release-signing.properties']
113
+ ]
114
+ end
115
+
116
+ def self.return_value
117
+ "Path to keystore"
118
+ end
119
+
120
+ def self.authors
121
+ ["fivethree"]
122
+ end
123
+
124
+ def self.is_supported?(platform)
125
+ platform == :android
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,98 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ FIV_BUILD_IONIC_ANDROID_CUSTOM_VALUE = :FIV_BUILD_IONIC_ANDROID_CUSTOM_VALUE
5
+ end
6
+
7
+ class FivCleanInstallAction < Action
8
+ def self.run(params)
9
+ if params[:platform].to_s == 'ios' || params[:platform].to_s == 'android'
10
+ sh "rm -rf node_modules platforms/#{params[:platform]}"
11
+ elsif params[:platform].to_s == 'browser'
12
+ sh "rm -rf node_modules www"
13
+ end
14
+
15
+ if params[:plugins]
16
+ sh "rm -rf plugins"
17
+ end
18
+
19
+ sh "#{params[:package_manager]} install"
20
+
21
+ if params[:platform].to_s == 'ios' || params[:platform].to_s == 'android'
22
+ sh "ionic cordova platform add #{params[:platform]}"
23
+ end
24
+
25
+ end
26
+
27
+ #####################################################
28
+ # @!group Documentation
29
+ #####################################################
30
+
31
+ def self.description
32
+ "A short description with <= 80 characters of what this action does"
33
+ end
34
+
35
+ def self.details
36
+ # Optional:
37
+ # this is your chance to provide a more detailed description of this action
38
+ "You can use this action to do cool things..."
39
+ end
40
+
41
+ def self.available_options
42
+ # Define all options your action supports.
43
+
44
+ # Below a few examples
45
+ [
46
+ FastlaneCore::ConfigItem.new(
47
+ key: :platform,
48
+ env_name: "CORDOVA_PLATFORM",
49
+ description: "Platform to build on. Can be android, ios or browser",
50
+ is_string: true,
51
+ default_value: '',
52
+ verify_block: proc do |value|
53
+ UI.user_error!("Platform should be either android, ios or browser") unless ['', 'android', 'ios', 'browser'].include? value
54
+ end
55
+ ),
56
+ FastlaneCore::ConfigItem.new(
57
+ key: :plugins,
58
+ env_name: "REFRESH_PLUGINS",
59
+ description: "also refresh plugins",
60
+ default_value: false,
61
+ is_string: false
62
+ ),
63
+ FastlaneCore::ConfigItem.new(
64
+ key: :package_manager,
65
+ env_name: "PACKAGE_MANAGER",
66
+ description: "What package manager to use to install dependencies: e.g. yarn | npm",
67
+ is_string: true,
68
+ default_value: 'npm',
69
+ verify_block: proc do |value|
70
+ UI.user_error!("Platform should be either android, ios or browser") unless ['', 'yarn', 'npm'].include? value
71
+ end
72
+ ),
73
+ ]
74
+ end
75
+
76
+ def self.output
77
+ # Define the shared values you are going to provide
78
+ # Example
79
+ [
80
+ ['FIV_BUILD_IONIC_ANDROID_CUSTOM_VALUE', 'A description of what this value contains']
81
+ ]
82
+ end
83
+
84
+ def self.return_value
85
+ # If your method provides a return value, you can describe here what it does
86
+ end
87
+
88
+ def self.authors
89
+ # So no one will ever forget your contribution to fastlane :) You are awesome btw!
90
+ ["Your GitHub/Twitter Name"]
91
+ end
92
+
93
+ def self.is_supported?(platform)
94
+ platform == :android
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,289 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ CORDOVA_IOS_RELEASE_BUILD_PATH = :CORDOVA_IOS_RELEASE_BUILD_PATH
5
+ CORDOVA_ANDROID_RELEASE_BUILD_PATH = :CORDOVA_ANDROID_RELEASE_BUILD_PATH
6
+ CORDOVA_PWA_RELEASE_BUILD_PATH = :CORDOVA_PWA_RELEASE_BUILD_PATH
7
+ end
8
+
9
+ class FivIonicAction < Action
10
+
11
+ ANDROID_ARGS_MAP = {
12
+ keystore_path: 'keystore',
13
+ keystore_password: 'storePassword',
14
+ key_password: 'password',
15
+ keystore_alias: 'alias',
16
+ }
17
+
18
+ IOS_ARGS_MAP = {
19
+ type: 'packageType',
20
+ team_id: 'developmentTeam',
21
+ provisioning_profile: 'provisioningProfile'
22
+ }
23
+
24
+ PWA_ARGS_MAP = {
25
+
26
+ }
27
+
28
+ # do rewriting and copying of action params
29
+ def self.get_platform_args(params, args_map)
30
+ platform_args = []
31
+ args_map.each do |action_key, cli_param|
32
+ param_value = params[action_key]
33
+ unless param_value.to_s.empty?
34
+ platform_args << "--#{cli_param}=#{Shellwords.escape(param_value)}"
35
+ end
36
+ end
37
+
38
+ return platform_args.join(' ')
39
+ end
40
+
41
+ # map action params to the cli param they will be used for
42
+
43
+ def self.get_android_args(params)
44
+ # TODO document magic in README
45
+ if params[:key_password].empty?
46
+ params[:key_password] = params[:keystore_password]
47
+ end
48
+
49
+ return self.get_platform_args(params, ANDROID_ARGS_MAP)
50
+ end
51
+
52
+ def self.get_ios_args(params)
53
+ app_identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
54
+
55
+ if params[:provisioning_profile].empty?
56
+ # If `match` or `sigh` were used before this, use the certificates returned from there
57
+ params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub('-', '')}"]
58
+ end
59
+
60
+ if params[:type] == 'adhoc'
61
+ params[:type] = 'ad-hoc'
62
+ end
63
+ if params[:type] == 'appstore'
64
+ params[:type] = 'app-store'
65
+ end
66
+
67
+ return self.get_platform_args(params, IOS_ARGS_MAP)
68
+ end
69
+
70
+ def self.get_pwa_args(params)
71
+ return self.get_platform_args(params, PWA_ARGS_MAP)
72
+ end
73
+
74
+ # add cordova platform if missing (run #1)
75
+ def self.check_and_add_platform(platform)
76
+ if platform && !File.directory?("./platforms/#{platform}")
77
+ sh "ionic cordova platform add #{platform}"
78
+ end
79
+ end
80
+
81
+ # app_name
82
+ def self.get_app_name
83
+ config = REXML::Document.new(File.open('config.xml'))
84
+ return config.elements['widget'].elements['name'].first.value # TODO: Simplify!? (Check logic in cordova)
85
+ end
86
+
87
+ # actual building! (run #2)
88
+ def self.build(params)
89
+ args = [params[:release] ? '--release' : '--debug']
90
+ args << '--prod' if params[:prod]
91
+ android_args = self.get_android_args(params) if params[:platform].to_s == 'android'
92
+ ios_args = self.get_ios_args(params) if params[:platform].to_s == 'ios'
93
+ pwa_args = self.get_pwa_args(params) if params[:platform].to_s == 'browser'
94
+
95
+ if params[:cordova_prepare]
96
+ # TODO: Remove params not allowed/used for `prepare`
97
+ sh "ionic cordova prepare #{params[:platform]} #{args.join(' ')}"
98
+ end
99
+
100
+
101
+ if params[:platform].to_s == 'ios'
102
+ sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- #{ios_args}"
103
+ elsif params[:platform].to_s == 'android'
104
+ sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- -- #{android_args}"
105
+ elsif params[:platform].to_s == 'browser'
106
+ sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- -- #{pwa_args}"
107
+ end
108
+ end
109
+
110
+ # export build paths (run #3)
111
+ def self.set_build_paths(is_release)
112
+ app_name = self.get_app_name
113
+ build_type = is_release ? 'release' : 'debug'
114
+
115
+ ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'] = "./platforms/android/build/outputs/apk/android-#{build_type}.apk"
116
+ ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'] = "./platforms/ios/build/device/#{app_name}.ipa"
117
+ ENV['CORDOVA_PWA_RELEASE_BUILD_PATH'] = "./www"
118
+
119
+ # TODO: https://github.com/bamlab/fastlane-plugin-cordova/issues/7
120
+ end
121
+
122
+ def self.run(params)
123
+ if params[:fresh]
124
+ Fastlane::Actions::FivCleanInstallAction.run(params)
125
+ end
126
+ self.check_and_add_platform(params[:platform])
127
+ self.build(params)
128
+ self.set_build_paths(params[:release])
129
+ end
130
+
131
+ #####################################################
132
+ # @!group Documentation
133
+ #####################################################
134
+
135
+ def self.description
136
+ "Build your Ionic app"
137
+ end
138
+
139
+ def self.details
140
+ "Easily integrate your Ionic build into a Fastlane setup"
141
+ end
142
+
143
+ def self.available_options
144
+ [
145
+ FastlaneCore::ConfigItem.new(
146
+ key: :platform,
147
+ env_name: "CORDOVA_PLATFORM",
148
+ description: "Platform to build on. Can be android, ios or browser",
149
+ is_string: true,
150
+ default_value: '',
151
+ verify_block: proc do |value|
152
+ UI.user_error!("Platform should be either android or ios") unless ['', 'android', 'ios', 'browser'].include? value
153
+ end
154
+ ),
155
+ FastlaneCore::ConfigItem.new(
156
+ key: :release,
157
+ env_name: "CORDOVA_RELEASE",
158
+ description: "Build for release if true, or for debug if false",
159
+ is_string: false,
160
+ default_value: true,
161
+ verify_block: proc do |value|
162
+ UI.user_error!("Release should be boolean") unless [false, true].include? value
163
+ end
164
+ ),
165
+ FastlaneCore::ConfigItem.new(
166
+ key: :prod,
167
+ env_name: "IONIC_PROD",
168
+ description: "Build for production",
169
+ is_string: false,
170
+ default_value: false,
171
+ verify_block: proc do |value|
172
+ UI.user_error!("Prod should be boolean") unless [false, true].include? value
173
+ end
174
+ ),
175
+ FastlaneCore::ConfigItem.new(
176
+ key: :type,
177
+ env_name: "CORDOVA_IOS_PACKAGE_TYPE",
178
+ description: "This will determine what type of build is generated by Xcode. Valid options are development, enterprise, adhoc, and appstore",
179
+ is_string: true,
180
+ default_value: 'appstore',
181
+ verify_block: proc do |value|
182
+ UI.user_error!("Valid options are development, enterprise, adhoc, and appstore.") unless ['development', 'enterprise', 'adhoc', 'appstore', 'ad-hoc', 'app-store'].include? value
183
+ end
184
+ ),
185
+ FastlaneCore::ConfigItem.new(
186
+ key: :team_id,
187
+ env_name: "CORDOVA_IOS_TEAM_ID",
188
+ description: "The development team (Team ID) to use for code signing",
189
+ is_string: true,
190
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id)
191
+ ),
192
+ FastlaneCore::ConfigItem.new(
193
+ key: :provisioning_profile,
194
+ env_name: "CORDOVA_IOS_PROVISIONING_PROFILE",
195
+ description: "GUID of the provisioning profile to be used for signing",
196
+ is_string: true,
197
+ default_value: ''
198
+ ),
199
+ FastlaneCore::ConfigItem.new(
200
+ key: :keystore_path,
201
+ env_name: "CORDOVA_ANDROID_KEYSTORE_PATH",
202
+ description: "Path to the Keystore for Android",
203
+ is_string: true,
204
+ default_value: ''
205
+ ),
206
+ FastlaneCore::ConfigItem.new(
207
+ key: :keystore_password,
208
+ env_name: "CORDOVA_ANDROID_KEYSTORE_PASSWORD",
209
+ description: "Android Keystore password",
210
+ is_string: true,
211
+ default_value: ''
212
+ ),
213
+ FastlaneCore::ConfigItem.new(
214
+ key: :key_password,
215
+ env_name: "CORDOVA_ANDROID_KEY_PASSWORD",
216
+ description: "Android Key password (default is keystore password)",
217
+ is_string: true,
218
+ default_value: ''
219
+ ),
220
+ FastlaneCore::ConfigItem.new(
221
+ key: :keystore_alias,
222
+ env_name: "CORDOVA_ANDROID_KEYSTORE_ALIAS",
223
+ description: "Android Keystore alias",
224
+ is_string: true,
225
+ default_value: ''
226
+ ),
227
+ FastlaneCore::ConfigItem.new(
228
+ key: :cordova_prepare,
229
+ env_name: "CORDOVA_PREPARE",
230
+ description: "Specifies whether to run `ionic cordova prepare` before building",
231
+ default_value: true,
232
+ is_string: false
233
+ ),
234
+ FastlaneCore::ConfigItem.new(
235
+ key: :fresh,
236
+ env_name: "BUILD_FRESH",
237
+ description: "Clean install packages, plugins and platform",
238
+ default_value: false,
239
+ is_string: false
240
+ ),
241
+ FastlaneCore::ConfigItem.new(
242
+ key: :plugins,
243
+ env_name: "REFRESH_PLUGINS",
244
+ description: "also refresh plugins",
245
+ default_value: false,
246
+ is_string: false
247
+ ),
248
+ FastlaneCore::ConfigItem.new(
249
+ key: :package_manager,
250
+ env_name: "PACKAGE_MANAGER",
251
+ description: "What package manager to use to install dependencies: e.g. yarn | npm",
252
+ is_string: true,
253
+ default_value: 'npm',
254
+ verify_block: proc do |value|
255
+ UI.user_error!("Platform should be either android, ios or browser") unless ['', 'yarn', 'npm'].include? value
256
+ end
257
+ ),
258
+ ]
259
+ end
260
+
261
+ def self.output
262
+ [
263
+ ['CORDOVA_ANDROID_RELEASE_BUILD_PATH', 'Path to the signed release APK if it was generated'],
264
+ ['CORDOVA_IOS_RELEASE_BUILD_PATH', 'Path to the signed release IPA if it was generated']
265
+ ]
266
+ end
267
+
268
+ def self.authors
269
+ ['fivethree']
270
+ end
271
+
272
+ def self.is_supported?(platform)
273
+ true
274
+ end
275
+
276
+ def self.example_code
277
+ [
278
+ "ionic(
279
+ platform: 'ios'
280
+ )"
281
+ ]
282
+ end
283
+
284
+ def self.category
285
+ :building
286
+ end
287
+ end
288
+ end
289
+ end
@@ -0,0 +1,109 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ CORDOVA_IOS_RELEASE_BUILD_PATH = :CORDOVA_IOS_RELEASE_BUILD_PATH
5
+ CORDOVA_ANDROID_RELEASE_BUILD_PATH = :CORDOVA_ANDROID_RELEASE_BUILD_PATH
6
+ end
7
+
8
+ class FivSignAndroidAction < Action
9
+ def self.run(params)
10
+
11
+
12
+ keystore_path = Fastlane::Actions::FivAndroidKeystoreAction.run(params)
13
+
14
+ keychain_entry = CredentialsManager::AccountManager.new(user: "#{params[:keystore_name]}_android_keystore_storepass")
15
+ keystore_storepass = keychain_entry.password
16
+
17
+ keychain_entry = CredentialsManager::AccountManager.new(user: "#{params[:keystore_name]}_android_keystore_keypass")
18
+ keystore_keypass = keychain_entry.password
19
+
20
+ puts "Silent execution of jarsigner because we don't want to print passwords. You can delete the password if they are wrong stored in the keychain: 'fastlane fastlane-credentials remove --username android_keystore_storepass' and 'fastlane fastlane-credentials remove --username android_keystore_keypass'"
21
+ sign = "jarsigner -tsa http://timestamp.digicert.com -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore #{keystore_path} -storepass #{keystore_storepass} -keypass #{keystore_keypass} ./platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk fivethree"
22
+ path = "./platforms/android/app/build/outputs/apk/release/app-release-#{params[:version]}-#{params[:build_no]}.apk"
23
+ zipalign = "$ANDROID_SDK/build-tools/$ANDROID_BUILD_TOOL_VERSION/zipalign -v 4 \"./platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk\" \"#{path}\""
24
+ self.run_silent(sign)
25
+ self.run_silent(zipalign)
26
+
27
+ return path
28
+
29
+ end
30
+
31
+ #####################################################
32
+ # @!group Documentation
33
+ #####################################################
34
+
35
+ def self.description
36
+ "A short description with <= 80 characters of what this action does"
37
+ end
38
+ def self.run_silent(command)
39
+ Fastlane::Actions::sh(command, log: false)
40
+ end
41
+
42
+
43
+ def self.details
44
+ # Optional:
45
+ # this is your chance to provide a more detailed description of this action
46
+ "You can use this action to do cool things..."
47
+ end
48
+
49
+ def self.available_options
50
+ # Define all options your action supports.
51
+
52
+ # Below a few examples
53
+ [
54
+ FastlaneCore::ConfigItem.new(key: :output_directory,
55
+ env_name: "ANDROID_KEYSTORE_OUTPUT_DIRECTORY",
56
+ description: "",
57
+ is_string: true,
58
+ optional: false,
59
+ default_value: File.absolute_path(File.join(Dir.pwd, ".android_signing"))),
60
+ FastlaneCore::ConfigItem.new(key: :keystore_name,
61
+ env_name: "ANDROID_KEYSTORE_KEYSTORE_NAME",
62
+ description: "",
63
+ is_string: true,
64
+ optional: false),
65
+ FastlaneCore::ConfigItem.new(key: :alias,
66
+ env_name: "ANDROID_KEYSTORE_KEYSTORE_ALIAS",
67
+ description: "",
68
+ is_string: true,
69
+ optional: false),
70
+ FastlaneCore::ConfigItem.new(
71
+ key: :version,
72
+ env_name: "CURRENT_BUILD_VERSION",
73
+ description: "current build version from config.xml",
74
+ is_string: true,
75
+ default_value: ''
76
+ ),
77
+ FastlaneCore::ConfigItem.new(
78
+ key: :build_no,
79
+ env_name: "CURRENT_BUILD_NUMBER",
80
+ description: "current build number from config.xml",
81
+ is_string: true,
82
+ default_value: ''
83
+ )
84
+ ]
85
+ end
86
+
87
+ def self.output
88
+ # Define the shared values you are going to provide
89
+ # Example
90
+ [
91
+ ['FIV_BUILD_IONIC_ANDROID_CUSTOM_VALUE', 'A description of what this value contains']
92
+ ]
93
+ end
94
+
95
+ def self.return_value
96
+ # If your method provides a return value, you can describe here what it does
97
+ end
98
+
99
+ def self.authors
100
+ # So no one will ever forget your contribution to fastlane :) You are awesome btw!
101
+ ["Your GitHub/Twitter Name"]
102
+ end
103
+
104
+ def self.is_supported?(platform)
105
+ platform == :android
106
+ end
107
+ end
108
+ end
109
+ end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module FivethreeIonic
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-fivethree_ionic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Stammerjohann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-30 00:00:00.000000000 Z
11
+ date: 2018-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -146,9 +146,13 @@ files:
146
146
  - README.md
147
147
  - lib/fastlane/plugin/fivethree_ionic.rb
148
148
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_add_transparent_statusbar.rb
149
+ - lib/fastlane/plugin/fivethree_ionic/actions/fiv_android_keystore_action.rb
149
150
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_build_ionic_android.rb
150
151
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_bump_version.rb
152
+ - lib/fastlane/plugin/fivethree_ionic/actions/fiv_clean_install.rb
151
153
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_increment_build_no.rb
154
+ - lib/fastlane/plugin/fivethree_ionic/actions/fiv_ionic.rb
155
+ - lib/fastlane/plugin/fivethree_ionic/actions/fiv_sign_android.rb
152
156
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_update_version.rb
153
157
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_update_version_and_build_no.rb
154
158
  - lib/fastlane/plugin/fivethree_ionic/actions/fiv_version.rb