@ expo/ 重新包装- app
Expo 应用程序的重新包装工具
API 文档
CLI 使用量
repack-app [options] [project-root]
选项
-p, --platform <platform>(需要): 重新包装应用程序的平台android或者说ios(中文(简体) )--source-app <path>(需要):源应用程序文件的路径(Android的APK/AAB,iOS的IPA)--android-build-tools-dir <path>: Android 构建工具目录的路径-w, --working-directory <path>: 工作目录的路径-o, --output <path>: 输出文物的路径-v, --verbose: 启用动词记录
Android 特定选项
--ks <path>: 键盘文件的路径--ks-pass <password>: keystore 密码( 支持的格式 :pass:<password>, (中文(简体) ),env:<name>, (中文(简体) ),file:<file>(中文(简体) )--ks-key-alias <alias>: keystore 密钥别名--ks-key-pass <password>: keystore 密钥密码( 支持的格式 :pass:<password>, (中文(简体) ),env:<name>, (中文(简体) ),file:<file>(中文(简体) )
iOS 特定选项
--signing-identity <identity>: 代码签名身份( Fastlane 后端, 只有 macOS )--provisioning-profile <path>: 提供配置文件的路径--certificate <path>: 路径 a.p12签名身份。 符号为 符号 而不是快跑道,通过 WASM 进行中——不需要 Xcode 或密钥链,所以它也在 Linux 上工作--key-password <password>: 密码.p12签名身份
套装选项
--embed-bundle-assets: 强制嵌入捆绑资产--bundle-assets-sourcemap-output <path>: 在指定的路径生成源图( 使用 --embed- bundle- assets)
程序用途
import { repackAppAndroidAsync, repackAppIosAsync } from '@expo/repack-app';
// For Android
await repackAppAndroidAsync({
platform: 'android',
projectRoot: '/path/to/project',
sourceAppPath: '/path/to/source.apk',
// Optional configurations
workingDirectory: '/path/to/working/dir',
outputPath: '/path/to/output.apk',
verbose: true,
androidSigningOptions: {
keyStorePath: '/path/to/keystore.jks',
keyStorePassword: 'pass:password', // or 'env:KEYSTORE_PASS' or 'file:/path/to/pass'
keyAlias: 'alias',
keyPassword: 'pass:key-password', // or 'env:KEY_PASS' or 'file:/path/to/key-pass'
},
androidBuildToolsDir: '/path/to/build-tools',
exportEmbedOptions: {
sourcemapOutput: '/path/to/sourcemap',
},
env: {
// Additional environment variables
},
});
// For iOS
await repackAppIosAsync({
platform: 'ios',
projectRoot: '/path/to/project',
sourceAppPath: '/path/to/source.ipa',
// Optional configurations
workingDirectory: '/path/to/working/dir',
outputPath: '/path/to/output.ipa',
verbose: true,
// Sign with fastlane and a macOS keychain identity (requires Xcode)
iosSigningOptions: {
signingIdentity: 'Apple Development: Name (Team ID)',
provisioningProfile: '/path/to/profile.mobileprovision',
keychainPath: '/path/to/keychain', // Optional
},
// ...or with zsign and a .p12, which needs no Xcode and runs on Linux:
// iosSigningOptions: {
// backend: 'zsign',
// certificatePath: '/path/to/identity.p12',
// keyPassword: 'p12-password',
// provisioningProfile: '/path/to/profile.mobileprovision',
// },
exportEmbedOptions: {
sourcemapOutput: '/path/to/sourcemap',
},
env: {
// Additional environment variables
},
});
配置选项
在方案使用API时,有下列选项:
常见选项
platform:'android' QQ'ios' - 重新包装应用程序的平台projectRoot: 字符串 - 项目根目录的路径sourceAppPath: 字符串 - 预建应用文件的路径(APK/AAB/IPA)workingDirectory?: 字符串 - 临时文件的工作目录outputPath?: 字符串 - 输出应用文件的路径(默认为)projectRoot/repacked.apk或者说projectRoot/repacked.ipa(中文(简体) )verbose?: boolean - 启用动词记录exportEmbedOptions?: ExportEmbed 选项 - 嵌入JS捆绑的选项. 指定时, 重新包装将生成捆绑资产 .skipWorkingDirCleanup?: boolean - 跳过工作目录清理env?: 记录 < 字符串, 字符串 > -- 环境变量
Android 特定选项
androidSigningOptions?: Android 签名选项 - 签名 Android app的选项keyStorePath: 字符串 - 键盘文件的路径keyStorePassword: 字符串 - keystore 密码( 支持的格式 :pass:<password>, (中文(简体) ),env:<name>, (中文(简体) ),file:<file>(中文(简体) )keyAlias?: 字符串 - Keystore 密钥别名keyPassword?: 字符串 - Keystore 密钥密码( 支持的格式 :pass:<password>, (中文(简体) ),env:<name>, (中文(简体) ),file:<file>(中文(简体) )
androidBuildToolsDir?: 字符串 - Android SDK 构建工具目录的路径- 何时
sourceAppPath是一个.aab,重新包装用途bundletool从 PATH 转换为通用APK 并仍然输出 APK.
iOS 特定选项
-
iosSigningOptions?: IosSigning Options - 签名iOS应用程序的选项. 受歧视的工会backend数字 :backend: 'fastlane'带快车道的标志resign动作和一个 macOS 键链身份,所以它需要 Xcode :signingIdentity: 字符串 - 代码签名身份provisioningProfile: 字符串 QQ 记录 < string, string > - 提供配置文件的路径keychainPath?: 字符串 - 密码符号的密钥链文件路径
backend: 'zsign'标志 符号 正在通过 zsign -wasm (英语)。没有Xcode,键链,或外部二进制,因此它也用于Linux:certificatePath: 字符串 - 路径.p12签名身份,由Keychain Access导出或从苹果开发者门户网站下载。 它将私钥与证书链,包括iOS安装时需要的Apple WWDR中间体一起持有keyPassword?: 字符串 - 密码保护.p12provisioningProfile: 字符串 QQ 记录 < string, string > - 提供配置文件的路径
环境变量
ANDROID_SDK_ROOT: Android SDK 根目录的路径(Android built需要)bundletool: Android 所需的路径.aab投入UNSTABLE_REPACK_APP_ICON: 设定为1或者说true启用实验应用程序图标重新包装
电视应用
App图标再包装支持Apple TV和Android TV. 重新包装从源头检测到一个 TV 应用程序
文物 - UIDeviceFamily 在 iOS 中 Info.plist中,和倾斜后发射装置条目
AndroidManifest.xml 因此,没有额外的设置选项。 当源程序是电视应用时,
重新包装也会在内部运行 expo prebuild 与 EXPO_TV=1。 。 。 .
重新包装不会生成电视图像 。 它会重用什么 expo prebuild 写入,所以图标来自
页:1 @react-native-tvos/config-tv 插件选项 :
- 苹果电视:
appleTVImages,这需要所有七个图像。 没有它,资产目录就没有.brandassets,并重新包装保留源图标并记录警告. - 安卓电视:
androidTVBanner财务报告和审定财务报表androidTVIcon。 。 。 .