icyleaf / app-info

Teardown parser tool for mac, windows and mobile app (ipa, apk and aab file) and dSYM.zip file, analysis metedata like version, name, icon etc.
MIT License
51 stars 8 forks source link

Android aab format support #36

Closed icyleaf closed 2 years ago

icyleaf commented 2 years ago

base/manifest/AndroidManifest.xml is compiled into protocol buffer format which makes it easier for tooling to transform when required.

Resources:

DreamPWJ commented 2 years ago

急需啊, 啥时候能支持?用aab格式直接没发用了 @icyleaf

icyleaf commented 2 years ago

没计划哟,着急的话可以考虑贡献下🤪

DreamPWJ commented 2 years ago

但是我不会ruby啊, 提供一下思路 如何获取应用名称啊, 版本号啥的应该好获取

icyleaf commented 2 years ago

我已经把 Resources 链接放上去了呀,感兴趣的自己了解下

icyleaf commented 2 years ago

终端安装

gem install app-info -v 2.7.0.beta1

ruby bundle 安装

gem 'app-info`, '~> 2.7.0.beta1`
DreamPWJ commented 2 years ago

报错 @icyleaf 08:33:11 + ruby /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb app/build/outputs/apk/atkj/debug/com.antai.property_DEBUG_5.1.1_2021-09-29_atkj.apk app_info.txt 08:33:11 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin20/rbconfig.rb:229: warning: Insecure world writable dir /opt/homebrew in PATH, mode 040777 08:33:11 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require': cannot load such file -- google/protobuf_c (LoadError) 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/protobuf.rb:51:in rescue in <top (required)>' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/protobuf.rb:48:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/models/Resources_pb.rb:4:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:3:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/aab.rb:3:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info.rb:16:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:117:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:117:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app-info.rb:3:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in rescue in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:inrequire' 08:33:11 from /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb:3:in <main>' 08:33:11 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire': dlopen(/Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/2.6/protobuf_c.bundle, 0x0009): could not use '/Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/2.6/protobuf_c.bundle' because it is not a compatible arch - /Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/2.6/protobuf_c.bundle (LoadError) 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/google-protobuf-3.18.0-universal-darwin/lib/google/protobuf.rb:49:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/models/Resources_pb.rb:4:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:3:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/aab.rb:3:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info.rb:16:in<top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:117:in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:117:inrequire' 08:33:11 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app-info.rb:3:in <top (required)>' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:inrequire' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in rescue in require' 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:inrequire' 08:33:11 from /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb:3:in <main>' 08:33:11 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:inrequire': cannot load such file -- app-info (LoadError) 08:33:11 from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in require' 08:33:11 from /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb:3:in

'

icyleaf commented 2 years ago

fastlane env 输出的结果发下

DreamPWJ commented 2 years ago

@icyleaf M1芯片 swift-driver version: 1.26.9

✅ fastlane environment ✅

Stack

Key Value
OS 11.6
Ruby 2.6.3
Bundler? false
Git git version 2.30.1 (Apple Git-130)
Installation Source /usr/local/bin/fastlane
Host macOS 11.6 (20G165)
Ruby Lib Dir /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
OpenSSL Version LibreSSL 2.8.3
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 13.0
Swift Version 5.5

System Locale

Variable Value
LANG zh_CN.UTF-8
LC_ALL zh_CN.UTF-8
LANGUAGE zh_CN.UTF-8

fastlane files:

No Fastfile found

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.195.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems | Gem | Version | | ------------------------------- | ------------ | | did_you_mean | 1.3.0 | | rouge | 2.0.7 | | xcpretty | 0.3.0 | | terminal-notifier | 2.0.0 | | unicode-display_width | 1.7.0 | | terminal-table | 1.8.0 | | plist | 3.6.0 | | public_suffix | 4.0.6 | | addressable | 2.8.0 | | multipart-post | 2.0.0 | | word_wrap | 1.0.0 | | optparse | 0.1.1 | | tty-screen | 0.8.1 | | tty-cursor | 0.7.1 | | tty-spinner | 0.9.3 | | artifactory | 3.0.15 | | babosa | 1.0.4 | | colored | 1.2 | | highline | 2.0.3 | | commander | 4.6.0 | | faraday-cookie_jar | 0.0.7 | | gh_inspector | 1.1.3 | | mini_magick | 4.11.0 | | naturally | 2.2.1 | | security | 0.1.3 | | xcpretty-travis-formatter | 1.0.1 | | dotenv | 2.7.6 | | simctl | 1.6.8 | | retriable | 3.1.2 | | memoist | 0.16.2 | | multi_json | 1.15.0 | | os | 1.1.1 | | googleauth | 0.17.0 | | httpclient | 2.8.3 | | google-apis-core | 0.4.1 | | google-apis-androidpublisher_v3 | 0.10.0 | | rexml | 3.2.5 | | nanaimo | 0.3.0 | | colored2 | 3.1.2 | | claide | 1.0.3 | | CFPropertyList | 3.0.3 | | atomos | 0.1.3 | | xcodeproj | 1.21.0 | | excon | 0.85.0 | | ruby2_keywords | 0.0.5 | | faraday-rack | 1.0.0 | | faraday-patron | 1.0.0 | | faraday-net_http_persistent | 1.2.0 | | faraday-net_http | 1.0.1 | | faraday-httpclient | 1.0.1 | | faraday-excon | 1.1.0 | | faraday-em_synchrony | 1.0.0 | | faraday-em_http | 1.0.0 | | faraday | 1.7.0 | | unf_ext | 0.0.7.7 | | unf | 0.1.4 | | domain_name | 0.5.20190701 | | http-cookie | 1.0.4 | | faraday_middleware | 1.1.0 | | fastimage | 2.2.5 | | json | 2.5.1 | | rubyzip | 2.3.2 | | bundler | 2.2.16 | | jwt | 2.2.3 | | webrick | 1.7.0 | | signet | 0.15.0 | | mini_mime | 1.1.1 | | trailblazer-option | 0.1.1 | | declarative | 0.0.20 | | uber | 0.1.0 | | representable | 3.1.1 | | google-apis-playcustomapp_v1 | 0.5.0 | | rake | 13.0.6 | | digest-crc | 0.6.4 | | google-apis-storage_v1 | 0.6.0 | | google-apis-iamcredentials_v1 | 0.7.0 | | google-cloud-errors | 1.1.0 | | google-cloud-env | 1.5.0 | | google-cloud-core | 1.6.0 | | google-cloud-storage | 1.34.1 | | emoji_regex | 3.2.2 | | aws-eventstream | 1.1.1 | | aws-sigv4 | 1.2.4 | | aws-partitions | 1.492.0 | | jmespath | 1.4.0 | | aws-sdk-core | 3.119.1 | | aws-sdk-kms | 1.46.0 | | aws-sdk-s3 | 1.100.0 | | forwardable | 1.2.0 | | logger | 1.3.0 | | date | 2.0.0 | | stringio | 0.0.2 | | ipaddr | 1.2.2 | | openssl | 2.1.2 | | zlib | 1.0.0 | | mutex_m | 0.1.0 | | ostruct | 0.1.0 | | strscan | 1.0.0 | | io-console | 0.4.7 | | fileutils | 1.1.0 | | etc | 1.0.1 | | libxml-ruby | 3.2.1 | | psych | 3.1.0 |
icyleaf commented 2 years ago

我在你上面 fastlane env 输出的 gem 里面并没有找到 app-info 呢

DreamPWJ commented 2 years ago

我直接用的 sudo gem install app-info 不是fastlane插件@icyleaf

icyleaf commented 2 years ago

那你试试先卸载 google-protobuf 后再安装的时候传一个参数

gem uninstall google-protobuf
gem install google-protobuf --platform=ruby

不确定是不是 M1 的问题,我目前在多台 Intel Mac 和 Linux 都没有问题

DreamPWJ commented 2 years ago

/Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/apk.rb:27:in `size': wrong number of arguments (given 1, expected 0) (ArgumentError) @icyleaf

icyleaf commented 2 years ago

你传参有问题,size(humanable: true)

DreamPWJ commented 2 years ago

该参数了啊

icyleaf commented 2 years ago

更新日志早就说了呢 https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md#260-2021-08-24

DreamPWJ commented 2 years ago

@icyleaf aab 还是不行14:48:07 + ruby /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb app/build/outputs/bundle/atkjDebug/app-atkj-debug.aab app_info.txt 14:48:07 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin20/rbconfig.rb:229: warning: Insecure world writable dir /opt/homebrew in PATH, mode 040777 14:48:07 /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/helper.rb:102: warning: constant ::Data is deprecated 14:48:07 /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/helper.rb:103: warning: constant ::Data is deprecated 14:48:07 /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:in new': allocator undefined for Data (TypeError) 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:inblock in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in each' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:ineach_with_object' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:58:inparse' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:14:in initialize' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:innew' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:in block in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:ineach' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in each_with_object' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:indefine_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:58:in parse' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:14:ininitialize' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:in new' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:inblock in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in each' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:ineach_with_object' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:58:inparse' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:14:in initialize' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:innew' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:92:in block in define_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:ineach' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:in each_with_object' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:87:indefine_children' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:58:in parse' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:14:ininitialize' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:112:in new' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/protobuf/manifest.rb:112:inparse' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/aab.rb:161:in manifest' 14:48:07 from /Library/Ruby/Gems/2.6.0/gems/app-info-2.7.0.beta1/lib/app_info/aab.rb:56:inname' 14:48:07 from /Users/liming/jenkins/jenkins/workspace/test-android-app/ci/_jenkins/fastlane/actions/app_info.rb:15:in `

' 14:48:07 ["app/build/outputs/bundle/atkjDebug/app-atkj-debug.aab", "app_info.txt"]

icyleaf commented 2 years ago

升级下 2.7.0.beta2 再试试,上面的问题看来在 M1 上还是有问题

DreamPWJ commented 2 years ago

2.7.0.beta2 可以了 牛逼 但是现在aab包不能直接安装又卡住了

icyleaf commented 2 years ago

我看 google-protobuf 在 3.7.0.rc2 支持了 ruby 2.6, 3.18.0 支持了 M1 理论上不需要加任何参数安装就 ok 的

icyleaf commented 2 years ago

@DreamPWJ 2.7.0.beta2 在安装、部署和使用上还有啥坑了吗?没啥坑我就发布正式版本了 🍡

DreamPWJ commented 2 years ago

@DreamPWJ 2.7.0.beta2 在安装、部署和使用上还有啥坑了吗?没啥坑我就发布正式版本了 🍡

没发现其他问题,现在还没用起来,因为aab不能直接安装

icyleaf commented 2 years ago

我已经发布了正式版,已经在 zealot 使用没有任何问题了