fastlane-plugin-ionic_capacitor 0.1.2 → 0.2.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 +4 -4
- data/LICENSE +2 -1
- data/README.md +114 -15
- data/lib/fastlane/plugin/{ionic_capacitor/actions/ionic_capacitor_action.rb → ionic/actions/ionic_action.rb} +138 -57
- data/lib/fastlane/plugin/ionic/helper/ionic_helper.rb +12 -0
- data/lib/fastlane/plugin/ionic/version.rb +5 -0
- data/lib/fastlane/plugin/{ionic_capacitor.rb → ionic.rb} +3 -3
- metadata +96 -17
- data/lib/fastlane/plugin/ionic_capacitor/helper/ionic_capacitor_helper.rb +0 -16
- data/lib/fastlane/plugin/ionic_capacitor/version.rb +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8b8ebaddafb33ad306b9335b1f455639f5328aa1bcce38e9e7278c2c32d34464
|
|
4
|
+
data.tar.gz: 2e8e8a9ed52f8b56af530c28aa2ca5822cae27d20cfa526335c683cf10912f60
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '0897af31b3b2a96a10b54c748030934cea5d90d7a9c0232c22e5f2cc4eb1e0f1db564c8095950f7ae645df2fe7e408c5a81df5975d6d5580db64b89be384b794'
|
|
7
|
+
data.tar.gz: ae9eddaa2100e89a26ff50fec641ec07e57006fd621e6da4c9341a04216289c9ab95ed53bbe5f2dd2f0983381e993eca569df6306eabcbb903bc0badcad80807
|
data/LICENSE
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
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
|
-
#
|
|
1
|
+
# _fastlane_ Plugin for Ionic CLI
|
|
2
2
|
|
|
3
|
-
[](https://rubygems.org/gems/fastlane-plugin-
|
|
3
|
+
[](https://rubygems.org/gems/fastlane-plugin-ionic) [](https://github.com/ionic-zone/fastlane-plugin-ionic/blob/master/LICENSE)
|
|
4
|
+
[](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 [
|
|
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
|
|
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
|
-
|
|
74
|
+
---
|
|
14
75
|
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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://
|
|
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
|
|
145
|
+
## Using `fastlane` Plugins
|
|
47
146
|
|
|
48
|
-
For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://
|
|
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
|
|
149
|
+
## About `fastlane`
|
|
51
150
|
|
|
52
|
-
|
|
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
|
-
|
|
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:
|
|
18
|
+
capacitor_no_fetch: 'capacitorNoFetch',
|
|
17
19
|
android_package_type: 'packageType'
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -63,7 +65,7 @@ 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'
|
|
@@ -101,7 +103,7 @@ module Fastlane
|
|
|
101
103
|
args << '--browserify' if params[:browserify]
|
|
102
104
|
args << '--verbose' if params[:verbose]
|
|
103
105
|
|
|
104
|
-
|
|
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,72 @@ module Fastlane
|
|
|
120
122
|
)
|
|
121
123
|
end
|
|
122
124
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
|
142
|
-
|
|
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
|
-
|
|
149
|
-
|
|
156
|
+
latest_sdk = `xcodebuild -showsdks`.lines
|
|
157
|
+
.select { |line| line.include?('iphoneos') }
|
|
158
|
+
.last
|
|
159
|
+
&.split
|
|
160
|
+
&.last
|
|
161
|
+
cmd = [
|
|
162
|
+
'/usr/bin/xcodebuild',
|
|
163
|
+
"-sdk #{latest_sdk}",
|
|
164
|
+
"-configuration #{configuration}",
|
|
165
|
+
"-workspace #{params[:workspace]}",
|
|
166
|
+
"-scheme #{params[:scheme]}",
|
|
167
|
+
'archive',
|
|
168
|
+
"-archivePath ./#{params[:scheme]}",
|
|
169
|
+
'CODE_SIGN_STYLE=Automatic',
|
|
170
|
+
"DEVELOPMENT_TEAM=#{params[:team_id]}"
|
|
171
|
+
].join(' ')
|
|
172
|
+
|
|
173
|
+
cmd += ' | xcpretty -r junit --no-color' if `which xcpretty`.strip != ''
|
|
174
|
+
|
|
175
|
+
sh cmd
|
|
176
|
+
sh '/usr/libexec/PlistBuddy -c Clear _XcodeTaskExportOptions.plist'
|
|
177
|
+
sh "/usr/libexec/PlistBuddy -c \"Add :teamID string #{params[:team_id]}\" _XcodeTaskExportOptions.plist"
|
|
178
|
+
sh "/usr/libexec/PlistBuddy -c \"Add :method string #{params[:type]}\" _XcodeTaskExportOptions.plist"
|
|
179
|
+
|
|
180
|
+
archive_cmd = [
|
|
181
|
+
'/usr/bin/xcodebuild',
|
|
182
|
+
'-exportArchive',
|
|
183
|
+
"-archivePath ./#{params[:scheme]}.xcarchive",
|
|
184
|
+
"-exportPath ./output/#{latest_sdk}/#{configuration}",
|
|
185
|
+
'-exportOptionsPlist _XcodeTaskExportOptions.plist'
|
|
186
|
+
]
|
|
187
|
+
sh archive_cmd
|
|
188
|
+
|
|
150
189
|
elsif params[:platform].to_s == 'android'
|
|
151
|
-
sh "ionic capacitor build #{params[:platform]} --no-open
|
|
190
|
+
sh "ionic capacitor build #{params[:platform]} --no-open #{prod_flag}"
|
|
152
191
|
if params[:android_package_type] == 'bundle'
|
|
153
192
|
if !params[:keystore_path].empty?
|
|
154
193
|
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 +205,9 @@ module Fastlane
|
|
|
166
205
|
end
|
|
167
206
|
|
|
168
207
|
# export build paths (run step #3)
|
|
169
|
-
def self.set_build_paths(params,
|
|
208
|
+
def self.set_build_paths(params, release)
|
|
170
209
|
app_name = self.get_app_name
|
|
171
|
-
build_type =
|
|
210
|
+
build_type = release ? 'release' : 'debug'
|
|
172
211
|
|
|
173
212
|
# Update the build path accordingly if Android is being
|
|
174
213
|
# built as an Android Application Bundle.
|
|
@@ -179,12 +218,19 @@ module Fastlane
|
|
|
179
218
|
is_signed = !params[:keystore_path].empty?
|
|
180
219
|
signed = is_signed ? '' : '-unsigned'
|
|
181
220
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
file_name = does_android_build_exist ? "app-#{build_type}#{signed}#{android_package_extension}" : "app-#{build_type}#{android_package_extension}"
|
|
221
|
+
ENV['CAPACITOR_ANDROID_RELEASE_BUILD_PATH'] = "./android/app/build/outputs/#{android_package_type}/#{build_type}/app-#{build_type}#{signed}#{android_package_extension}"
|
|
185
222
|
|
|
186
|
-
|
|
187
|
-
|
|
223
|
+
configuration = params[:release] ? 'release' : 'debug'
|
|
224
|
+
if params[:platform].to_s == 'ios'
|
|
225
|
+
latest_sdk = `xcodebuild -showsdks`.lines
|
|
226
|
+
.select { |line| line.include?('iphoneos') }
|
|
227
|
+
.last
|
|
228
|
+
&.split
|
|
229
|
+
&.last
|
|
230
|
+
ENV['CAPACITOR_IOS_RELEASE_BUILD_PATH'] = "./output/#{latest_sdk}/#{configuration}/#{params[:scheme]}.ipa"
|
|
231
|
+
end
|
|
232
|
+
# TODO: https://github.com/bamlab/fastlane-plugin-cordova/issues/7
|
|
233
|
+
# TODO: Set env vars that gym and Co automatically use
|
|
188
234
|
end
|
|
189
235
|
|
|
190
236
|
def self.run(params)
|
|
@@ -193,21 +239,16 @@ module Fastlane
|
|
|
193
239
|
self.set_build_paths(params, params[:release])
|
|
194
240
|
end
|
|
195
241
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
def self.authors
|
|
201
|
-
["ThatzOkay"]
|
|
202
|
-
end
|
|
242
|
+
#####################################################
|
|
243
|
+
# @!group Documentation
|
|
244
|
+
#####################################################
|
|
203
245
|
|
|
204
|
-
def self.
|
|
205
|
-
|
|
246
|
+
def self.description
|
|
247
|
+
"Build your Ionic app"
|
|
206
248
|
end
|
|
207
249
|
|
|
208
250
|
def self.details
|
|
209
|
-
|
|
210
|
-
"Easily build Ionic Capacitor apps using this plugin. Cordova not supported"
|
|
251
|
+
"Easily integrate your Ionic build into a Fastlane setup"
|
|
211
252
|
end
|
|
212
253
|
|
|
213
254
|
def self.available_options
|
|
@@ -252,13 +293,6 @@ module Fastlane
|
|
|
252
293
|
UI.user_error!("Prod should be boolean") unless [false, true].include? value
|
|
253
294
|
end
|
|
254
295
|
),
|
|
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
296
|
FastlaneCore::ConfigItem.new(
|
|
263
297
|
key: :type,
|
|
264
298
|
env_name: "CAPACITOR_IOS_PACKAGE_TYPE",
|
|
@@ -286,6 +320,20 @@ module Fastlane
|
|
|
286
320
|
is_string: true,
|
|
287
321
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id)
|
|
288
322
|
),
|
|
323
|
+
FastlaneCore::ConfigItem.new(
|
|
324
|
+
key: :scheme,
|
|
325
|
+
env_name: "CAPACITOR_IOS_SCHEME",
|
|
326
|
+
description: "The Schema of the app seen as in xcode",
|
|
327
|
+
is_string: true,
|
|
328
|
+
default_value: 'App'
|
|
329
|
+
),
|
|
330
|
+
FastlaneCore::ConfigItem.new(
|
|
331
|
+
key: :workspace,
|
|
332
|
+
env_name: "CAPACITOR_IOS_WORKSPACE",
|
|
333
|
+
description: "The xcode workspace file path",
|
|
334
|
+
is_string: true,
|
|
335
|
+
default_value: 'ios/App/App.xcworkspace'
|
|
336
|
+
),
|
|
289
337
|
FastlaneCore::ConfigItem.new(
|
|
290
338
|
key: :provisioning_profile,
|
|
291
339
|
env_name: "CAPACITOR_IOS_PROVISIONING_PROFILE",
|
|
@@ -387,17 +435,50 @@ module Fastlane
|
|
|
387
435
|
is_string: true,
|
|
388
436
|
optional: true,
|
|
389
437
|
default_value: ''
|
|
438
|
+
),
|
|
439
|
+
FastlaneCore::ConfigItem.new(
|
|
440
|
+
key: :skip_asset_gen,
|
|
441
|
+
env_name: "SKIP_ASSET_GEN",
|
|
442
|
+
description: "Skip generation of assets",
|
|
443
|
+
is_string: false,
|
|
444
|
+
optional: true,
|
|
445
|
+
default_value: false
|
|
390
446
|
)
|
|
391
447
|
]
|
|
392
448
|
end
|
|
393
449
|
|
|
450
|
+
def self.output
|
|
451
|
+
[
|
|
452
|
+
['CAPACITOR_ANDROID_RELEASE_BUILD_PATH', 'Path to the signed release APK or AAB if it was generated'],
|
|
453
|
+
['CAPACITOR_IOS_RELEASE_BUILD_PATH', 'Path to the signed release IPA if it was generated']
|
|
454
|
+
]
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
def self.authors
|
|
458
|
+
['ThatzOkay']
|
|
459
|
+
end
|
|
460
|
+
|
|
394
461
|
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
462
|
true
|
|
400
463
|
end
|
|
464
|
+
|
|
465
|
+
def self.example_code
|
|
466
|
+
[
|
|
467
|
+
"ionic(
|
|
468
|
+
platform: 'ios'
|
|
469
|
+
)",
|
|
470
|
+
"ionic(
|
|
471
|
+
platform: 'android',
|
|
472
|
+
keystore_path: './staging.keystore',
|
|
473
|
+
keystore_alias: 'alias_name',
|
|
474
|
+
keystore_password: 'store_password'
|
|
475
|
+
)"
|
|
476
|
+
]
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
def self.category
|
|
480
|
+
:building
|
|
481
|
+
end
|
|
401
482
|
end
|
|
402
483
|
end
|
|
403
484
|
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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
require 'fastlane/plugin/
|
|
1
|
+
require 'fastlane/plugin/ionic/version'
|
|
2
2
|
|
|
3
3
|
module Fastlane
|
|
4
|
-
module
|
|
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::
|
|
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.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ThatzOkay
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
|
|
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/
|
|
22
|
-
- lib/fastlane/plugin/
|
|
23
|
-
- lib/fastlane/plugin/
|
|
24
|
-
- lib/fastlane/plugin/
|
|
25
|
-
homepage: https://github.com/ThatzOkay/fastlane-plugin-
|
|
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: '
|
|
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.
|
|
46
|
-
signing_key:
|
|
125
|
+
rubygems_version: 3.6.9
|
|
47
126
|
specification_version: 4
|
|
48
|
-
summary: Build
|
|
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
|