fastlane-plugin-flutter 0.2.3 → 0.2.4
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3285411bae73b95137074776448187327f176908
|
4
|
+
data.tar.gz: ea813359aba6ea098d16aff0483e1c75c2617dbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce2458bb2d0243aefe7779e0e56483721773de4c19a89893ce14d845b635791b8a8e988cef934f398a8a7a4e13693d7f53a7039a1d65afbb8879faf84762633b
|
7
|
+
data.tar.gz: b67967887ab9bd14b65b9eb0a02b8f12f334406b8163b30d7ab593e6dbca04c9274b8bd77ea7a26cfaf3af454324646a1b5cd1c541d54abb8e62d282db65197f
|
@@ -15,7 +15,7 @@ module Fastlane
|
|
15
15
|
end
|
16
16
|
|
17
17
|
class FlutterAction < Action
|
18
|
-
FLUTTER_ACTIONS = %(build analyze test format l10n)
|
18
|
+
FLUTTER_ACTIONS = %w(build analyze test format l10n bootstrap)
|
19
19
|
|
20
20
|
PLATFORM_TO_FLUTTER = {
|
21
21
|
ios: 'ios',
|
@@ -105,6 +105,8 @@ module Fastlane
|
|
105
105
|
sh *%w(flutter format .)
|
106
106
|
when 'l10n'
|
107
107
|
run_l10n(params)
|
108
|
+
when 'bootstrap'
|
109
|
+
Helper::FlutterHelper.bootstrap_android(params[:android_licenses])
|
108
110
|
end
|
109
111
|
end
|
110
112
|
|
@@ -128,7 +130,7 @@ module Fastlane
|
|
128
130
|
)
|
129
131
|
end
|
130
132
|
|
131
|
-
sh *%w(flutter
|
133
|
+
sh *%w(flutter packages pub run intl_translation:extract_to_arb),
|
132
134
|
*extract_to_arb_options, params[:l10n_strings_file]
|
133
135
|
|
134
136
|
if l10n_messages_was
|
@@ -175,7 +177,7 @@ module Fastlane
|
|
175
177
|
end
|
176
178
|
end
|
177
179
|
|
178
|
-
sh *%W(flutter
|
180
|
+
sh *%W(flutter packages pub run intl_translation:generate_from_arb
|
179
181
|
--output-dir=#{output_dir}
|
180
182
|
--no-use-deferred-loading
|
181
183
|
#{params[:l10n_strings_file]}) + arb_files
|
@@ -209,7 +211,9 @@ module Fastlane
|
|
209
211
|
optional: false,
|
210
212
|
type: String,
|
211
213
|
verify_block: proc do |value|
|
212
|
-
|
214
|
+
unless FLUTTER_ACTIONS.include?(value)
|
215
|
+
UI.user_error!("Supported actions are: #{FLUTTER_ACTIONS}")
|
216
|
+
end
|
213
217
|
end,
|
214
218
|
),
|
215
219
|
FastlaneCore::ConfigItem.new(
|
@@ -236,9 +240,6 @@ module Fastlane
|
|
236
240
|
Override build number in pubspec.yaml. Can be either a number, or
|
237
241
|
a schema definition, ex.: ci (take from CI) vcs (take from Git),
|
238
242
|
ci+1000 (take from CI and add 1000).
|
239
|
-
WARNING: does not override Android build number specified in
|
240
|
-
pubspec.yaml due to Flutter bug:
|
241
|
-
https://github.com/flutter/flutter/issues/22788.
|
242
243
|
DESCRIPTION
|
243
244
|
optional: true,
|
244
245
|
verify_block: Helper::FlutterHelper.method(:build_number),
|
@@ -252,9 +253,6 @@ module Fastlane
|
|
252
253
|
tree), vcs (take from VCS, no dirty mark).
|
253
254
|
NOTE: for App Store, must be in the format of at most 3 integeres
|
254
255
|
separated by a dot (".").
|
255
|
-
WARNING: does not override Android build number specified in
|
256
|
-
pubspec.yaml due to Flutter bug:
|
257
|
-
https://github.com/flutter/flutter/issues/22788.
|
258
256
|
DESCRIPTION
|
259
257
|
optional: true,
|
260
258
|
verify_block: Helper::FlutterHelper.method(:build_name),
|
@@ -291,6 +289,16 @@ module Fastlane
|
|
291
289
|
is_string: false,
|
292
290
|
default_value: true,
|
293
291
|
),
|
292
|
+
FastlaneCore::ConfigItem.new(
|
293
|
+
key: :android_licenses,
|
294
|
+
env_name: 'FL_FLUTTER_ANDROID_LICENSES',
|
295
|
+
description: 'Hashes of accepted Android SDK linceses, which may ' \
|
296
|
+
'be found in $ANDROID_SDK_ROOT/licenses',
|
297
|
+
optional: true,
|
298
|
+
is_string: false,
|
299
|
+
verify_block: proc { |value| value.kind_of?(Hash) },
|
300
|
+
default_value: {},
|
301
|
+
),
|
294
302
|
]
|
295
303
|
end
|
296
304
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'fastlane_core/ui/ui'
|
2
|
+
require 'fileutils'
|
2
3
|
require 'json'
|
3
4
|
require 'set'
|
5
|
+
require 'tempfile'
|
4
6
|
|
5
7
|
module Fastlane
|
6
8
|
# UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
|
@@ -93,6 +95,90 @@ module Fastlane
|
|
93
95
|
schema
|
94
96
|
end
|
95
97
|
end
|
98
|
+
|
99
|
+
# Bootstrap Flutter application for build with Android SDK:
|
100
|
+
# https://github.com/flutter/flutter/issues/28076
|
101
|
+
def self.bootstrap_android(licenses = {})
|
102
|
+
# Gradle will refuse to install Android SDK unless the SDK directory
|
103
|
+
# exists and licenses are accepted.
|
104
|
+
licenses_directory = File.join(android_sdk_root!, 'licenses')
|
105
|
+
FileUtils.mkdir_p(licenses_directory)
|
106
|
+
if licenses.any?
|
107
|
+
licenses.each_pair do |license, hash|
|
108
|
+
license_file = File.join(licenses_directory, license)
|
109
|
+
unless File.exist?(license_file) &&
|
110
|
+
File.readlines(license_file).include?(hash)
|
111
|
+
File.open(license_file, 'a') { |f| f.puts('', hash) }
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
android_properties_file = 'android/local.properties'
|
117
|
+
flutter_sdk_par = 'flutter.sdk'
|
118
|
+
unless File.exist?(android_properties_file) &&
|
119
|
+
File.read(android_properties_file).include?(flutter_sdk_par)
|
120
|
+
flutter_sdk_path = File.dirname(File.dirname(which('flutter')))
|
121
|
+
File.open(android_properties_file, 'a') do |properties|
|
122
|
+
properties.write(<<-CONFIG.gsub(/^\s+/, ''))
|
123
|
+
|
124
|
+
### Generated by #{$0}#{__method__} ###
|
125
|
+
#{flutter_sdk_par}=#{flutter_sdk_path}
|
126
|
+
CONFIG
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
download_android_dependencies
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.android_sdk_root!
|
134
|
+
(ENV['ANDROID_HOME'] || ENV['ANDROID_SDK_ROOT']).tap do |path|
|
135
|
+
unless path
|
136
|
+
raise 'Android SDK directory environment variables are not set. ' \
|
137
|
+
'See https://developer.android.com/studio/command-line/variables'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def self.download_android_dependencies
|
143
|
+
Tempfile.create('resolveDependencies.gradle') do |init_script|
|
144
|
+
init_script.puts(<<-GRADLE)
|
145
|
+
allprojects {
|
146
|
+
task resolveDependencies {
|
147
|
+
doLast {
|
148
|
+
project.configurations.each { configuration ->
|
149
|
+
if (configuration.isCanBeResolved()) {
|
150
|
+
configuration.resolve()
|
151
|
+
}
|
152
|
+
}
|
153
|
+
project.buildscript.configurations.each { configuration ->
|
154
|
+
if (configuration.isCanBeResolved()) {
|
155
|
+
configuration.resolve()
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
GRADLE
|
162
|
+
init_script.flush
|
163
|
+
|
164
|
+
Dir.chdir('android') do
|
165
|
+
Actions.sh('./gradlew', '--init-script', init_script.path,
|
166
|
+
'--', ':resolveDependencies')
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
# https://stackoverflow.com/a/5471032/8584735
|
172
|
+
def self.which(cmd)
|
173
|
+
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
174
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
175
|
+
exts.each do |ext|
|
176
|
+
exe = File.join(path, "#{cmd}#{ext}")
|
177
|
+
return exe if File.executable?(exe) && !File.directory?(exe)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
nil
|
181
|
+
end
|
96
182
|
end
|
97
183
|
end
|
98
184
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-flutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artem Sheremet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|