我有一个项目,有许多不同的计划。有没有办法在不编辑构建设置的情况下检查我正在构建的是“模块方案”还是“应用方案”?类似于:
#ifdef SOME_SPECIFIC_APP_MACRO谢谢你的帮助。
发布于 2020-06-15 16:29:42
假设您有以下名为Maintenance、Debug和Release的方案。
假设你已经在你的应用程序Build Settings > Active Compilation Conditions中正确地设置了自定义标志。
在Swift中,您可以简单地执行条件检查,如下所示:
#if Maintenance
// ...
#elseif Debug || Release
// ...
#else
// ...
#endif因此,在代码中使用特定方案的条件检查之前,您确实需要在Build Settings中为方案添加一个标志。如果你只是寻找一种方法来检查目标,我想你可以很容易地从plist中获取这些信息。
发布于 2020-06-17 17:12:56
我不知道,可能Xcode已经有了这样的定义,但你可以使用:
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中并附加到项目配置中。
然后,您可以在条件编译中使用它们。
https://stackoverflow.com/questions/62383902
复制相似问题