4
4
module Fastlane
5
5
module Actions
6
6
class IosSendAppSizeMetricsAction < Action
7
+ # Keys used by the metrics payload
8
+ IPA_FILE_SIZE_KEY = 'File Size' . freeze # value from `File.size` of the Universal `.ipa`
9
+ IPA_DOWNLOAD_SIZE_KEY = 'Download Size' . freeze # value from `app-thinning.plist`
10
+ IPA_INSTALL_SIZE_KEY = 'Install Size' . freeze # value from `app-thinning.plist`
11
+
7
12
def self . run ( params )
8
13
# Check input parameters
9
14
api_url = URI ( params [ :api_url ] )
@@ -20,7 +25,7 @@ def self.run(params)
20
25
'Build Type' : params [ :build_type ] ,
21
26
Source : params [ :source ]
22
27
)
23
- metrics_helper . add_metric ( name : 'File Size' , value : File . size ( params [ :ipa_path ] ) )
28
+ metrics_helper . add_metric ( name : IPA_FILE_SIZE_KEY , value : File . size ( params [ :ipa_path ] ) )
24
29
25
30
# Add app-thinning metrics to the payload if a `.plist` is provided
26
31
app_thinning_plist_path = params [ :app_thinning_plist_path ] || File . join ( File . dirname ( params [ :ipa_path ] ) , 'app-thinning.plist' )
@@ -30,8 +35,8 @@ def self.run(params)
30
35
variant_descriptors = variant [ 'variantDescriptors' ] || [ { 'device' => 'Universal' } ]
31
36
variant_descriptors . each do |desc |
32
37
variant_metadata = { device : desc [ 'device' ] , 'OS Version' : desc [ 'os-version' ] }
33
- metrics_helper . add_metric ( name : 'Download Size' , value : variant [ 'sizeCompressedApp' ] , metadata : variant_metadata )
34
- metrics_helper . add_metric ( name : 'Install Size' , value : variant [ 'sizeUncompressedApp' ] , metadata : variant_metadata )
38
+ metrics_helper . add_metric ( name : IPA_DOWNLOAD_SIZE_KEY , value : variant [ 'sizeCompressedApp' ] , metadata : variant_metadata )
39
+ metrics_helper . add_metric ( name : IPA_INSTALL_SIZE_KEY , value : variant [ 'sizeUncompressedApp' ] , metadata : variant_metadata )
35
40
end
36
41
end
37
42
end
0 commit comments