在 windows 上借助 expo 进行 ios 应用调试

在不另外买一台 macbook 的情况下,如何借助 expo 以在 windows 连接 ios 设备进行调试


直接在已有项目导入 expo 可能会遇到 NativeModule cannot be null 问题,极难解决,故新开项目作测试环境为宜

  1. yarn global add expo-cli

  2. expo init test

  3. 编辑 babel.config.js 以支持 @ 或其它别名

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    module.exports = function (api) {
    api.cache(true);
    return {
    presets: ["babel-preset-expo"],
    plugins: [
    [
    "module-resolver",
    {
    alias: {
    "@": "./app",
    },
    },
    ],
    ],
    };
    };
  4. 编辑 tsconfig.json 以支持 @ 或其它别名

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "extends": "expo/tsconfig.base",
    "compilerOptions": {
    "strict": true,
    "baseUrl": "./",
    "paths": {
    "@/*": ["app/*"]
    }
    }
    }
  5. 导入原项目可能存在的 prettierrc 配置等与业务无关的通用配置

    直接导入业务配置有可能报错,建议一步一步进行

  6. 导入原项目的静态资源、全局 ts 类型定义等不依赖第三方库的文件

  7. 先执行 expo start -c 并在模拟器或真机上运行,以检测此时 expo 是否能够正常运行

    若能够正常运行,则及时 git commit 保存版本,以便于回退

  8. 导入待测试的组件及其所依赖的组件,并在 App.tsx 中连接该组件

  9. yarn add 上述组件所需要的包

  10. 运行,若失败则回到步骤 7 重新检测,逐一排查

通过以上方案,即可省下一台 macbook 的钱

不过 ios 设备还是该有(


感谢阅读

--It's the end.Thanks for your read.--