fastlane-plugin-upload_dsym_to_bugly 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6890daf60a91eca16e505063e9e6e599d79680307e9e23d21a16ede772960c7
4
- data.tar.gz: 639cd70717796f3ca31bae1da71fe45fa0fd817d0d6b1edd0833c324aaf26d8b
3
+ metadata.gz: 65de6ddc5662f5007981a2d2278f2b76202c31f02cc81fbecc63fdad691342fa
4
+ data.tar.gz: 4aacea3dc9ec749c160b0f507d5f2c34e271477e89a22456c408141ab7826693
5
5
  SHA512:
6
- metadata.gz: 1af9141f0defc121b425d75e1d31a67c04d5c653d9445d9c9b912ad34f9a945704b5008aad066c35ccf7382075b9ad1d6b0c5899eb00c047eb94fcd5e24d6585
7
- data.tar.gz: 7b5c79bfa3249f5f786b6efd77af7b9390cb59606ecdf80395ca9123ada0495ae49876eeda2ac3d462dc0ca67cea2010d5c84ba7f6e1e6ee0386a7f08752e023
6
+ metadata.gz: d4668daecd5ad5bd67bf87a4de8b50153beb44b59a85ac4cacd8453ce3d1d866ede2b123fec4be62daf4d2ebd5df68d17ba74c4daa44e87f74472433ddd5145c
7
+ data.tar.gz: c07121b824e52773f0b74e863dee3df2b1a026743296c948d07e59653028506b121d17a85a0c86766a3a303d8194519040cab5075f4f505deb3c73fa99b0e7a9
data/README.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-upload_dsym_to_bugly)
4
4
 
5
+
6
+ ## Note
7
+ 2021 年 6 月 28 日 开始,bugly 不再支持使用 openApi 的方式上传符号表,需要使用官方提供的命令行上传工具进行上传。
8
+ 本插件当前使用的工具版本为:__3.3.4__
9
+
10
+ 另外去除了上传 ipa 到 bugly 的 action。
11
+
5
12
  ## Getting Started
6
13
 
7
14
  This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-upload_dsym_to_bugly`, add it to your project by running:
@@ -14,35 +21,14 @@ add the following to your `fastfile`
14
21
  ```ruby
15
22
  lane :upload_dysm do
16
23
  upload_dsym_to_bugly(
17
- file_path: "<your dSYM.zip path>/<your dSYM.zip name>",
18
- file_name: "<your dSYM.zip name>",
24
+ file_path: "<path/to/your/x.app.dSYM.zip",
19
25
  app_key: "<your app_key>",
20
26
  app_id:"<your app_id>",
21
- api_version: 1,
22
- symbol_type: 2, # iOS => 2, Android => 1
23
27
  bundle_id: '<your bundle id>',
24
- product_version: get_version_number
25
- )
26
- end
27
- ```
28
-
29
- if you want to upload your ipa to bugly, add the following to your `fastfile`
30
- ```ruby
31
- lane :upload_app do
32
- upload_app_to_bugly(
33
- file_path:"<your *.ipa filepath>",
34
- app_key:"<your app_key>",
35
- app_id:"<your app_id>",
36
- pid:"2",
37
- title:"<title>",
38
- desc:"<description>",
39
- secret:"<secret>",
40
- users:"<users>",
41
- password:"<password>",
42
- download_limit:download_limit
28
+ version: get_version_number,
29
+ raise_if_error: false
43
30
  )
44
31
  end
45
-
46
32
  ```
47
33
 
48
34
  ## About upload_dsym_to_bugly
@@ -1,5 +1,6 @@
1
1
  require "fastlane/action"
2
2
  require_relative "../helper/upload_dsym_to_bugly_helper"
3
+ require 'fileutils'
3
4
 
4
5
  module Fastlane
5
6
  module Actions
@@ -8,48 +9,47 @@ module Fastlane
8
9
  end
9
10
  class UploadDsymToBuglyAction < Action
10
11
  def self.run(params)
11
- require "json"
12
- # fastlane will take care of reading in the parameter and fetching the environment variable:
13
- UI.message "file path: #{params[:file_path]}"
14
12
 
15
- json_file = "upload_dsym_to_bugly_result.json"
13
+ jar_path = File.expand_path('../../jars/buglyqq-upload-symbol-3.3.4.jar', __FILE__)
14
+ UI.message "jar path: #{jar_path}"
16
15
 
17
- begin
18
- api_version = ""
19
- if !params[:api_version].nil? && params[:api_version] > 0
20
- api_version = " --form \"api_version=#{params[:api_version]}\" "
21
- UI.message "api_version: #{api_version}"
22
- end
23
- rescue Exception => e
24
- UI.message "error at checking api version, caused by #{e}"
16
+ file_path = File.expand_path("#{params[:file_path]}")
17
+ UI.message "file path: #{file_path}"
18
+
19
+ unzip_path = File.expand_path(".upload_dsym_to_bugly_tmp", "#{File.dirname("#{file_path}")}")
20
+ UI.message "unzip path: #{unzip_path}"
21
+
22
+ if Dir.exist?(unzip_path)
23
+ FileUtils.rm_r(unzip_path, force: true)
25
24
  end
26
25
 
27
- begin
28
- channel = ""
29
- if !params[:channel].nil? && !params[:channel].empty?
30
- channel = " --form \"channel=#{params[:channel]}\" "
31
- UI.message "channel: #{channel}"
32
- end
33
- rescue Exception => e
34
- UI.message "error at checking api version, caused by #{e}"
26
+ if !Dir.glob(file_path).empty?
27
+ sh("unzip -o #{file_path} -d #{unzip_path}")
28
+ else
29
+ UI.message "dSYM zip File don't exist"
30
+ Actions.lane_context[SharedValues::UPLOAD_DSYM_TO_BUGLY_RESULT] = false
31
+ raise if params[:raise_if_error]
35
32
  end
33
+ cmd = "java -jar #{jar_path} -appid #{params[:app_id]} -appkey #{params[:app_key]} -bundleid #{params[:bundle_id]} -version #{params[:version]} -platform #{params[:platform]} -inputSymbol #{unzip_path}"
34
+
35
+ log_file = "dSYM_upload_result.log"
36
36
 
37
- cmd = "curl -k \"https://api.bugly.qq.com/openapi/file/upload/symbol?app_key=#{params[:app_key]}&app_id=#{params[:app_id]}\"" + api_version + " --form \"app_id=#{params[:app_id]}\"" + " --form \"app_key=#{params[:app_key]}\"" + " --form \"symbolType=#{params[:symbol_type]}\"" + " --form \"bundleId=#{params[:bundle_id]}\"" + " --form \"productVersion=#{params[:product_version]}\"" + channel + " --form \"fileName=#{params[:file_name]}\"" + " --form \"file=@#{params[:file_path]}\"" + " -o " + json_file
38
37
  begin
39
- sh(cmd)
40
- obj = JSON.parse(File.read(json_file))
41
- `rm upload_dsym_to_bugly_result.json`
42
- ret = obj["rtcode"]
43
- if ret == 0
44
- UI.message "dSYM upload success"
38
+ sh("#{cmd} > #{log_file}")
39
+ last_line = sh("tail -n 1 #{log_file}")
40
+
41
+ success = last_line.include?("retCode: 200") and last_line.include?("\"msg\":\"success\"")
42
+ if success
43
+ UI.message "dSYM upload successfully 🎉 "
45
44
  Actions.lane_context[SharedValues::UPLOAD_DSYM_TO_BUGLY_RESULT] = true
46
45
  else
47
- UI.message "dSYM upload failed, result is #{obj}"
46
+ UI.message "dSYM upload failed: #{last_line}"
48
47
  Actions.lane_context[SharedValues::UPLOAD_DSYM_TO_BUGLY_RESULT] = false
49
- raise if params[:raise_if_error]
48
+ raise if params[:raise_if_error]
50
49
  end
51
- rescue
52
- UI.message "dSYM upload failed"
50
+
51
+ rescue => exception
52
+ UI.message "dSYM upload failed, See log output above"
53
53
  Actions.lane_context[SharedValues::UPLOAD_DSYM_TO_BUGLY_RESULT] = false
54
54
  raise if params[:raise_if_error]
55
55
  end
@@ -74,77 +74,60 @@ module Fastlane
74
74
 
75
75
  def self.available_options
76
76
  [
77
- FastlaneCore::ConfigItem.new(key: :api_version,
78
- env_name: "FL_UPLOAD_DSYM_TO_BUGLY_API_VERSION",
79
- description: "api version for UploadDsymToBuglyAction",
80
- is_string: false,
81
- default_value: 1),
82
77
  FastlaneCore::ConfigItem.new(key: :app_id,
83
78
  env_name: "FL_UPLOAD_DSYM_TO_BUGLY_APP_ID",
84
- description: "app id for UploadDsymToBuglyAction",
79
+ description: "app id",
85
80
  is_string: true,
86
81
  verify_block: proc do |value|
87
82
  UI.user_error!("No APP id for UploadDsymToBuglyAction given, pass using `app_id: 'app_id'`") unless (value and not value.empty?)
88
83
  end),
89
84
  FastlaneCore::ConfigItem.new(key: :app_key,
90
85
  env_name: "FL_UPLOAD_DSYM_TO_BUGLY_APP_KEY",
91
- description: "app key for UploadDsymToBuglyAction",
86
+ description: "app key",
92
87
  is_string: true,
93
88
  verify_block: proc do |value|
94
89
  UI.user_error!("No APP key for UploadDsymToBuglyAction given, pass using `api_key: 'app_key'`") unless (value and not value.empty?)
95
90
  end),
96
- FastlaneCore::ConfigItem.new(key: :symbol_type,
97
- env_name: "FL_UPLOAD_DSYM_TO_BUGLY_SYMBOL_TYPE",
98
- description: "symbol type for UploadDsymToBuglyAction",
99
- is_string: false,
100
- verify_block: proc do |value|
101
- UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `symbol_type: 'symbol_type'`") unless (value and not value.to_s.empty?)
102
- end),
103
91
  FastlaneCore::ConfigItem.new(key: :bundle_id,
104
92
  env_name: "FL_UPLOAD_DSYM_TO_BUGLY_BUNDLE_ID",
105
- description: "bundle id for UploadDsymToBuglyAction",
93
+ description: "bundle id",
106
94
  is_string: true,
107
95
  verify_block: proc do |value|
108
96
  UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `bundle_id: 'bundle_id'`") unless (value and not value.empty?)
109
97
  end),
110
- FastlaneCore::ConfigItem.new(key: :product_version,
111
- env_name: "FL_UPLOAD_DSYM_TO_BUGLY_PRODEUCT_VERSION",
112
- description: "product version for UploadDsymToBuglyAction",
98
+ FastlaneCore::ConfigItem.new(key: :version,
99
+ env_name: "FL_UPLOAD_DSYM_TO_BUGLY_VERSION",
100
+ description: "app version",
113
101
  is_string: true,
114
102
  verify_block: proc do |value|
115
- UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `product_version: 'product_version'`") unless (value and not value.empty?)
116
- end),
117
- FastlaneCore::ConfigItem.new(key: :channel,
118
- env_name: "FL_UPLOAD_DSYM_TO_BUGLY_CHANNEL",
119
- description: "channel for UploadDsymToBuglyAction",
120
- is_string: true,
121
- default_value: "fastlane"),
122
- FastlaneCore::ConfigItem.new(key: :file_name,
123
- env_name: "FL_UPLOAD_DSYM_TO_BUGLY_FILE_NAME",
124
- description: "file name for UploadDsymToBuglyAction",
125
- is_string: true,
126
- verify_block: proc do |value|
127
- UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `file_name: 'file_name'`") unless (value and not value.empty?)
103
+ UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `version: 'version'`") unless (value and not value.empty?)
128
104
  end),
129
105
  FastlaneCore::ConfigItem.new(key: :file_path,
130
106
  env_name: "FL_UPLOAD_DSYM_TO_BUGLY_FILE",
131
- description: "file for UploadDsymToBuglyAction",
107
+ description: "file path",
132
108
  is_string: true,
133
109
  verify_block: proc do |value|
134
110
  UI.user_error!("No symbol type for UploadDsymToBuglyAction given, pass using `file_path: 'file_path'`") unless (value and not value.empty?)
135
111
  end),
112
+ FastlaneCore::ConfigItem.new(key: :platform,
113
+ env_name: "FL_UPLOAD_DSYM_TO_BUGLY_FILE",
114
+ description: "platform",
115
+ is_string: true,
116
+ default_value: "IOS",
117
+ verify_block: proc do |value|
118
+ UI.user_error!("platform value error, available values: IOS, Android") unless (value == "IOS" or value == "Android")
119
+ end),
136
120
  FastlaneCore::ConfigItem.new(key: :raise_if_error,
137
121
  env_name: "FL_UPLOAD_DSYM_TO_BUGLY_RAISE_IF_ERROR",
138
122
  description: "Raises an error if fails, so you can fail CI/CD jobs if necessary \(true/false)",
139
123
  default_value: true,
140
124
  is_string: false,
141
125
  type: Boolean,
142
- optional: false),
126
+ optional: false)
143
127
  ]
144
128
  end
145
129
 
146
130
  def self.output
147
- # Define the shared values you are going to provide
148
131
  [
149
132
  ["UPLOAD_DSYM_TO_BUGLY_RESULT", "upload result"],
150
133
  ]
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module UploadDsymToBugly
3
- VERSION = "1.1.2"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-upload_dsym_to_bugly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - liubo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-31 00:00:00.000000000 Z
11
+ date: 2021-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.108.0
139
- description:
139
+ description:
140
140
  email: liubo004@126.com
141
141
  executables: []
142
142
  extensions: []
@@ -145,15 +145,15 @@ files:
145
145
  - LICENSE
146
146
  - README.md
147
147
  - lib/fastlane/plugin/upload_dsym_to_bugly.rb
148
- - lib/fastlane/plugin/upload_dsym_to_bugly/actions/upload_app_to_bugly_action.rb
149
148
  - lib/fastlane/plugin/upload_dsym_to_bugly/actions/upload_dsym_to_bugly_action.rb
150
149
  - lib/fastlane/plugin/upload_dsym_to_bugly/helper/upload_dsym_to_bugly_helper.rb
150
+ - lib/fastlane/plugin/upload_dsym_to_bugly/jars/buglyqq-upload-symbol-3.3.4.jar
151
151
  - lib/fastlane/plugin/upload_dsym_to_bugly/version.rb
152
152
  homepage: https://github.com/srv7/fastlane-plugin-upload_dsym_to_bugly
153
153
  licenses:
154
154
  - MIT
155
155
  metadata: {}
156
- post_install_message:
156
+ post_install_message:
157
157
  rdoc_options: []
158
158
  require_paths:
159
159
  - lib
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  requirements: []
171
171
  rubygems_version: 3.1.2
172
- signing_key:
172
+ signing_key:
173
173
  specification_version: 4
174
174
  summary: upload_dsym_to_bugly
175
175
  test_files: []
@@ -1,201 +0,0 @@
1
- require "fastlane/action"
2
- require_relative "../helper/upload_dsym_to_bugly_helper"
3
-
4
- module Fastlane
5
- module Actions
6
- module SharedValues
7
- UPLOAD_APP_TO_BUGLY_DOWNLOAD_URL = :UPLOAD_APP_TO_BUGLY_DOWNLOAD_URL
8
- end
9
-
10
- # To share this integration with the other fastlane users:
11
- # - Fork https://github.com/fastlane/fastlane/tree/master/fastlane
12
- # - Clone the forked repository
13
- # - Move this integration into lib/fastlane/actions
14
- # - Commit, push and submit the pull request
15
-
16
- class UploadAppToBuglyAction < Action
17
- def self.run(params)
18
- require "json"
19
- # fastlane will take care of reading in the parameter and fetching the environment variable:
20
- UI.message "file path: #{params[:file_path]}"
21
-
22
- json_file = "upload_app_to_bugly_result.json"
23
-
24
- begin
25
- secret = ""
26
- if !params[:secret].to_s.nil? && !params[:secret].empty?
27
- secret = " -F \"secret=#{params[:secret]}\" "
28
- UI.message "secret:#{secret}"
29
- end
30
- rescue Exception => e
31
- UI.message "error at checking secret,caused by #{e}"
32
- return
33
- end
34
-
35
- begin
36
- users = ""
37
- if !params[:users].nil? && !params[:users].empty?
38
- users = " -F \"users=#{params[:users]}\" "
39
- UI.message "users:#{users}"
40
- end
41
- rescue Exception => e
42
- UI.message "error at checking users,caused by #{e}"
43
- return
44
- end
45
-
46
- begin
47
- password = ""
48
- if !params[:password].nil? && !params[:password].empty?
49
- password = " -F \"password=#{params[:password]}\" "
50
- UI.message "password:#{password}"
51
- end
52
- rescue Exception => e
53
- UI.message "error at checking password,caused by #{e}"
54
- return
55
- end
56
-
57
- begin
58
- download_limit = ""
59
- if !params[:download_limit].nil? && params[:download_limit] > 0
60
- download_limit = " -F \"download_limit=#{params[:download_limit]}\" "
61
- UI.message "download_limit:#{download_limit}"
62
- end
63
- rescue Exception => e
64
- UI.message "error at checking download_limit,caused by #{e}"
65
- return
66
- end
67
-
68
- cmd = "curl --insecure -F \"file=@#{params[:file_path]}\" -F \"app_id=#{params[:app_id]}\" -F \"pid=#{params[:pid]}\" -F \"title=#{params[:title]}\" -F \"description=#{params[:desc]}\"" + secret + users + password + download_limit + " https://api.bugly.qq.com/beta/apiv1/exp?app_key=#{params[:app_key]} -o " + json_file
69
- begin
70
- sh(cmd)
71
- obj = JSON.parse(File.read(json_file))
72
- `rm upload_dsym_to_bugly_result.json`
73
- ret = obj["rtcode"]
74
- if ret == 0
75
- UI.message "upload success"
76
- url = obj["data"]["url"]
77
- Actions.lane_context[SharedValues::UPLOAD_APP_TO_BUGLY_DOWNLOAD_URL] = url
78
- UI.message "upload success, link: #{url}"
79
- else
80
- UI.message "upload failed,result is #{obj}"
81
- raise if params[:raise_if_error]
82
- end
83
- rescue
84
- UI.message "upload failed"
85
- raise if params[:raise_if_error]
86
- end
87
- end
88
-
89
- #####################################################
90
- # @!group Documentation
91
- #####################################################
92
-
93
- def self.description
94
- "upload_app_to_bugly"
95
- end
96
-
97
- def self.details
98
- # Optional:
99
- # this is your chance to provide a more detailed description of this action
100
- "You can use this action to do cool things..."
101
- end
102
-
103
- def self.available_options
104
- # Define all options your action supports.
105
-
106
- # Below a few examples
107
- [
108
- FastlaneCore::ConfigItem.new(key: :file_path,
109
- env_name: "FL_UPLOAD_APP_TO_BUGLY_FILE_PATH",
110
- description: "file path for UploadAppToBuglyAction",
111
- is_string: true,
112
- verify_block: proc do |value|
113
- UI.user_error!("No file path for UploadAppToBuglyAction given, pass using `file_path: 'path'`") unless value && !value.empty?
114
- UI.user_error!("Couldn't find file at path '#{value}'") unless File.exist?(value)
115
- end),
116
- FastlaneCore::ConfigItem.new(key: :app_key,
117
- env_name: "FL_UPLOAD_APP_TO_BUGLY_APP_KEY",
118
- description: "app key for UploadAppToBuglyAction",
119
- is_string: true,
120
- verify_block: proc do |value|
121
- UI.user_error!("NO app_key for UploadAppToBuglyAction given, pass using `app_key: 'app_key'`") unless value && !value.empty?
122
- end),
123
- FastlaneCore::ConfigItem.new(key: :app_id,
124
- env_name: "FL_UPLOAD_APP_TO_BUGLY_APP_ID",
125
- description: "app id for UploadAppToBuglyAction",
126
- is_string: true,
127
- verify_block: proc do |value|
128
- UI.user_error!("No app_id for UploadAppToBuglyAction given, pass using `app_id: 'app_id'`") unless value && !value.empty?
129
- end),
130
- FastlaneCore::ConfigItem.new(key: :pid,
131
- env_name: "FL_UPLOAD_APP_TO_BUGLY_PID",
132
- description: "pid for UploadToBuglyAction",
133
- is_string: true,
134
- verify_block: proc do |value|
135
- UI.user_error!("No pid for UploadAppToBuglyAction given, pass using `pid: 'pid'`") unless value && !value.empty?
136
- end),
137
- FastlaneCore::ConfigItem.new(key: :title,
138
- env_name: "FL_UPLOAD_APP_TO_BUGLY_TITLE",
139
- description: "title for UploadAppToBuglyAction",
140
- is_string: true,
141
- default_value: "title",
142
- verify_block: proc do |value|
143
- UI.user_error!("No title for UploadAppToBuglyAction given, pass using `title: 'title'`") unless value && !value.empty?
144
- end),
145
- FastlaneCore::ConfigItem.new(key: :desc,
146
- env_name: "FL_UPLOAD_APP_TO_BUGLY_DESC",
147
- description: "desc for UploadAppToBuglyAction",
148
- is_string: true,
149
- default_value: "desc"),
150
- FastlaneCore::ConfigItem.new(key: :secret,
151
- env_name: "FL_UPLOAD_APP_TO_BUGLY_SECRET",
152
- description: "secret for UploadAppToBuglyAction",
153
- is_string: true,
154
- default_value: ""),
155
- FastlaneCore::ConfigItem.new(key: :users,
156
- env_name: "FL_UPLOAD_APP_TO_BUGLY_USERS",
157
- description: "users for UploadAppToBuglyAction",
158
- is_string: true,
159
- default_value: ""),
160
- FastlaneCore::ConfigItem.new(key: :password,
161
- env_name: "FL_UPLOAD_APP_TO_BUGLY_PASSWORD",
162
- description: "password for UploadAppToBuglyAction",
163
- is_string: true,
164
- default_value: ""),
165
- FastlaneCore::ConfigItem.new(key: :download_limit,
166
- env_name: "FL_UPLOAD_APP_TO_BUGLY_DOWNLOAD_LIMIT",
167
- description: "download_limit for UploadAppToBuglyAction",
168
- is_string: false, # true: verifies the input is a string, false: every kind of value
169
- default_value: 10_000),
170
- FastlaneCore::ConfigItem.new(key: :raise_if_error,
171
- env_name: "FL_UPLOAD_APP_TO_BUGLY_RAISE_IF_ERROR",
172
- description: "Raises an error if fails, so you can fail CI/CD jobs if necessary \(true/false)",
173
- default_value: true,
174
- is_string: false,
175
- type: Boolean,
176
- optional: false),
177
- ]
178
- end
179
-
180
- def self.output
181
- # Define the shared values you are going to provide
182
- [
183
- ["UPLOAD_APP_TO_BUGLY_DOWNLOAD_URL", "download url"],
184
- ]
185
- end
186
-
187
- def self.return_value
188
- # If you method provides a return value, you can describe here what it does
189
- end
190
-
191
- def self.authors
192
- # So no one will ever forget your contribution to fastlane :) You are awesome btw!
193
- ["liubo"]
194
- end
195
-
196
- def self.is_supported?(platform)
197
- platform == :ios
198
- end
199
- end
200
- end
201
- end