fastlane-plugin-ionic_capacitor 0.1.2 → 0.4.0

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: 79f5e55924e166fc59299744217de776246346c963cc2ed29e74272a20793e03
4
- data.tar.gz: 2920e63e4bda5f609be942fcf9b9323e9349df780526c0ceb701fd69a5d725c3
3
+ metadata.gz: 96e8bc700b698dcbdc252e96e6df05c79440eb267ce640e3824efd4ab33b6da1
4
+ data.tar.gz: 19c45517d295414d9fce86b95ce00491471cb55c40629cd5085443f954294428
5
5
  SHA512:
6
- metadata.gz: aff6918c8f711825d2759f88fd2a86af4b79c6bf1ec97784b9bc8cad6fb32b913f67907ca65830dbb02a204a2f31416abfc6cebdd9fa080f8493349a02dd5388
7
- data.tar.gz: 0af50242e7671616737ab8a42b97fb2f009964aa0d8b959b29b7fb2f761c29201c54e4b666e0162c3471a6de406fca0ae01a3bc0b50233b8403392484455b9d7
6
+ metadata.gz: d95d5443aac7be483c8e7b85eb34f704a8a9842723951de719cda984f6f10889fea9995be41c2ec8fffae8c949a6132ebf4a52a978ac74ae0fd12b26460f3753
7
+ data.tar.gz: a6da0ee24149512a559f23541b435cadc1c0e5e2f8c5c0f477b24fcf6f32b9e967751d247dacd7f71aa3603d9e5baa3526bae6de27d8db7ee1d210178a705186
data/LICENSE CHANGED
@@ -1,6 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2024 ThatzOkay <noduhgamingxd@gmail.com>
3
+ Copyright (c) 2017 Jan Piotrowski <piotrowski@gmail.com>
4
+ Copyright (c) 2016 Almouro <contact@almouro.com>
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,26 +1,125 @@
1
- # ionic_capacitor plugin
1
+ # _fastlane_ Plugin for Ionic CLI
2
2
 
3
- [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-ionic_capacitor)
3
+ [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-ionic) [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/ionic-zone/fastlane-plugin-ionic/blob/master/LICENSE)
4
+ [![Gem](https://img.shields.io/gem/v/fastlane-plugin-ionic.svg?style=flat)](http://rubygems.org/gems/fastlane-plugin-ionic)
5
+
6
+ This _fastlane_ plugin helps you build your **Ionic Capacitor** project via the [`ionic` CLI](https://ionicframework.com/docs/cli/).
7
+
8
+ It is based on [fastlane-plugin-cordova](https://github.com/bamlab/fastlane-plugin-cordova) (where it borrows a lot of its code. Thanks!).
9
+ Modifed to work with capacitor
4
10
 
5
11
  ## Getting Started
6
12
 
7
- This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-ionic_capacitor`, add it to your project by running:
13
+ This project is a [fastlane](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-ionic`, add it to your project by running:
8
14
 
9
15
  ```bash
10
- fastlane add_plugin ionic_capacitor
16
+ fastlane add_plugin ionic
17
+ ```
18
+
19
+ ## Actions
20
+
21
+ ### `ionic`
22
+
23
+ Runs `ionic capacitor build` (technically: `ionic capacitor prepare` first, then `ionic capacitor compile` [which is the same as what `build` does internally]) to build your Ionic project.
24
+
25
+ ```ruby
26
+ ionic(
27
+ platform: 'ios', # Build your iOS Ionic project
28
+ )
29
+ ionic(
30
+ platform: 'android', # Build your Android Ionic project
31
+ release: false # Build a "Debug" app
32
+ )
33
+ ```
34
+
35
+
36
+ ## Examples
37
+
38
+ Lanes using these actions could look like this:
39
+
40
+ ```ruby
41
+ platform :ios do
42
+ desc "Deploy ios app on the appstore"
43
+
44
+ lane :deploy do
45
+ match(type: "appstore")
46
+ ionic(platform: 'ios')
47
+ deliver(ipa: ENV['CAPACITOR_IOS_RELEASE_BUILD_PATH'])
48
+ end
49
+ end
50
+
51
+ platform :android do
52
+ desc "Deploy android app on play store"
53
+
54
+ lane :deploy do
55
+ ionic(
56
+ platform: 'android',
57
+ keystore_path: './prod.keystore',
58
+ keystore_alias: 'prod',
59
+ keystore_password: 'password'
60
+ )
61
+ supply(apk: ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH'])
62
+ end
63
+ end
64
+ ```
65
+
66
+ with an `Appfile` such as
67
+
68
+ ```ruby
69
+ app_identifier "com.awesome.app"
70
+ apple_id "apple@id.com"
71
+ team_id "28323HT"
11
72
  ```
12
73
 
13
- ## About ionic_capacitor
74
+ ---
14
75
 
15
- Build ionic capacitor apps
76
+ The `ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH']` is only valid for `capacitor-android` 7.x and newer (which you should be using anyway!).
16
77
 
17
- **Note to author:** Add a more detailed description about this plugin here. If your plugin contains multiple actions, make sure to mention them here.
78
+ If you're using **Crosswalk** (which oyu should not really be doing anymore), replace `supply(apk: ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH'])` (and equivalents) by:
18
79
 
19
- ## Example
80
+ ```ruby
81
+ supply(
82
+ apk_paths: [
83
+ 'platforms/android/build/outputs/apk/android-armv7-release.apk',
84
+ 'platforms/android/build/outputs/apk/android-x86-release.apk'
85
+ ],
86
+ )
87
+ ```
88
+
89
+ ## Plugin API
90
+
91
+ To check what's available in the plugin, install it in a project and run at the root of the project:
92
+
93
+ ```
94
+ fastlane actions ionic
95
+ ```
20
96
 
21
- Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
97
+ Which will produce:
98
+
99
+ | Key | Description | Env Var | Default |
100
+ |-----|-------------|---------|---------|
101
+ | **platform** | Platform to build on. <br>Should be either android or ios | CAPACITOR_PLATFORM | |
102
+ | **release** | Build for release if true,<br>or for debug if false | CAPACITOR_RELEASE | *true* |
103
+ | **device** | Build for device | CAPACITOR_DEVICE | *true* |
104
+ | **prod** | Build for production | IONIC_PROD | *false* |
105
+ | **type** | This will determine what type of build is generated by Xcode. <br>Valid options are development, enterprise, adhoc, and appstore| CAPACITOR_IOS_PACKAGE_TYPE | appstore |
106
+ | **verbose** | Pipe out more verbose output to the shell | CAPACITOR_VERBOSE | false |
107
+ | **team_id** | The development team (Team ID) to use for code signing | CAPACITOR_IOS_TEAM_ID | *28323HT* |
108
+ | **provisioning_profile** | GUID of the provisioning profile to be used for signing | CAPACITOR_IOS_PROVISIONING_PROFILE | |
109
+ | **android_package_type** | This will determine what type of Android build is generated. Valid options are `apk` and `bundle` | CAPACITOR_ANDROID_PACKAGE_TYPE | apk |
110
+ | **keystore_path** | Path to the Keystore for Android | CAPACITOR_ANDROID_KEYSTORE_PATH | |
111
+ | **keystore_password** | Android Keystore password | CAPACITOR_ANDROID_KEYSTORE_PASSWORD | |
112
+ | **key_password** | Android Key password (default is keystore password) | CAPACITOR_ANDROID_KEY_PASSWORD | |
113
+ | **keystore_alias** | Android Keystore alias | CAPACITOR_ANDROID_KEYSTORE_ALIAS | |
114
+ | **build_number** | Sets the build number for iOS and version code for Android | CAPACITOR_BUILD_NUMBER | |
115
+ | **browserify** | Specifies whether to browserify build or not | CAPACITOR_BROWSERIFY | *false* |
116
+ | **capacitor_prepare** | Specifies whether to run `ionic capacitor prepare` before building | CAPACITOR_PREPARE | *true* |
117
+ | **min_sdk_version** | Overrides the value of minSdkVersion set in `AndroidManifest.xml` | CAPACITOR_ANDROID_MIN_SDK_VERSION | '' |
118
+ | **capacitor_no_fetch** | Specifies whether to run `ionic capacitor platform add` with `--nofetch` parameter | CAPACITOR_NO_FETCH | *false* |
119
+ | **capacitor_no_resources** | Specifies whether to run `ionic capacitor platform add` with `--no-resources` parameter | CAPACITOR_NO_RESOURCES | *false* |
120
+ | **build_flag** | An array of Xcode buildFlag. Will be appended on compile command. | CAPACITOR_IOS_BUILD_FLAG | [] |
121
+ | **capacitor_build_config_file** | Call `ionic capacitor compile` with `--buildConfig=<ConfigFile>` to specify build config file path | CAPACITOR_BUILD_CONFIG_FILE | |
22
122
 
23
- **Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
24
123
 
25
124
  ## Run tests for this plugin
26
125
 
@@ -41,12 +140,12 @@ For any other issues and feedback about this plugin, please submit it to this re
41
140
 
42
141
  ## Troubleshooting
43
142
 
44
- If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
143
+ If you have trouble using plugins, check out the [Plugins Troubleshooting](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/PluginsTroubleshooting.md) doc in the main `fastlane` repo.
45
144
 
46
- ## Using _fastlane_ Plugins
145
+ ## Using `fastlane` Plugins
47
146
 
48
- For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
147
+ For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Plugins.md).
49
148
 
50
- ## About _fastlane_
149
+ ## About `fastlane`
51
150
 
52
- _fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
151
+ `fastlane` is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
@@ -1,9 +1,11 @@
1
- require 'fastlane/action'
2
- require_relative '../helper/ionic_capacitor_helper'
3
-
4
1
  module Fastlane
5
2
  module Actions
6
- class IonicCapacitorAction < Action
3
+ module SharedValues
4
+ CAPACITOR_IOS_RELEASE_BUILD_PATH = :CAPACITOR_IOS_RELEASE_BUILD_PATH
5
+ CAPACITOR_ANDROID_RELEASE_BUILD_PATH = :CAPACITOR_ANDROID_RELEASE_BUILD_PATH
6
+ end
7
+
8
+ class IonicAction < Action
7
9
  # valid action params
8
10
 
9
11
  ANDROID_ARGS_MAP = {
@@ -13,7 +15,7 @@ module Fastlane
13
15
  keystore_alias: 'alias',
14
16
  build_number: 'versionCode',
15
17
  min_sdk_version: 'gradleArg=-PcdvMinSdkVersion',
16
- capacitor_no_fetch: 'capacitorNoFetch',
18
+ capacitor_no_fetch: 'capacitorNoFetch',
17
19
  android_package_type: 'packageType'
18
20
  }
19
21
 
@@ -63,14 +65,14 @@ module Fastlane
63
65
 
64
66
  if params[:provisioning_profile].empty?
65
67
  # If `match` or `sigh` were used before this, use the certificates returned from there
66
- params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub('-', '')}"]
68
+ params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub('-', '')}" || ""]
67
69
  end
68
70
 
69
71
  if params[:type] == 'adhoc'
70
72
  params[:type] = 'ad-hoc'
71
73
  end
72
74
  if params[:type] == 'appstore'
73
- params[:type] = 'app-store'
75
+ params[:type] = 'app-store-connect'
74
76
  end
75
77
 
76
78
  return self.get_platform_args(params, IOS_ARGS_MAP)
@@ -101,7 +103,7 @@ module Fastlane
101
103
  args << '--browserify' if params[:browserify]
102
104
  args << '--verbose' if params[:verbose]
103
105
 
104
- if !params[:capacitor_build_config_file].to_s.empty?
106
+ unless params[:capacitor_build_config_file].to_s.empty?
105
107
  args << "--buildConfig=#{Shellwords.escape(params[:capacitor_build_config_file])}"
106
108
  end
107
109
 
@@ -120,35 +122,75 @@ module Fastlane
120
122
  )
121
123
  end
122
124
 
123
- is_windows = (ENV['OS'] == 'Windows_NT')
124
- if is_windows
125
- output = `powershell -Command "(gcm bunx).Path"`
126
- if !output.empty?
127
- if `bun pm ls`.include?('@capacitor/assets')
128
- sh "bunx capacitor-assets generate"
129
- end
130
- else
131
- if `npm list @capacitor/assets`.include?('@capacitor/assets')
132
- sh "npx capacitor-assets generate"
133
- end
134
- end
135
- else
136
- if !`which bunx`.empty?
137
- if `bun pm ls`.include?('@capacitor/assets')
138
- sh "bunx capacitor-assets generate"
125
+ if params[:skip_asset_gen] == false
126
+ is_windows = (ENV['OS'] == 'Windows_NT')
127
+ if is_windows
128
+ output = `powershell -Command "(gcm bunx).Path"`
129
+ if !output.empty?
130
+ if `bun pm ls`.include?('@capacitor/assets')
131
+ sh "bunx capacitor-assets generate"
132
+ end
133
+ else
134
+ if `npm list @capacitor/assets`.include?('@capacitor/assets')
135
+ sh "npx capacitor-assets generate"
136
+ end
139
137
  end
140
138
  else
141
- if `npm list @capacitor/assets`.include?('@capacitor/assets')
142
- sh "npx capacitor-assets generate"
139
+ if !`which bunx`.empty?
140
+ if `bun pm ls`.include?('@capacitor/assets')
141
+ sh "bunx capacitor-assets generate"
142
+ end
143
+ else
144
+ if `npm list @capacitor/assets`.include?('@capacitor/assets')
145
+ sh "npx capacitor-assets generate"
146
+ end
143
147
  end
144
148
  end
145
149
  end
146
150
 
151
+ prod_flag = params[:release] ? '--prod' : ''
152
+ sh "ionic capacitor build #{params[:platform]} --no-open #{prod_flag}"
153
+
154
+ configuration = params[:release] ? 'release' : 'debug'
147
155
  if params[:platform].to_s == 'ios'
148
- sh "ionic capacitor build #{params[:platform]} --no-open --no-interactive #{args.join(' ')} -- #{ios_args}"
149
- sh "xcodebuild -configuration debug -workspace ios/*.xcworkspace -scheme #{params[:scheme]} build"
156
+ latest_sdk = `xcodebuild -showsdks`.lines
157
+ .select { |line| line.include?('iphoneos') }
158
+ .last
159
+ &.split
160
+ &.last
161
+
162
+ workspace_or_project = File.exist?(params[:workspace]) ? "-workspace #{params[:workspace]}" : "-project #{params[:project]}"
163
+
164
+ cmd = [
165
+ '/usr/bin/xcodebuild',
166
+ "-sdk #{latest_sdk}",
167
+ "-configuration #{configuration}",
168
+ "#{workspace_or_project}",
169
+ "-scheme #{params[:scheme]}",
170
+ 'archive',
171
+ "-archivePath ./#{params[:scheme]}",
172
+ 'CODE_SIGN_STYLE=Automatic',
173
+ "DEVELOPMENT_TEAM=#{params[:team_id]}"
174
+ ].join(' ')
175
+
176
+ cmd += ' | xcpretty -r junit --no-color' if `which xcpretty`.strip != ''
177
+
178
+ sh cmd
179
+ sh '/usr/libexec/PlistBuddy -c Clear _XcodeTaskExportOptions.plist'
180
+ sh "/usr/libexec/PlistBuddy -c \"Add :teamID string #{params[:team_id]}\" _XcodeTaskExportOptions.plist"
181
+ sh "/usr/libexec/PlistBuddy -c \"Add :method string #{params[:type]}\" _XcodeTaskExportOptions.plist"
182
+
183
+ archive_cmd = [
184
+ '/usr/bin/xcodebuild',
185
+ '-exportArchive',
186
+ "-archivePath ./#{params[:scheme]}.xcarchive",
187
+ "-exportPath ./output/#{latest_sdk}/#{configuration}",
188
+ '-exportOptionsPlist _XcodeTaskExportOptions.plist'
189
+ ]
190
+ sh archive_cmd
191
+
150
192
  elsif params[:platform].to_s == 'android'
151
- sh "ionic capacitor build #{params[:platform]} --no-open --no-interactive #{args.join(' ')} -- -- #{android_args}"
193
+ sh "ionic capacitor build #{params[:platform]} --no-open #{prod_flag}"
152
194
  if params[:android_package_type] == 'bundle'
153
195
  if !params[:keystore_path].empty?
154
196
  sh "./android/gradlew --project-dir android app:bundleRelease -Pandroid.injected.signing.store.file=#{params[:keystore_path]} -Pandroid.injected.signing.store.password=#{params[:keystore_password]} -Pandroid.injected.signing.key.alias=#{params[:keystore_alias]} -Pandroid.injected.signing.key.password=#{params[:key_password]}"
@@ -166,9 +208,9 @@ module Fastlane
166
208
  end
167
209
 
168
210
  # export build paths (run step #3)
169
- def self.set_build_paths(params, is_release)
211
+ def self.set_build_paths(params, release)
170
212
  app_name = self.get_app_name
171
- build_type = is_release ? 'release' : 'debug'
213
+ build_type = release ? 'release' : 'debug'
172
214
 
173
215
  # Update the build path accordingly if Android is being
174
216
  # built as an Android Application Bundle.
@@ -179,12 +221,19 @@ module Fastlane
179
221
  is_signed = !params[:keystore_path].empty?
180
222
  signed = is_signed ? '' : '-unsigned'
181
223
 
182
- does_android_build_exist = File.exist?("./android/app/build/outputs/#{android_package_type}/#{build_type}/app-#{build_type}#{signed}#{android_package_extension}")
183
-
184
- file_name = does_android_build_exist ? "app-#{build_type}#{signed}#{android_package_extension}" : "app-#{build_type}#{android_package_extension}"
224
+ ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH'] = "./android/app/build/outputs/#{android_package_type}/#{build_type}/app-#{build_type}#{signed}#{android_package_extension}"
185
225
 
186
- ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH'] = "./android/app/build/outputs/#{android_package_type}/#{build_type}/#{file_name}"
187
- ENV['CAPACITOR_IOS_RELEASE_BUILD_PATH'] = "./ios/build/device/app.ipa"
226
+ configuration = params[:release] ? 'release' : 'debug'
227
+ if params[:platform].to_s == 'ios'
228
+ latest_sdk = `xcodebuild -showsdks`.lines
229
+ .select { |line| line.include?('iphoneos') }
230
+ .last
231
+ &.split
232
+ &.last
233
+ ENV['CAPACITOR_IOS_RELEASE_BUILD_PATH'] = "./output/#{latest_sdk}/#{configuration}/#{params[:scheme]}.ipa"
234
+ end
235
+ # TODO: https://github.com/bamlab/fastlane-plugin-cordova/issues/7
236
+ # TODO: Set env vars that gym and Co automatically use
188
237
  end
189
238
 
190
239
  def self.run(params)
@@ -193,21 +242,16 @@ module Fastlane
193
242
  self.set_build_paths(params, params[:release])
194
243
  end
195
244
 
196
- def self.description
197
- "Build your Ionic Capacitor apps"
198
- end
199
-
200
- def self.authors
201
- ["ThatzOkay"]
202
- end
245
+ #####################################################
246
+ # @!group Documentation
247
+ #####################################################
203
248
 
204
- def self.return_value
205
- # If your method provides a return value, you can describe here what it does
249
+ def self.description
250
+ "Build your Ionic app"
206
251
  end
207
252
 
208
253
  def self.details
209
- # Optional:
210
- "Easily build Ionic Capacitor apps using this plugin. Cordova not supported"
254
+ "Easily integrate your Ionic build into a Fastlane setup"
211
255
  end
212
256
 
213
257
  def self.available_options
@@ -252,13 +296,6 @@ module Fastlane
252
296
  UI.user_error!("Prod should be boolean") unless [false, true].include? value
253
297
  end
254
298
  ),
255
- FastlaneCore::ConfigItem.new(
256
- key: :scheme,
257
- env_name: "CAPACITOR_IOS_SCHEME",
258
- description: "The scheme to use when building the app",
259
- is_string: true,
260
- default_value: 'App'
261
- ),
262
299
  FastlaneCore::ConfigItem.new(
263
300
  key: :type,
264
301
  env_name: "CAPACITOR_IOS_PACKAGE_TYPE",
@@ -266,7 +303,7 @@ module Fastlane
266
303
  is_string: true,
267
304
  default_value: 'appstore',
268
305
  verify_block: proc do |value|
269
- UI.user_error!("Valid options are development, enterprise, adhoc, and appstore.") unless ['development', 'enterprise', 'adhoc', 'appstore', 'ad-hoc', 'app-store'].include? value
306
+ UI.user_error!("Valid options are development, enterprise, adhoc, and appstore.") unless ['development', 'enterprise', 'adhoc', 'appstore', 'ad-hoc', 'app-store', 'app-store-connect'].include? value
270
307
  end
271
308
  ),
272
309
  FastlaneCore::ConfigItem.new(
@@ -286,6 +323,27 @@ module Fastlane
286
323
  is_string: true,
287
324
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id)
288
325
  ),
326
+ FastlaneCore::ConfigItem.new(
327
+ key: :scheme,
328
+ env_name: "CAPACITOR_IOS_SCHEME",
329
+ description: "The Schema of the app seen as in xcode",
330
+ is_string: true,
331
+ default_value: 'App'
332
+ ),
333
+ FastlaneCore::ConfigItem.new(
334
+ key: :workspace,
335
+ env_name: "CAPACITOR_IOS_WORKSPACE",
336
+ description: "The xcode workspace file path",
337
+ is_string: true,
338
+ default_value: 'ios/App/App.xcworkspace'
339
+ ),
340
+ FastlaneCore::ConfigItem.new(
341
+ key: :project,
342
+ env_name: "CAPACITOR_IOS_PROJECT",
343
+ description: "The xcode project file path. If specified, this will be used instead of workspace or when no workspace is found",
344
+ is_string: true,
345
+ default_value: 'ios/App/App.xcodeproj'
346
+ ),
289
347
  FastlaneCore::ConfigItem.new(
290
348
  key: :provisioning_profile,
291
349
  env_name: "CAPACITOR_IOS_PROVISIONING_PROFILE",
@@ -387,17 +445,50 @@ module Fastlane
387
445
  is_string: true,
388
446
  optional: true,
389
447
  default_value: ''
448
+ ),
449
+ FastlaneCore::ConfigItem.new(
450
+ key: :skip_asset_gen,
451
+ env_name: "SKIP_ASSET_GEN",
452
+ description: "Skip generation of assets",
453
+ is_string: false,
454
+ optional: true,
455
+ default_value: false
390
456
  )
391
457
  ]
392
458
  end
393
459
 
460
+ def self.output
461
+ [
462
+ ['CAPACITOR_ANDROID_RELEASE_BUILD_PATH', 'Path to the signed release APK or AAB if it was generated'],
463
+ ['CAPACITOR_IOS_RELEASE_BUILD_PATH', 'Path to the signed release IPA if it was generated']
464
+ ]
465
+ end
466
+
467
+ def self.authors
468
+ ['ThatzOkay']
469
+ end
470
+
394
471
  def self.is_supported?(platform)
395
- # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
396
- # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
397
- #
398
- # [:ios, :mac, :android].include?(platform)
399
472
  true
400
473
  end
474
+
475
+ def self.example_code
476
+ [
477
+ "ionic(
478
+ platform: 'ios'
479
+ )",
480
+ "ionic(
481
+ platform: 'android',
482
+ keystore_path: './staging.keystore',
483
+ keystore_alias: 'alias_name',
484
+ keystore_password: 'store_password'
485
+ )"
486
+ ]
487
+ end
488
+
489
+ def self.category
490
+ :building
491
+ end
401
492
  end
402
493
  end
403
494
  end
@@ -0,0 +1,12 @@
1
+ module Fastlane
2
+ module Helper
3
+ class IonicHelper
4
+ # class methods that you define here become available in your action
5
+ # as `Helper::IonicHelper.your_method`
6
+ #
7
+ def self.show_message
8
+ UI.message("Hello from the ionic plugin helper!")
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Fastlane
2
+ module Ionic
3
+ VERSION = "0.4.0"
4
+ end
5
+ end
@@ -1,7 +1,7 @@
1
- require 'fastlane/plugin/ionic_capacitor/version'
1
+ require 'fastlane/plugin/ionic/version'
2
2
 
3
3
  module Fastlane
4
- module IonicCapacitor
4
+ module Ionic
5
5
  # Return all .rb files inside the "actions" and "helper" directory
6
6
  def self.all_classes
7
7
  Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
@@ -11,6 +11,6 @@ end
11
11
 
12
12
  # By default we want to import all available actions and helpers
13
13
  # A plugin can contain any number of actions and plugins
14
- Fastlane::IonicCapacitor.all_classes.each do |current|
14
+ Fastlane::Ionic.all_classes.each do |current|
15
15
  require current
16
16
  end
metadata CHANGED
@@ -1,16 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-ionic_capacitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ThatzOkay
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-06-27 00:00:00.000000000 Z
12
- dependencies: []
13
- description:
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: pry
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rspec
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubocop
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: fastlane
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.111.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.111.0
14
96
  email: noduhgamingxd@gmail.com
15
97
  executables: []
16
98
  extensions: []
@@ -18,16 +100,14 @@ extra_rdoc_files: []
18
100
  files:
19
101
  - LICENSE
20
102
  - README.md
21
- - lib/fastlane/plugin/ionic_capacitor.rb
22
- - lib/fastlane/plugin/ionic_capacitor/actions/ionic_capacitor_action.rb
23
- - lib/fastlane/plugin/ionic_capacitor/helper/ionic_capacitor_helper.rb
24
- - lib/fastlane/plugin/ionic_capacitor/version.rb
25
- homepage: https://github.com/ThatzOkay/fastlane-plugin-ionic_capacitor
103
+ - lib/fastlane/plugin/ionic.rb
104
+ - lib/fastlane/plugin/ionic/actions/ionic_action.rb
105
+ - lib/fastlane/plugin/ionic/helper/ionic_helper.rb
106
+ - lib/fastlane/plugin/ionic/version.rb
107
+ homepage: https://github.com/ThatzOkay/fastlane-plugin-ionic-capacitor
26
108
  licenses:
27
109
  - MIT
28
- metadata:
29
- rubygems_mfa_required: 'true'
30
- post_install_message:
110
+ metadata: {}
31
111
  rdoc_options: []
32
112
  require_paths:
33
113
  - lib
@@ -35,15 +115,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
35
115
  requirements:
36
116
  - - ">="
37
117
  - !ruby/object:Gem::Version
38
- version: '2.6'
118
+ version: '0'
39
119
  required_rubygems_version: !ruby/object:Gem::Requirement
40
120
  requirements:
41
121
  - - ">="
42
122
  - !ruby/object:Gem::Version
43
123
  version: '0'
44
124
  requirements: []
45
- rubygems_version: 3.5.11
46
- signing_key:
125
+ rubygems_version: 3.6.9
47
126
  specification_version: 4
48
- summary: Build ionic capacitor apps
127
+ summary: Build your Ionic app
49
128
  test_files: []
@@ -1,16 +0,0 @@
1
- require 'fastlane_core/ui/ui'
2
-
3
- module Fastlane
4
- UI = FastlaneCore::UI unless Fastlane.const_defined?(:UI)
5
-
6
- module Helper
7
- class IonicCapacitorHelper
8
- # class methods that you define here become available in your action
9
- # as `Helper::IonicCapacitorHelper.your_method`
10
- #
11
- def self.show_message
12
- UI.message("Hello from the ionic_capacitor plugin helper!")
13
- end
14
- end
15
- end
16
- end
@@ -1,5 +0,0 @@
1
- module Fastlane
2
- module IonicCapacitor
3
- VERSION = "0.1.2"
4
- end
5
- end