最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Xcode常用环境变量与常见使用场景

来源:博客园


(资料图片仅供参考)

在Xcode的工程配置中,与路径相关的都是使用环境变量,这样可以避免使用决定路径时项目移植性差的问题。Xcode常用宏__FILE__ 当前文件所在目录__DATE__ 编译日期的字符串,格式为“mm dd yyyy”(例如:“Sep 16 2015”)__FUNCTION__ 当前函数名称__LINE__ 当前语句在源文件中的行数___FILENAME___ 文件名,包括扩展名 如 abc.h, abc.m___FILEBASENAMEASIDENTIFIER___ 文件名, 不包括扩展名, 如 abc___PROJECTNAME___ 项目名称Xcode环境变量说明$(SRCROOT) 工程所在位置,也就是.xcodeproj所在目录$(PROJECT_DIR) 与 $(SRCROOT) 一样$(TARGETNAME) 工程名称$(TARGET_BUILD_DIR) target构建生成路径$(PROJECT_TEMP_DIR) 工程生成临时文件的路径$(CONFIGURATION) 配置类型,一般为”Debug” 或 “Release”$(inherited):继承,target默认不继承project, 需要在设置中显示添加才能继承。常用与对Search Paths项的设置运行时环境变量OBJC_PRINT_OPTIONS 输出OBJC已设置的选项OBJC_PRINT_IMAGES 输出已load的image信息OBJC_PRINT_LOAD_METHODS 打印 Class 及 Category 的 + (void)load 方法的调用信息OBJC_PRINT_INITIALIZE_METHODS 打印 Class 的 + (void)initialize 的调用信息OBJC_PRINT_RESOLVED_METHODS 打印通过 +resolveClassMethod: 或 +resolveInstanceMethod: 生成的类方法Apple官方说明: https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html设置环境的业务场景为项目添加.pch全局引入1.创建“工程名字-Prefix.pch”2.添加.pch的路径,在Build Settings中搜索Prefix Header, 然后在该项中输入“(SRCROOT)/项目名称/pch文件名”,例如“(SRCROOT)/iBlog/iBlog-Prefix.pch”3.设置将Precompile Prefix Header 为YES, 预编译pch对Search Paths项的设置主要使用的配置项目Header Search PathsLibrary Search PathsFramework Search Paths如果项目里没有对Framework或.a的依赖,这里使用默认就可以了,如果添加了依赖,那么这里会自动添加这些依赖的路径。本地构建产物目录设置默认情况下Build Locations中的4个设置项的值:以下用$(default) 代替 /Users/xxx/Library/Developer/Xcode/DerivedData/bsdiff-brsmjsvhtefeftfpbmcygaiewpum
$(SYMROOT) = $(default)/Build$(SYMROOT)/intermediates ----中间构建文件存放路径,其中在Intermediates Build files path中只需要设为$(SYMROOT)即可,intermediates系统自动生成。$(BUILD_DIR) = $(SYMROOT)/products$(BUILD_ROOT) = $(BUILD_DIR)$(CONFIGURATION) 当项目Build时选译Build configuration为Debug时值为Debug,当选为Release时,值为Release$(EFFECTIVE_PLATFORM_NAME) 当模似器时为值为-iphonesimulator 当为真机时为-iphoneos$(PROJECT_TEMP_DIR) = $(SYMROOT)/intermediates/xxxx.build 基中xxxx表过项目名称$(CONFIGURATION_BUILD_DIR) = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) ---- (Per-Configuration Build Products Path)$(CONFIGURATION_TEMP_DIR) = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) --(Per-Configuration Intermediate File Path)
参考文章:https://www.jianshu.com/p/f2aff309171chttps://www.cnblogs.com/cy568searchx/p/5889002.html

关键词: