You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022中#if IOS编译指令失效问题求助

编译指令异常的排查方案

你的注册Firebase服务的C#代码如下:

private static MauiAppBuilder RegisterFirebaseServices(this MauiAppBuilder builder)
{
    builder.ConfigureLifecycleEvents(events => {
#if IOS
        events.AddiOS(iOS => iOS.FinishedLaunching((app, launchOptions) => {
            CrossFirebase.Initialize(app, launchOptions);
            return false;
        }));
#else
        events.AddAndroid(android => android.OnCreate((activity, state) =>
            CrossFirebase.Initialize(activity, state)));
#endif
    });

    builder.Services.AddSingleton(_ => CrossFirebaseAuth.Current);
    return builder;
}

选中Android-Pixel 5运行目标时,#if IOS代码段激活、Android代码置灰,这是VS的平台上下文识别或编译符号配置出了问题,可按以下步骤排查:

  • 检查条件编译符号配置
    右键MAUI项目 → 属性 → 切换到「生成」标签页,顶部平台下拉框选Android,查看「条件编译符号」输入框:

    • 确保没有IOS符号(误加会导致iOS代码被激活)
    • 确认存在ANDROID符号(这是Android平台默认的编译符号)
      若有错误配置,修改后保存即可。
  • 清理项目缓存并重启VS
    VS的项目上下文缓存可能出现异常,导致平台识别错误:

    1. 点击顶部菜单「生成」→「清理解决方案」
    2. 手动删除项目根目录下的bin和obj文件夹
    3. 关闭并重新打开VS,重新加载项目后再选择Android目标
  • 重新确认目标平台选择
    有时工具栏的目标选择会出现显示与实际不同步:

    1. 点击工具栏目标下拉菜单,重新选择「Android-Pixel 5」
    2. 等待项目重新加载完成,查看状态栏的平台标识是否为Android,确认上下文切换正确

内容的提问来源于stack exchange,提问作者Gratzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:42:23