@seayoo-web/app-info
v1.0.1
Published
app info parser
Downloads
35
Readme
app-info
读取 .apk .ipa .app 的应用元信息
读取 apk 文件
import { AndroidAppParser } from "@seayoo-web/app-info";
// file 类型 Uint8Array | ArrayBuffer | Blob;
const parser = new AndroidAppParser(file);
const appInfo = await parser.parse();
if (appInfo instanceof Error) {
console.log("apk parse error", appInfo.message);
} else {
console.log(appInfo);
/**
{
"package": "...",
"versionCode": 9999,
"versionName": "9999.0.0",
"icon": "...",
"manifest": {...}
*/
}
const fileContent = await parser.readFile("AndroidManifest.xml", "text");读取 ipa 文件
import { IosAppParser } from "@seayoo-web/app-info";
// 由于资源保护,.ipa 文件不解析图标资源
const parser = new IosAppParser(file);
const appInfo = await parser.parse();
if (appInfo instanceof Error) {
console.log("ipa parse error", appInfo.message);
} else {
console.log(appInfo);
/**
{
"package": "...",
"versionCode": 9999,
"versionName": "9999.0.0",
"icon": "...",
"plist": {...},
}
*/
}
// 读取指定模块的 plist 信息
const frameworkPlist = await parser.parseFramework("ComboSDKSentry");
if (frameworkPlist instanceof Error) {
console.log("ComboSDKSentry parse error", frameworkPlist.message);
} else {
console.log(frameworkPlist);
}
// 读取指定文件
const fileContent = await parser.readFile("ComboConfig.json", "text");读取鸿蒙 app 文件
import { HosAppParser } from "@seayoo-web/app-info";
const parser = new HosAppParser(file);
// 设置 ignoreIcon: true 可以忽略图标解析以节约解析时间
const appInfo = await parser.parse({ ignoreIcon: false });
if (appInfo instanceof Error) {
console.log("hos app parse error", appInfo.message);
} else {
console.log(appInfo);
/**
{
"package": "...",
"versionCode": 9999,
"versionName": "9999.0.0",
"icon": "...",
"pack": {...},
}
*/
}
// 读取 app 下文件
const fileContent = await parser.readFile("pack.info", "blob");
// 读取主包下的文件
const fileContent = await parser.readEntryHapFile("pkgInfo.json", "text");