app-info 2.8.2 → 3.0.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 +4 -4
- data/.github/dependabot.yml +12 -7
- data/.github/workflows/ci.yml +7 -5
- data/.github/workflows/create_release.yml +15 -0
- data/.rubocop.yml +33 -11
- data/CHANGELOG.md +107 -1
- data/Gemfile +10 -5
- data/README.md +82 -15
- data/Rakefile +11 -0
- data/app_info.gemspec +14 -5
- data/lib/app_info/aab.rb +76 -110
- data/lib/app_info/android/signature.rb +114 -0
- data/lib/app_info/android/signatures/base.rb +53 -0
- data/lib/app_info/android/signatures/info.rb +158 -0
- data/lib/app_info/android/signatures/v1.rb +63 -0
- data/lib/app_info/android/signatures/v2.rb +121 -0
- data/lib/app_info/android/signatures/v3.rb +131 -0
- data/lib/app_info/android/signatures/v4.rb +18 -0
- data/lib/app_info/android.rb +181 -0
- data/lib/app_info/apk.rb +77 -112
- data/lib/app_info/apple.rb +192 -0
- data/lib/app_info/certificate.rb +176 -0
- data/lib/app_info/const.rb +76 -0
- data/lib/app_info/core_ext/object/try.rb +3 -1
- data/lib/app_info/core_ext/string/inflector.rb +2 -0
- data/lib/app_info/dsym/debug_info.rb +81 -0
- data/lib/app_info/dsym/macho.rb +62 -0
- data/lib/app_info/dsym.rb +35 -135
- data/lib/app_info/error.rb +3 -1
- data/lib/app_info/file.rb +49 -0
- data/lib/app_info/helper/archive.rb +37 -0
- data/lib/app_info/helper/file_size.rb +25 -0
- data/lib/app_info/helper/generate_class.rb +29 -0
- data/lib/app_info/helper/protobuf.rb +12 -0
- data/lib/app_info/helper/signatures.rb +229 -0
- data/lib/app_info/helper.rb +5 -128
- data/lib/app_info/info_plist.rb +66 -29
- data/lib/app_info/ipa/framework.rb +4 -4
- data/lib/app_info/ipa.rb +61 -135
- data/lib/app_info/macos.rb +54 -102
- data/lib/app_info/mobile_provision.rb +66 -48
- data/lib/app_info/pe.rb +322 -0
- data/lib/app_info/png_uncrush.rb +25 -5
- data/lib/app_info/proguard.rb +39 -22
- data/lib/app_info/protobuf/manifest.rb +22 -11
- data/lib/app_info/protobuf/models/Configuration_pb.rb +1 -0
- data/lib/app_info/protobuf/models/README.md +8 -1
- data/lib/app_info/protobuf/models/Resources.proto +51 -0
- data/lib/app_info/protobuf/models/Resources_pb.rb +42 -0
- data/lib/app_info/protobuf/resources.rb +5 -5
- data/lib/app_info/version.rb +1 -1
- data/lib/app_info.rb +93 -43
- metadata +57 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77ca2c693d75ac261a17cb20e06e643a5de75a4d9eb15b1b5f83a151780368df
|
4
|
+
data.tar.gz: e9d70889b047b04b60f50a70a20d9651145486c855e059999a8037828e53e9a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c186bac4cab303067045830362c0f95deefc7c2488375f8dcb2113ea1bbc019982d645f4a29c44ab946e55c238c7e4820d0f9c1f443346143f4ed4183ebcaf32
|
7
|
+
data.tar.gz: 3755af0041ef4068a6e28399d77c17744fe7f76cf321aca94e719b19fcf1357ad64a06a63b191a9960a347423d874355dfda6995208a0ae992769de5635e2582
|
data/.github/dependabot.yml
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
version: 2
|
2
2
|
updates:
|
3
|
-
- package-ecosystem: bundler
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
- package-ecosystem: bundler
|
4
|
+
directory: "/"
|
5
|
+
schedule:
|
6
|
+
interval: daily
|
7
|
+
time: "21:00"
|
8
|
+
timezone: Asia/Shanghai
|
9
|
+
open-pull-requests-limit: 10
|
10
|
+
|
11
|
+
- package-ecosystem: "github-actions"
|
12
|
+
directory: "/"
|
13
|
+
schedule:
|
14
|
+
interval: "daily"
|
data/.github/workflows/ci.yml
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
name: CI
|
2
2
|
on:
|
3
3
|
push:
|
4
|
+
paths-ignore:
|
5
|
+
- '*.md'
|
4
6
|
branches:
|
5
|
-
-
|
7
|
+
- main
|
6
8
|
pull_request:
|
7
9
|
|
8
10
|
jobs:
|
@@ -12,11 +14,11 @@ jobs:
|
|
12
14
|
strategy:
|
13
15
|
fail-fast: false
|
14
16
|
matrix:
|
15
|
-
ruby: [ ruby-2.5, ruby-2.6, ruby-2.7, ruby-3.0 ]
|
17
|
+
ruby: [ ruby-2.5, ruby-2.6, ruby-2.7, ruby-3.0, ruby-3.1, ruby-3.2 ]
|
16
18
|
os: [ ubuntu-latest ]
|
17
19
|
|
18
20
|
steps:
|
19
|
-
- uses: actions/checkout@
|
21
|
+
- uses: actions/checkout@v3
|
20
22
|
|
21
23
|
- uses: ruby/setup-ruby@v1
|
22
24
|
with:
|
@@ -30,11 +32,11 @@ jobs:
|
|
30
32
|
runs-on: ubuntu-latest
|
31
33
|
|
32
34
|
steps:
|
33
|
-
- uses: actions/checkout@
|
35
|
+
- uses: actions/checkout@v3
|
34
36
|
|
35
37
|
- uses: ruby/setup-ruby@v1
|
36
38
|
with:
|
37
|
-
ruby-version:
|
39
|
+
ruby-version: 3.0
|
38
40
|
bundler-cache: true
|
39
41
|
|
40
42
|
- name: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -27,6 +27,24 @@ AllCops:
|
|
27
27
|
- 'lib/app_info/protobuf/models/*_pb.rb'
|
28
28
|
- 'main.rb'
|
29
29
|
|
30
|
+
Layout/LineLength:
|
31
|
+
Max: 100
|
32
|
+
Exclude:
|
33
|
+
- 'lib/app_info/helper/signatures.rb'
|
34
|
+
- 'lib/app_info/android/signatures/info.rb'
|
35
|
+
- 'lib/app_info/apk.rb'
|
36
|
+
|
37
|
+
Lint/AssignmentInCondition:
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Lint/UnusedMethodArgument:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/app_info/file.rb'
|
43
|
+
|
44
|
+
Lint/UselessAssignment:
|
45
|
+
Exclude:
|
46
|
+
- 'lib/app_info/android/signatures/v3.rb'
|
47
|
+
|
30
48
|
Metrics/AbcSize:
|
31
49
|
Max: 100
|
32
50
|
|
@@ -36,13 +54,15 @@ Metrics/BlockLength:
|
|
36
54
|
- 'lib/app_info/mobile_provision.rb'
|
37
55
|
|
38
56
|
Metrics/MethodLength:
|
39
|
-
Max:
|
57
|
+
Max: 30
|
40
58
|
Exclude:
|
41
|
-
- 'lib/app_info/png_uncrush.rb'
|
42
59
|
- 'lib/app_info/mobile_provision.rb'
|
60
|
+
- 'lib/app_info/android/signatures/v2.rb'
|
61
|
+
- 'lib/app_info/android/signatures/v3.rb'
|
43
62
|
|
44
|
-
|
45
|
-
|
63
|
+
Metrics/ParameterLists:
|
64
|
+
Exclude:
|
65
|
+
- 'lib/app_info/helper/signatures.rb'
|
46
66
|
|
47
67
|
Metrics/ClassLength:
|
48
68
|
CountComments: false
|
@@ -54,12 +74,16 @@ Metrics/CyclomaticComplexity:
|
|
54
74
|
Metrics/PerceivedComplexity:
|
55
75
|
Max: 18
|
56
76
|
|
57
|
-
|
58
|
-
|
77
|
+
Metrics/BlockNesting:
|
78
|
+
Exclude:
|
79
|
+
- 'lib/app_info/dsym.rb'
|
59
80
|
|
60
81
|
Style/Documentation:
|
61
82
|
Enabled: false
|
62
83
|
|
84
|
+
Style/ClassAndModuleChildren:
|
85
|
+
Enabled: false
|
86
|
+
|
63
87
|
Style/PerlBackrefs:
|
64
88
|
Exclude:
|
65
89
|
- 'lib/app_info/core_ext/string/inflector.rb'
|
@@ -67,10 +91,8 @@ Style/PerlBackrefs:
|
|
67
91
|
Style/DocumentDynamicEvalDefinition:
|
68
92
|
Enabled: false
|
69
93
|
|
70
|
-
Metrics/BlockNesting:
|
71
|
-
Exclude:
|
72
|
-
- 'lib/app_info/dsym.rb'
|
73
|
-
|
74
|
-
|
75
94
|
Style/SlicingWithRange:
|
76
95
|
Enabled: false
|
96
|
+
|
97
|
+
Style/ClassVars:
|
98
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,104 @@ 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
|
+
## [3.0.0] (2023-04-18)
|
13
|
+
|
14
|
+
### Added
|
15
|
+
|
16
|
+
- New Windows PE format parser. [#47](https://github.com/icyleaf/app_info/pull/47)
|
17
|
+
- Android parser add v2, v3 scheme signature support. [#55](https://github.com/icyleaf/app_info/pull/55]
|
18
|
+
- dSYM parer accept multi dSYM target in a zip file. [#56](https://github.com/icyleaf/app_info/pull/56)
|
19
|
+
- Better document for yardoc.
|
20
|
+
- Android parser `.icons` method add exclude param to filter icons.
|
21
|
+
- Add `.files` method to proguard parser.
|
22
|
+
|
23
|
+
### Changed
|
24
|
+
|
25
|
+
- Add `AppInfo::File` base class for all parsers.
|
26
|
+
- Add `AppInfo::Certifiate` X509 certificate wrapped and apply in Android/MobileProvision.
|
27
|
+
- Re-organize categories `.platform` to `.manufacturer`, `.platform` and `.device` for all parsers.
|
28
|
+
- Remove `.sign_version` method in Android parser.
|
29
|
+
- Rename `.file_type` to `.format` method in all parers and return a `AppInfo::Format` type.
|
30
|
+
- Remove duplice `AppInfo::AndroidDevice` class.
|
31
|
+
- Remove `AppInfo::MobileProvision::DeveloperCertificate` class, use `AppInfo::Certifiate` instead.
|
32
|
+
- Deprecate `.signs` and `.certifiates` methods in Android parser, use `.signatures` instead.
|
33
|
+
- Deprecate `.developer_certs` method in MobileProvision parser, use `.certificates` instead.
|
34
|
+
- Change ExportType values type to symbol both IPA and macOS parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
|
35
|
+
|
36
|
+
## [3.0.0.beta4] (2023-04-11)
|
37
|
+
|
38
|
+
### Added
|
39
|
+
|
40
|
+
- Add `.files` method to proguard parser.
|
41
|
+
|
42
|
+
### Fixed
|
43
|
+
|
44
|
+
- Fail to extract dsym contents.
|
45
|
+
|
46
|
+
## [3.0.0.beta3] (2023-04-05)
|
47
|
+
|
48
|
+
### Added
|
49
|
+
|
50
|
+
- Android parser `.icons` method add exclude param to filter icons.
|
51
|
+
|
52
|
+
### Changed
|
53
|
+
|
54
|
+
- Rename `.platform` to `.manufacturer`, rename `.opera_sytem` to `.platform` for all parsers.
|
55
|
+
|
56
|
+
### Fixed
|
57
|
+
|
58
|
+
- Minor fixes.
|
59
|
+
|
60
|
+
## [3.0.0.beta2] (2023-04-04)
|
61
|
+
|
62
|
+
### Changed
|
63
|
+
|
64
|
+
- Re-organize categories `.platform`, `.opera_sytem` and `.device` for all parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
|
65
|
+
- Change ExportType values type to symbol both IPA and macOS parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
|
66
|
+
|
67
|
+
## [3.0.0.beta1] (2023-04-04)
|
68
|
+
|
69
|
+
### Added
|
70
|
+
|
71
|
+
- New Windows PE format parser. [#47](https://github.com/icyleaf/app_info/pull/47)
|
72
|
+
- Android parser add v2, v3 scheme signature support. [#55](https://github.com/icyleaf/app_info/pull/55]
|
73
|
+
- dSYM parer accept multi dSYM target in a zip file. [#56](https://github.com/icyleaf/app_info/pull/56)
|
74
|
+
- Better document for yardoc.
|
75
|
+
|
76
|
+
### Changed
|
77
|
+
|
78
|
+
- Add `AppInfo::File` base class for all parsers.
|
79
|
+
- Add `AppInfo::Certifiate` X509 certificate wrapped and apply in Android/MobileProvision.
|
80
|
+
- Remove `.sign_version` method in Android parser.
|
81
|
+
- Rename `.file_type` to `.format` method in all parers and return a `AppInfo::Format` type.
|
82
|
+
- Remove duplice `AppInfo::AndroidDevice` class.
|
83
|
+
- Remove `AppInfo::MobileProvision::DeveloperCertificate` class, use `AppInfo::Certifiate` instead.
|
84
|
+
- Deprecate `.signs` and `.certifiates` methods in Android parser, use `.signatures` instead.
|
85
|
+
- Deprecate `.developer_certs` method in MobileProvision parser, use `.certificates` instead.
|
86
|
+
|
87
|
+
### Fixed
|
88
|
+
|
89
|
+
- Fixed minor typo.
|
90
|
+
|
91
|
+
## [2.8.5] (2023-03-16)
|
92
|
+
|
93
|
+
### Fixed
|
94
|
+
|
95
|
+
- Sync the latest appt2 proto files to parse Android SDK 31+ for aab parser. [#51](https://github.com/icyleaf/app_info/issues/51) (thanks @[UpBra](https://github.com/UpBra))
|
96
|
+
|
97
|
+
## [2.8.4] (2023-03-09)
|
98
|
+
|
99
|
+
### Fixed
|
100
|
+
|
101
|
+
- Force android device return as boolean for aab parser.
|
102
|
+
- Handle string resources referencing other resources for apk parser.
|
103
|
+
|
104
|
+
## [2.8.3] (2022-06-27)
|
105
|
+
|
106
|
+
### Fixed
|
107
|
+
|
108
|
+
- Fix properties in `AndroidManifest.xml` of aab file with null state prediction.
|
109
|
+
|
12
110
|
## [2.8.2] (2022-02-13)
|
13
111
|
|
14
112
|
### Fixed
|
@@ -228,7 +326,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
228
326
|
|
229
327
|
- Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
|
230
328
|
|
231
|
-
[Unreleased]: https://github.com/icyleaf/app-info/compare/
|
329
|
+
[Unreleased]: https://github.com/icyleaf/app-info/compare/v3.0.0..HEAD
|
330
|
+
[3.0.0]: https://github.com/icyleaf/app-info/compare/v2.8.5...v3.0.0
|
331
|
+
[3.0.0.beta4]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta3...v3.0.0.beta4
|
332
|
+
[3.0.0.beta3]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta2...v3.0.0.beta3
|
333
|
+
[3.0.0.beta2]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta1...v3.0.0.beta2
|
334
|
+
[3.0.0.beta1]: https://github.com/icyleaf/app-info/compare/v2.8.5...v3.0.0.beta1
|
335
|
+
[2.8.5]: https://github.com/icyleaf/app-info/compare/v2.8.4...v2.8.5
|
336
|
+
[2.8.4]: https://github.com/icyleaf/app-info/compare/v2.8.3...v2.8.4
|
337
|
+
[2.8.3]: https://github.com/icyleaf/app-info/compare/v2.8.2...v2.8.3
|
232
338
|
[2.8.2]: https://github.com/icyleaf/app-info/compare/v2.8.1...v2.8.2
|
233
339
|
[2.8.1]: https://github.com/icyleaf/app-info/compare/v2.8.0...v2.8.1
|
234
340
|
[2.8.0]: https://github.com/icyleaf/app-info/compare/v2.7.0...v2.8.0
|
data/Gemfile
CHANGED
@@ -5,8 +5,13 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in app-info.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
group :development do
|
9
|
+
gem 'awesome_print'
|
10
|
+
gem 'debug' # For ruby 3.0+\
|
11
|
+
gem 'yard'
|
12
|
+
end
|
13
|
+
|
14
|
+
group :development, :test do
|
15
|
+
gem 'rspec'
|
16
|
+
gem 'rubocop'
|
17
|
+
end
|
data/README.md
CHANGED
@@ -1,22 +1,38 @@
|
|
1
|
-
#
|
1
|
+
# app-info
|
2
2
|
|
3
|
-
[](.github/workflows/ci.yml)
|
4
|
+
[](https://rubygems.org/gems/app-info)
|
5
|
+
[](https://github.com/icyleaf/app_info/actions/workflows/ci.yml)
|
6
|
+
[](LICENSE)
|
7
7
|
|
8
|
-
Teardown tool for mobile app (ipa, apk and aab file), macOS app
|
8
|
+
Teardown tool for mobile app (ipa, apk and aab file), macOS app, dSYM.zip file and Windows PE file.
|
9
|
+
Analysis metedata like version, name, icon etc.
|
9
10
|
|
10
11
|
## Support
|
11
12
|
|
12
13
|
- Android file
|
13
14
|
- `.apk`
|
14
15
|
- `.aab` (Androld App Bundle)
|
15
|
-
- iOS
|
16
|
+
- iOS file
|
17
|
+
- `.ipa`
|
16
18
|
- `Info.plist` file
|
17
19
|
- `.mobileprovision`/`.provisionprofile` file
|
18
|
-
-
|
19
|
-
-
|
20
|
+
- macOS App file (archived by starnd pkzip format)
|
21
|
+
- `.app.zip`
|
22
|
+
- dSYMs file (archived by starnd pkzip format)
|
23
|
+
- `.dSYM.zip`
|
24
|
+
- Windows PE file
|
25
|
+
- `.exe`
|
26
|
+
- `.zip` (binary in a zip file)
|
27
|
+
|
28
|
+
<hr />
|
29
|
+
|
30
|
+

|
31
|
+

|
32
|
+
|
33
|
+
[Zealot](https://zealot.ews.im/docs/user-guide/) is a self-hosted Beta App Distribution for Android, iOS and macOS apps. app_info it the core inside.
|
34
|
+
|
35
|
+
<hr />
|
20
36
|
|
21
37
|
## Installation
|
22
38
|
|
@@ -53,6 +69,8 @@ parser = AppInfo.parse('android.aab')
|
|
53
69
|
parser = AppInfo.parse('u-u-i-d.mobileprovision')
|
54
70
|
parser = AppInfo.parse('macOS.App.zip')
|
55
71
|
parser = AppInfo.parse('App.dSYm.zip')
|
72
|
+
parser = AppInfo.parse('win.exe')
|
73
|
+
parser = AppInfo.parse('win.zip')
|
56
74
|
|
57
75
|
# If detect file type failed, you can parse in other way
|
58
76
|
parser = AppInfo::IPA.new('iphone.ipa')
|
@@ -62,6 +80,7 @@ parser = AppInfo::InfoPlist.new('Info.plist')
|
|
62
80
|
parser = AppInfo::MobileProvision.new('uuid.mobileprovision')
|
63
81
|
parser = AppInfo::Macos.new('App.dSYm.zip')
|
64
82
|
parser = AppInfo::DSYM.new('App.dSYm.zip')
|
83
|
+
parser = AppInfo::PE.new('win.exe')
|
65
84
|
```
|
66
85
|
|
67
86
|
### iOS
|
@@ -208,12 +227,8 @@ android.deep_links
|
|
208
227
|
android.schemes
|
209
228
|
# => ['appinfo']
|
210
229
|
|
211
|
-
# get
|
212
|
-
android.
|
213
|
-
# => [...]
|
214
|
-
|
215
|
-
# get certificate list (only v1 sign)
|
216
|
-
android.certificates
|
230
|
+
# get v1-v3 scheme singature information (included unverified certificate and more)
|
231
|
+
android.signatures
|
217
232
|
# => [...]
|
218
233
|
```
|
219
234
|
|
@@ -301,6 +316,58 @@ dsym.machos.each do |macho|
|
|
301
316
|
end
|
302
317
|
```
|
303
318
|
|
319
|
+
### Windows
|
320
|
+
|
321
|
+
Accept any PE format file, such like `.exe` or `.exe` binary fin a zip file.
|
322
|
+
|
323
|
+
```ruby
|
324
|
+
win = AppInfo.parse('win.exe')
|
325
|
+
|
326
|
+
# get given file size
|
327
|
+
win.size
|
328
|
+
# => 3093823
|
329
|
+
|
330
|
+
# get given file size in human reable.
|
331
|
+
win.size(human_size: true)
|
332
|
+
# => 29 MB
|
333
|
+
|
334
|
+
# get given file size
|
335
|
+
win.binary_size
|
336
|
+
# => 20940
|
337
|
+
|
338
|
+
# get given file size in human reable.
|
339
|
+
win.size(human_size: true)
|
340
|
+
# => 20 MB
|
341
|
+
|
342
|
+
# get product name
|
343
|
+
win.name
|
344
|
+
# => AppInfo
|
345
|
+
|
346
|
+
# get app company name
|
347
|
+
win.company_name
|
348
|
+
# => EWS Studio
|
349
|
+
|
350
|
+
# get app product version (alias to release_version)
|
351
|
+
win.product_version
|
352
|
+
# => 1.0.0
|
353
|
+
|
354
|
+
# get app assembly version (alias to build_version)
|
355
|
+
win.assembly_version
|
356
|
+
# => 1.0.0
|
357
|
+
|
358
|
+
# detect architecture(s)
|
359
|
+
win.archs
|
360
|
+
# => x64
|
361
|
+
|
362
|
+
# get all imports files
|
363
|
+
win.imports
|
364
|
+
# => [KERNEL32.dll, ...]
|
365
|
+
|
366
|
+
# get app icons (bmp format image)
|
367
|
+
win.icons
|
368
|
+
# => [{:name=>"ICON.bmp", :file=>"{path}/ICON.bmp"}, :dimensions=>[64, 64]}, ...]
|
369
|
+
```
|
370
|
+
|
304
371
|
## CLI Shell (Interactive console)
|
305
372
|
|
306
373
|
It is possible to use this gem as a command line interface to parse mobile app:
|
data/Rakefile
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
4
4
|
require 'app_info'
|
5
|
+
require 'yard'
|
5
6
|
require 'bundler/gem_tasks'
|
6
7
|
require 'rspec/core/rake_task'
|
7
8
|
require 'rubocop/rake_task'
|
@@ -9,3 +10,13 @@ require 'rubocop/rake_task'
|
|
9
10
|
RSpec::Core::RakeTask.new(:spec)
|
10
11
|
|
11
12
|
task default: :spec
|
13
|
+
|
14
|
+
task :doc do
|
15
|
+
YARD::Rake::YardocTask.new do |t|
|
16
|
+
t.files = ['lib/**/*.rb', 'README.md', 'LICENSE']
|
17
|
+
# t.options = ['--any', '--extra', '--opts'] # optional
|
18
|
+
# t.stats_options = ['--list-undoc'] # optional
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
data/app_info.gemspec
CHANGED
@@ -21,16 +21,25 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.required_ruby_version = '>= 2.5'
|
22
22
|
|
23
23
|
spec.add_dependency 'CFPropertyList', '< 3.1.0', '>= 2.3.4'
|
24
|
-
spec.add_dependency 'image_size', '>= 1.5', '< 3.
|
24
|
+
spec.add_dependency 'image_size', '>= 1.5', '< 3.3'
|
25
25
|
spec.add_dependency 'ruby-macho', '>= 1.4', '< 4'
|
26
|
-
spec.add_dependency 'android_parser', '~> 2.
|
26
|
+
spec.add_dependency 'android_parser', '~> 2.6.0'
|
27
27
|
spec.add_dependency 'rubyzip', '>= 1.2', '< 3.0'
|
28
28
|
spec.add_dependency 'uuidtools', '>= 2.1.5', '< 2.3.0'
|
29
29
|
spec.add_dependency 'icns', '~> 0.2.0'
|
30
|
-
spec.add_dependency '
|
30
|
+
spec.add_dependency 'pedump', '~> 0.6.2'
|
31
|
+
spec.add_dependency 'google-protobuf', '>= 3.19.4', '< 3.23.0'
|
31
32
|
|
32
33
|
spec.add_development_dependency 'bundler', '>= 1.12'
|
33
34
|
spec.add_development_dependency 'rake', '>= 10.0'
|
34
|
-
|
35
|
-
spec.
|
35
|
+
|
36
|
+
spec.post_install_message = <<~ENDBANNER
|
37
|
+
AppInfo 3.0 is coming!
|
38
|
+
**********************
|
39
|
+
The public API of some AppInfo classes has been changed.
|
40
|
+
|
41
|
+
Please ensure that your Gemfiles and .gemspecs are suitably restrictive
|
42
|
+
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.8.5).
|
43
|
+
See https://github.com/icyleaf/app_info for details.
|
44
|
+
ENDBANNER
|
36
45
|
end
|