app-info-parser is a parser for parsing .ipa
or .apk
files. It will return the information with json from AndroidManifest.xml
or Info.plist
.
Node ✅
Browser
latest ✅ | latest ✅ | latest ✅ | latest ✅ | ❌ |
npx
npm install app-info-parser
# or yarn
yarn add app-info-parser
You can use app-info-parser by npx, if you don't want to install it. Run this command in your terminal:
npx app-info-parser -f <file-path> -o <output-path>
argument | type | description |
---|---|---|
-f | string | The path of file that you want to parse. |
-o | string | The output path that you want to save the parse result. Default is "./result.json" |
const AppInfoParser = require('app-info-parser')
const parser = new AppInfoParser('../packages/test.apk') // or xxx.ipa
parser.parse().then(result => {
console.log('app info ----> ', result)
console.log('icon base64 ----> ', result.icon)
}).catch(err => {
console.log('err ----> ', err)
})
<input type="file" name="file" id="file" onchange="fileSelect()">
<script src="https://github.com/chenquincy/app-info-parser/raw/master//unpkg.com/browse/app-info-parser/dist/app-info-parser.min.js"></script>
<script>
function fileSelect () {
const files = document.getElementById('file').files
const parser = new window.AppInfoParser(files[0])
parser.parse().then(result => {
console.log('app info ----> ', result)
console.log('icon base64 ----> ', result.icon)
}).catch(err => {
console.log('err ----> ', err)
})
}
</script>
You can use demand loading, when you only need one parser.
const ApkParser = require('app-info-parser/src/apk')
const parser = new ApkParser('../packages/test.apk')
parser.parse().then(result => {
console.log('app info ----> ', result)
console.log('icon base64 ----> ', result.icon)
}).catch(err => {
console.log('err ----> ', err)
})
const IpaParser = require('app-info-parser/src/ipa')
const parser = new IpaParser('../packages/test.ipa')
parser.parse().then(result => {
console.log('app info ----> ', result)
console.log('icon base64 ----> ', result.icon)
}).catch(err => {
console.log('err ----> ', err)
})
constructor(file)
file
Blob or File in browser, Path in Nodeparse: () => Promise<Object>
A function return a promise, which resolving the parse resultOpen source is not easy, you can buy me a coffee. Note your name or github id so I can add you to the donation list.
Wechat Pay ![]() |
Ali Pay ![]() |
❤️ Thanks these guys for donations. Contact me with email, if you had donated but not on the list.
Donors | Amount | Time |
---|---|---|
*明 | ¥100 | 2023-03-29 10:16 |
*明 | ¥100 | 2021-06-17 17:29 |
=*= | ¥6.66 | 2021-05-24 15:12 |
*学 | ¥6.66 | 2021-01-08 15:32 |
y*n | ¥6.66 | 2020-08-26 12:10 |
*明 | ¥100 | 2020-08-25 11:35 |
*肖 | ¥6.66 | 2020-07-31 19:54 |
O*s | ¥1 | 2020-05-26 16:01 |
**豪 | ¥6.66 | 2020-03-05 20:14 |
*大 | ¥6.66 | 2020-02-25 16:55 |
*风 | ¥1 | 2020-01-03 15:36 |
黄灰红 | ¥1 | 2019-12-10 17:53 |
zona.zhou | ¥1 | 2019-10-20 23:18 |
*。 | ¥66 | 2019-10-20 22:45 |
MIT
See this issue of vite, vite is not going support node global builtins and node specific api's on the client. Some of app-info-parser's deps didn't support browser env, most of them without maintain, so it can't be resolved.
Just use app-info-parser by CDN using(import by script element), don't use it with module import in vite.