使用Expo云打包IOS问题实录

1,802 阅读2分钟

项目版本

  • Expo SDK版本:44
  • React Native版本:0.64.4
  • React版本:17.0.1

eas.json文件简单介绍

eas.json 文件用于配置 Expo Application Services (EAS) 平台的构建、提交和预览功能,帮助你在本地或远程构建、部署和测试 iOS 和 Android 应用程序,你可以无需搭建本地开发环境,直接使用命令行执行远程云打包生成APK或者IPA文件,具体配置说明参考官网

云打包

如未安装eas cli,可通过以下命令安装:

npm install -g eas-cli

然后再项目根目录下执行eas build命令,其他使用方式可参考官网

eas build --platform ios

查看是否已成功进入打包进程:

20230412165928.png

出现Waiting for build to complete. You can press Ctrl+C to exit. 说明已成功进入打包流程。

点击打开上面图示Build details的链接,跳到expo build打包后台页面

20230412171221.png

报错问题

问题一:Expo SDK版本过低不满足云服务默认的构建环境

20230412171332.png

字面意思是当前项目的expo SDK版本过低不满足云服务的构建环境。

首先查看云服务默认的构建环境:

20230412171557.png

默认用的是最新版本macos-monterey-12.6-xcode-14.1

解决:修改本地项目根目录下eas.json配置文件

ios配置对象增加image字段配置:

"image": "macos-monterey-12.3-xcode-13.3"

下面是我本地eas.json完整的配置文件,仅供参考(Android使用默认生成的配置)

{
  "cli": {
    "version": ">= 3.9.1"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "image": "macos-monterey-12.3-xcode-13.3",
        "buildConfiguration": "Debug",
        "resourceClass": "m-medium"
      }
    },
    "preview": {
      "distribution": "internal",
      "ios": {
        "image": "macos-monterey-12.3-xcode-13.3",
        "resourceClass": "m-medium"
      }
    },
    "production": {
      "ios": {
        "image": "macos-monterey-12.3-xcode-13.3",
        "resourceClass": "m-medium"
      }
    }
  },
  "submit": {
    "production": {}
  }
}

然后回到项目根目录下再次执行打包命令:

eas build --platform ios

查看云打包后台日志是否已配置成功:

20230412172724.png

问题二:某些库或框架未启用 Bitcode

微信图片_20230412173251.png

未完待续...