fastlane-plugin-ipa_info 0.5.0 → 0.6.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 477ddb7083b35228565294f91a6663f8a28bb6be9c12d9c388385e09479a78c3
|
4
|
+
data.tar.gz: 30c246417a944bf11deaad3bf1154822179cd4cb7a4499ce4bad037c412d5d9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: decf9c25b01271d3dd0f5908c4f11f3ab3443dcd82c93a523291916b77de18f94790d616471e579962bd59949d5e52852040de6b91510a44eaba56e35f532050
|
7
|
+
data.tar.gz: 2598004e5d4c87742065854f45a0848599f632449e616453601c8b7a97d192fc116401a75c3dfeed25fabe2b1c0f931223e16e934439fc5b602773a3a7074ead
|
@@ -20,10 +20,15 @@ module Fastlane
|
|
20
20
|
summary_table = Helper::IpaInfoHelper.summary_table(title: "ipa Information", rows: rows)
|
21
21
|
puts(summary_table)
|
22
22
|
|
23
|
-
#
|
24
|
-
rows = Helper::IpaInfoHelper.
|
23
|
+
# mobile provisioning info
|
24
|
+
rows = Helper::IpaInfoHelper.mobileprovisioning_information(provision_info_result: info_result[:provisiong_info])
|
25
25
|
summary_table = Helper::IpaInfoHelper.summary_table(title: "Mobile Provision", rows: rows)
|
26
26
|
puts(summary_table)
|
27
|
+
|
28
|
+
# certificate info
|
29
|
+
rows = Helper::IpaInfoHelper.certificate_information(certificate_info_result: info_result[:certificate_info])
|
30
|
+
summary_table = Helper::IpaInfoHelper.summary_table(title: "Certificate", rows: rows)
|
31
|
+
puts(summary_table)
|
27
32
|
end
|
28
33
|
|
29
34
|
def self.description
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'tempfile'
|
2
|
+
require 'tmpdir'
|
2
3
|
require 'zip'
|
3
4
|
require 'zip/filesystem'
|
5
|
+
require 'fileutils'
|
4
6
|
require 'plist'
|
7
|
+
require 'open3'
|
5
8
|
require 'fastlane_core/ui/ui'
|
6
9
|
|
7
10
|
module Fastlane
|
@@ -12,7 +15,7 @@ module Fastlane
|
|
12
15
|
app_folder_path = find_app_folder_path_in_ipa(ipa_path)
|
13
16
|
ipa_zipfile.close
|
14
17
|
|
15
|
-
# path
|
18
|
+
# file path
|
16
19
|
mobileprovision_entry = ipa_zipfile.find_entry("#{app_folder_path}/embedded.mobileprovision")
|
17
20
|
UI.user_error!("mobileprovision not found in #{ipa_path}") unless mobileprovision_entry
|
18
21
|
info_plist_entry = ipa_zipfile.find_entry("#{app_folder_path}/Info.plist")
|
@@ -20,7 +23,8 @@ module Fastlane
|
|
20
23
|
|
21
24
|
return {
|
22
25
|
provisiong_info: self.analyze_mobileprovisioning(mobileprovision_entry, ipa_zipfile),
|
23
|
-
plist_info: self.analyze_info_plist(info_plist_entry, ipa_zipfile)
|
26
|
+
plist_info: self.analyze_info_plist(info_plist_entry, ipa_zipfile),
|
27
|
+
certificate_info: self.codesigned(ipa_zipfile)
|
24
28
|
}
|
25
29
|
end
|
26
30
|
|
@@ -55,9 +59,9 @@ module Fastlane
|
|
55
59
|
tempfile = Tempfile.new(::File.basename(mobileprovision_entry.name))
|
56
60
|
begin
|
57
61
|
ipa_zipfile.extract(mobileprovision_entry, tempfile.path) { true }
|
58
|
-
|
62
|
+
mobileprovisioning = Plist.parse_xml(`security cms -D -i #{tempfile.path}`)
|
59
63
|
|
60
|
-
|
64
|
+
mobileprovisioning.each do |key, value|
|
61
65
|
next if key == 'DeveloperCertificates'
|
62
66
|
|
63
67
|
parse_value = value.class == Hash || value.class == Array ? value : value.to_s
|
@@ -72,6 +76,30 @@ module Fastlane
|
|
72
76
|
return result
|
73
77
|
end
|
74
78
|
|
79
|
+
# certificate
|
80
|
+
def self.codesigned(ipa_zipfile)
|
81
|
+
result = {}
|
82
|
+
tempdir = Dir.pwd + "/tmp"
|
83
|
+
|
84
|
+
begin
|
85
|
+
ipa_zipfile.each do |entry_first|
|
86
|
+
entry_first.extract(tempdir + "/" + entry_first.name) { true }
|
87
|
+
end
|
88
|
+
|
89
|
+
app_path = tempdir + "/Payload/ios.app"
|
90
|
+
cmd = "codesign -dv #{app_path}"
|
91
|
+
_stdout, stderr, _status = Open3.capture3(cmd)
|
92
|
+
codesigned_flag = stderr.include?("Signed Time")
|
93
|
+
|
94
|
+
result["CodeSigned"] = codesigned_flag
|
95
|
+
rescue StandardError => e
|
96
|
+
UI.user_error!(e.message)
|
97
|
+
ensure
|
98
|
+
FileUtils.rm_r(tempdir)
|
99
|
+
end
|
100
|
+
return result
|
101
|
+
end
|
102
|
+
|
75
103
|
# return app folder path
|
76
104
|
def self.find_app_folder_path_in_ipa(ipa_path)
|
77
105
|
return "Payload/#{File.basename(ipa_path, File.extname(ipa_path))}.app"
|
@@ -38,10 +38,24 @@ module Fastlane
|
|
38
38
|
rows
|
39
39
|
end
|
40
40
|
|
41
|
-
|
41
|
+
# certificate info
|
42
|
+
def self.certificate_information(certificate_info_result:)
|
43
|
+
rows = []
|
44
|
+
[%w[CodeSigned CodeSigned]].each do |key, name|
|
45
|
+
ENV["FL_#{name.upcase}"] = certificate_info_result[key].to_s
|
46
|
+
|
47
|
+
rows << [name, certificate_info_result[key].to_s]
|
48
|
+
end
|
49
|
+
|
50
|
+
rows
|
51
|
+
end
|
52
|
+
|
53
|
+
# mobileprovisioning info
|
54
|
+
def self.mobileprovisioning_information(provision_info_result:)
|
42
55
|
rows = []
|
43
56
|
[%w[TeamName TeamName],
|
44
57
|
%w[Name ProvisioningProfileName]].each do |key, name|
|
58
|
+
ENV["FL_#{name.upcase}"] = provision_info_result[key]
|
45
59
|
rows << [name, provision_info_result[key]]
|
46
60
|
end
|
47
61
|
|
@@ -51,6 +65,9 @@ module Fastlane
|
|
51
65
|
expire_date = Date.parse(provision_info_result[key].to_s)
|
52
66
|
count_day = (expire_date - today).numerator
|
53
67
|
|
68
|
+
ENV["FL_#{name.upcase}"] = provision_info_result[key]
|
69
|
+
ENV["FL_COUNT_DAY"] = count_day.to_s
|
70
|
+
|
54
71
|
rows << [name, provision_info_result[key]]
|
55
72
|
rows << ["DeadLine", "#{count_day} day"]
|
56
73
|
end
|
@@ -62,7 +79,16 @@ module Fastlane
|
|
62
79
|
# @return macOS version(High Sierra or higher)
|
63
80
|
def self.macos_build_to_macos_version(build:)
|
64
81
|
case build
|
82
|
+
# macOS Big Sur
|
83
|
+
when "20B29", "20B50" then
|
84
|
+
"11.0.1"
|
65
85
|
# macOS Catalina
|
86
|
+
when "19H2", "19H15" then
|
87
|
+
"10.15.7"
|
88
|
+
when "19G73", "19G2021" then
|
89
|
+
"10.15.6"
|
90
|
+
when "19F101", "19F96" then
|
91
|
+
"10.15.5"
|
66
92
|
when "19E266" then
|
67
93
|
"10.15.4"
|
68
94
|
when "19D76" then
|
@@ -109,8 +135,13 @@ module Fastlane
|
|
109
135
|
end
|
110
136
|
|
111
137
|
def self.macos_version_to_os_name(version:)
|
138
|
+
major_version = version.split(".")[0].to_i
|
112
139
|
minor_version = version.split(".")[1].to_i
|
113
140
|
# reference https://support.apple.com/ja-jp/HT201260
|
141
|
+
case major_version
|
142
|
+
when 11
|
143
|
+
return "macOS Big Sur"
|
144
|
+
end
|
114
145
|
case minor_version
|
115
146
|
when 15
|
116
147
|
"macOS Catalina"
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-ipa_info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tarappo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plist
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '3.1'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 3.1.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '3.1'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 3.1.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rubyzip
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,8 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
requirements: []
|
211
|
-
|
212
|
-
rubygems_version: 2.7.6
|
211
|
+
rubygems_version: 3.0.3
|
213
212
|
signing_key:
|
214
213
|
specification_version: 4
|
215
214
|
summary: show ipa info
|