首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件编译来检查我正在构建的是模块还是应用程序

条件编译来检查我正在构建的是模块还是应用程序
EN

Stack Overflow用户
提问于 2020-06-15 16:04:07
回答 2查看 76关注 0票数 0

我有一个项目,有许多不同的计划。有没有办法在不编辑构建设置的情况下检查我正在构建的是“模块方案”还是“应用方案”?类似于:

代码语言:javascript
复制
#ifdef SOME_SPECIFIC_APP_MACRO

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2020-06-15 16:29:42

假设您有以下名为MaintenanceDebugRelease的方案。

假设你已经在你的应用程序Build Settings > Active Compilation Conditions中正确地设置了自定义标志。

在Swift中,您可以简单地执行条件检查,如下所示:

代码语言:javascript
复制
#if Maintenance
    // ...
#elseif Debug || Release
    // ...
#else
    // ...
#endif

因此,在代码中使用特定方案的条件检查之前,您确实需要在Build Settings中为方案添加一个标志。如果你只是寻找一种方法来检查目标,我想你可以很容易地从plist中获取这些信息。

票数 0
EN

Stack Overflow用户

发布于 2020-06-17 17:12:56

我不知道,可能Xcode已经有了这样的定义,但你可以使用:

代码语言:javascript
复制
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) MACH_O_TYPE=BIN_TYPE_${MACH_O_TYPE} BIN_TYPE_mh_execute=1 BIN_TYPE_mh_bundle=2 BIN_TYPE_mh_object=3 BIN_TYPE_mh_dylib=4 BIN_TYPE_staticlib=5 IS_APP=MACH_O_TYPE==BIN_TYPE_mh_execute IS_NOT_APP=MACH_O_TYPE!=BIN_TYPE_mh_execute

您可以将其放入项目构建设置中,或者放入xcconfig中并附加到项目配置中。

然后,您可以在条件编译中使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62383902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档