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 +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} +150 -59
- 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: 96e8bc700b698dcbdc252e96e6df05c79440eb267ce640e3824efd4ab33b6da1
|
|
4
|
+
data.tar.gz: 19c45517d295414d9fce86b95ce00491471cb55c40629cd5085443f954294428
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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)
|
|
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,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
|
-
|
|
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
|
-
|
|
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
|
+
|
|
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
|
|
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,
|
|
211
|
+
def self.set_build_paths(params, release)
|
|
170
212
|
app_name = self.get_app_name
|
|
171
|
-
build_type =
|
|
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
|
-
|
|
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
|
-
|
|
187
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
def self.authors
|
|
201
|
-
["ThatzOkay"]
|
|
202
|
-
end
|
|
245
|
+
#####################################################
|
|
246
|
+
# @!group Documentation
|
|
247
|
+
#####################################################
|
|
203
248
|
|
|
204
|
-
def self.
|
|
205
|
-
|
|
249
|
+
def self.description
|
|
250
|
+
"Build your Ionic app"
|
|
206
251
|
end
|
|
207
252
|
|
|
208
253
|
def self.details
|
|
209
|
-
|
|
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
|
|
@@ -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.4.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
|