迁移React Native白标应用至Expo 0.76:配置Xcode支持目标
解决方案
1. 配置iOS支持的设备(移除iPad、启用Mac Catalyst)
在app.config.ts的ios字段中添加以下配置,直接控制Xcode的「Supported Destinations」:
import { ExpoConfig } from '@expo/config'; const config: ExpoConfig = { name: 'YourAppName', slug: 'your-app-slug', // 其他基础配置... ios: { bundleIdentifier: 'com.yourcompany.yourapp', // 仅保留iPhone支持,自动移除iPad supportedDevices: ['iphone'], // 启用Mac Catalyst支持 enableMacCatalyst: true, // 配置Mac Catalyst专属设置(可选) macCatalyst: { deviceFamilies: ['mac'], }, // 其他iOS相关配置... }, // 其他平台配置... }; export default config;
supportedDevices: ['iphone']:会让Xcode只列出iPhone作为支持设备,自动剔除iPad选项。enableMacCatalyst: true:开启Mac Catalyst支持,预构建后Xcode会自动添加「My Mac」作为目标选项。
2. 设置默认目标为「My Mac」
借助expo-build-properties插件修改Xcode构建配置,实现默认目标设置:
- 先安装插件:
npx expo install expo-build-properties
- 在
app.config.ts的plugins数组中添加配置:
plugins: [ [ 'expo-build-properties', { ios: { xcodeBuildSettings: { // 将默认目标设为Mac(TARGETED_DEVICE_FAMILY值:1=iPhone,2=Mac) TARGETED_DEVICE_FAMILY: '2', // 替换为你的开发团队ID(可选,但部分场景需要) DEVELOPMENT_TEAM: 'YOUR_TEAM_ID', }, }, }, ], ],
这样预构建后,Xcode打开项目时默认选中的目标就是「My Mac」。
3. 保持预构建干净,无需提交原生文件夹
- 确保
.gitignore中包含ios/目录,避免提交自动生成的原生文件:
# Expo generated native folders ios/ android/
- 每次需要更新原生配置时,执行干净预构建:
npx expo prebuild --clean
- 推荐使用EAS Build进行云端构建,完全不需要本地维护原生文件夹,保持项目轻量化。
内容的提问来源于stack exchange,提问作者Voxar
相关产品推荐
相关产品推荐

