如何在不使用EAS的Expo项目中集成现有凭据?
在不使用EAS的Expo项目中集成现有凭据的方案
iOS 平台配置(适用于 Bare Workflow 或预构建后的 Managed Workflow)
- 将现有的Provisioning Profile和APNs 证书(若涉及推送功能)放到项目的
ios/目录下(建议新建ios/certs文件夹统一存放)。 - 用 Xcode 打开
ios/[你的项目名].xcodeproj,在 Signing & Capabilities 标签页选择Manual signing,导入你的证书和 Provisioning Profile,确保 Bundle ID 与app.json中配置的一致。 - 若需使用自有推送服务而非 Expo 推送,在
app.json的ios字段中添加:"ios": { "usesNonExpoPushNotifications": true }
Android 平台配置
- 将签名密钥文件(
.jks或.keystore)放到android/app/目录下。 - 在
android/gradle.properties中添加密钥相关配置(替换为你的实际信息):MYAPP_UPLOAD_STORE_FILE=your-key-store.jks MYAPP_UPLOAD_KEY_ALIAS=your-key-alias MYAPP_UPLOAD_STORE_PASSWORD=your-store-password MYAPP_UPLOAD_KEY_PASSWORD=your-key-password - 修改
android/app/build.gradle,在android块内添加签名配置:
接着在signingConfigs { release { if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) { storeFile file(MYAPP_UPLOAD_STORE_FILE) storePassword MYAPP_UPLOAD_STORE_PASSWORD keyAlias MYAPP_UPLOAD_KEY_ALIAS keyPassword MYAPP_UPLOAD_KEY_PASSWORD } } }buildTypes的release块中关联签名配置:buildTypes { release { signingConfig signingConfigs.release // 保留原有其他配置... } } - 若涉及 FCM 推送,将
google-services.json放到android/app/目录下,并确保android/build.gradle中已引入 Google Services 插件:
同时在dependencies { // 保留原有其他依赖... classpath 'com.google.gms:google-services:4.3.15' }android/app/build.gradle的末尾添加:apply plugin: 'com.google.gms.google-services'
关键注意事项
- 确保凭据对应的 Bundle ID(iOS)/ Package Name(Android)与
app.json中expo.ios.bundleIdentifier、expo.android.package完全一致,否则会出现签名失败问题。 - 如果是从 Managed Workflow 切换到手动配置,建议先执行
expo prebuild生成原生目录后再操作,避免手动修改原生文件时出现冲突。
内容的提问来源于stack exchange,提问作者Mishen Thakshana
相关产品推荐
相关产品推荐

