app-info 2.3.0 → 2.4.1
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/CHANGELOG.md +11 -0
- data/Gemfile +0 -1
- data/README.md +1 -1
- data/lib/app_info/apk.rb +28 -11
- data/lib/app_info/dsym.rb +11 -1
- data/lib/app_info/ipa.rb +3 -3
- data/lib/app_info/proguard.rb +13 -0
- data/lib/app_info/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa6b8e87ba8dc7e9e7717d1e3c4885c5748c3aac3079780ff1262ab9ab62ea1d
|
4
|
+
data.tar.gz: 1d4b0f573c2b875b7347ceb5a161560e1453db0b891cc2b7c28cddea9ba6fdbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 300a98a543b36cee225ca5252f9f2883b5641f778f287c76e964a0a6c4c08054597e6de01e6ad023859f852d952d714c29d7ba47689f93355bd6c688bbf43102
|
7
|
+
data.tar.gz: e21a5002f708006fc0233034ecb5cecb40139ca7d9aefdc92e9004b9bd0b1e3ad10f94278959b1a4c5bd42d24ec416a1cf7e0f76736f777603f94431f4201ded
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
9
9
|
|
10
10
|
> List all changes before release a new version.
|
11
11
|
|
12
|
+
## [2.4.1] (2021-03-08)
|
13
|
+
|
14
|
+
### Changed
|
15
|
+
|
16
|
+
- Rename `cleanup!` to `clear!` method in ipa.
|
17
|
+
|
18
|
+
### Added
|
19
|
+
|
20
|
+
- Add `clear!` method to ipa,apk, dsym and proguard.
|
21
|
+
- Make `contents` to be a public method.
|
22
|
+
|
12
23
|
## [2.3.0] (2021-01-15)
|
13
24
|
|
14
25
|
### Changed
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -51,7 +51,7 @@ parser = AppInfo.parse('App.dSYm.zip')
|
|
51
51
|
|
52
52
|
# If detect file type failed, you can parse in other way
|
53
53
|
parser = AppInfo::IPA.new('iphone.ipa')
|
54
|
-
parser = AppInfo::
|
54
|
+
parser = AppInfo::APK.new('android.apk')
|
55
55
|
parser = AppInfo::InfoPlist.new('App/Info.plist')
|
56
56
|
parser = AppInfo::MobileProvision.new('provisioning_profile/uuid.mobileprovision')
|
57
57
|
parser = AppInfo::DSYM.new('App.dSYm.zip')
|
data/lib/app_info/apk.rb
CHANGED
@@ -10,7 +10,7 @@ module AppInfo
|
|
10
10
|
class APK
|
11
11
|
extend Forwardable
|
12
12
|
|
13
|
-
attr_reader :file
|
13
|
+
attr_reader :file
|
14
14
|
|
15
15
|
# APK Devices
|
16
16
|
module Device
|
@@ -22,9 +22,6 @@ module AppInfo
|
|
22
22
|
|
23
23
|
def initialize(file)
|
24
24
|
@file = file
|
25
|
-
|
26
|
-
Zip.warn_invalid_date = false # fix invaild date format warnings
|
27
|
-
@apk = ::Android::Apk.new(file)
|
28
25
|
end
|
29
26
|
|
30
27
|
def size(humanable = false)
|
@@ -36,7 +33,7 @@ module AppInfo
|
|
36
33
|
end
|
37
34
|
alias file_type os
|
38
35
|
|
39
|
-
def_delegators
|
36
|
+
def_delegators :apk, :manifest, :resource, :dex
|
40
37
|
|
41
38
|
def_delegators :manifest, :version_name, :package_name,
|
42
39
|
:use_permissions, :components
|
@@ -93,13 +90,13 @@ module AppInfo
|
|
93
90
|
end
|
94
91
|
|
95
92
|
def signs
|
96
|
-
|
93
|
+
apk.signs.each_with_object([]) do |(path, sign), obj|
|
97
94
|
obj << Sign.new(path, sign)
|
98
95
|
end
|
99
96
|
end
|
100
97
|
|
101
98
|
def certificates
|
102
|
-
|
99
|
+
apk.certificates.each_with_object([]) do |(path, certificate), obj|
|
103
100
|
obj << Certificate.new(path, certificate)
|
104
101
|
end
|
105
102
|
end
|
@@ -112,13 +109,17 @@ module AppInfo
|
|
112
109
|
components.select { |c| c.type == 'service' }
|
113
110
|
end
|
114
111
|
|
112
|
+
def apk
|
113
|
+
Zip.warn_invalid_date = false # fix invaild date format warnings
|
114
|
+
|
115
|
+
@apk ||= ::Android::Apk.new(@file)
|
116
|
+
end
|
117
|
+
|
115
118
|
def icons
|
116
119
|
unless @icons
|
117
|
-
|
118
|
-
|
119
|
-
@icons = @apk.icon.each_with_object([]) do |(path, data), obj|
|
120
|
+
@icons = apk.icon.each_with_object([]) do |(path, data), obj|
|
120
121
|
icon_name = File.basename(path)
|
121
|
-
icon_path = File.join(
|
122
|
+
icon_path = File.join(contents, File.dirname(path))
|
122
123
|
icon_file = File.join(icon_path, icon_name)
|
123
124
|
FileUtils.mkdir_p icon_path
|
124
125
|
File.open(icon_file, 'wb') { |f| f.write(data) }
|
@@ -134,6 +135,22 @@ module AppInfo
|
|
134
135
|
@icons
|
135
136
|
end
|
136
137
|
|
138
|
+
def clear!
|
139
|
+
return unless @contents
|
140
|
+
|
141
|
+
FileUtils.rm_rf(@contents)
|
142
|
+
|
143
|
+
@apk = nil
|
144
|
+
@contents = nil
|
145
|
+
@icons = nil
|
146
|
+
@app_path = nil
|
147
|
+
@info = nil
|
148
|
+
end
|
149
|
+
|
150
|
+
def contents
|
151
|
+
@contents ||= File.join(Dir.mktmpdir, "AppInfo-android-#{SecureRandom.hex}")
|
152
|
+
end
|
153
|
+
|
137
154
|
private
|
138
155
|
|
139
156
|
def manifest_values(path, key = 'name')
|
data/lib/app_info/dsym.rb
CHANGED
@@ -74,7 +74,17 @@ module AppInfo
|
|
74
74
|
@app_path
|
75
75
|
end
|
76
76
|
|
77
|
-
|
77
|
+
def clear!
|
78
|
+
return unless @contents
|
79
|
+
|
80
|
+
FileUtils.rm_rf(@contents)
|
81
|
+
|
82
|
+
@contents = nil
|
83
|
+
@app_path = nil
|
84
|
+
@info = nil
|
85
|
+
@object = nil
|
86
|
+
@macho_type = nil
|
87
|
+
end
|
78
88
|
|
79
89
|
def contents
|
80
90
|
unless @contents
|
data/lib/app_info/ipa.rb
CHANGED
@@ -147,7 +147,7 @@ module AppInfo
|
|
147
147
|
@app_path ||= Dir.glob(File.join(contents, 'Payload', '*.app')).first
|
148
148
|
end
|
149
149
|
|
150
|
-
def
|
150
|
+
def clear!
|
151
151
|
return unless @contents
|
152
152
|
|
153
153
|
FileUtils.rm_rf(@contents)
|
@@ -160,12 +160,12 @@ module AppInfo
|
|
160
160
|
@info = nil
|
161
161
|
end
|
162
162
|
|
163
|
-
private
|
164
|
-
|
165
163
|
def contents
|
166
164
|
@contents ||= Util.unarchive(@file, path: 'ios')
|
167
165
|
end
|
168
166
|
|
167
|
+
private
|
168
|
+
|
169
169
|
def icons_root_path
|
170
170
|
iphone = 'CFBundleIcons'
|
171
171
|
ipad = 'CFBundleIcons~ipad'
|
data/lib/app_info/proguard.rb
CHANGED
@@ -86,5 +86,18 @@ module AppInfo
|
|
86
86
|
def contents
|
87
87
|
@contents ||= Util.unarchive(@file, path: 'proguard')
|
88
88
|
end
|
89
|
+
|
90
|
+
def clear!
|
91
|
+
return unless @contents
|
92
|
+
|
93
|
+
FileUtils.rm_rf(@contents)
|
94
|
+
|
95
|
+
@contents = nil
|
96
|
+
@manifest = nil
|
97
|
+
@mapping_path = nil
|
98
|
+
@metadata_path = nil
|
99
|
+
@manifest_path = nil
|
100
|
+
@symbol_path = nil
|
101
|
+
end
|
89
102
|
end
|
90
103
|
end
|
data/lib/app_info/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app-info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icyleaf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: CFPropertyList
|