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

iOS应用qmake下如何区分makefile和Xcode项目生成阶段

区分iOS项目下qmake两种运行模式的方案

Qt 5.15 iOS平台的qmake逻辑中,可以通过内置的生成器作用域直接区分两种模式,无需依赖build_pass变量,实现效果和macOS下的macx-xcode作用域完全一致:

  • 匹配Xcode项目生成模式:直接使用xcode内置作用域,该作用域仅在qmake生成Xcode项目文件时触发
    xcode {
        # 此处写入仅Xcode模式下需要执行的配置
        QMAKE_INFO_PLIST = ios/Info.xcode.plist
    }
    
  • 匹配makefile生成模式:使用!xcode+平台限定的组合作用域,仅在qmake生成makefile时触发
    !xcode:ios {
        # 此处写入仅makefile模式下需要执行的配置
        QMAKE_INFO_PLIST = ios/Info.makefile.plist
    }
    

验证方法

你可以在pro文件中加入以下打印语句,运行qmake时就能在输出中看到当前的生成器类型,确认匹配逻辑符合预期:
message(当前生成器类型: $$MAKEFILE_GENERATOR)

补充说明

iOS场景下两次处理pro文件时build_pass均为0是qmake的预期行为,该变量用于区分多配置构建的不同阶段,不适合用来判断生成器类型。xcode作用域是qmake内置的生成器匹配标识,全平台通用,只要qmake使用Xcode生成器就会触发,不需要额外绑定macOS平台标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:36:02