预处理器时间戳
是否可以通过预处理器宏生成嵌入式Unix时间戳?预处理器时间戳
例如:#define VERSION_EXPIRE __TIMESTAMP__
这样做的原因是,我有测试版,我想生成编译期的到期时间戳(在一个特殊的生成配置)。
回答:
我如下解决它:
#define VERSION_TIMESTAMP __DATE__" "__TIME__"\x0"
在其他一些类
+ (NSDate *)versionExpiresInDays:(NSUInteger)days { NSString *dateString = [NSString stringWithUTF8String:VERSION_TIMESTAMP];
NSLocale *enLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSDate *compiledOn = [NSDate dateWithNaturalLanguageString:dateString locale:enLocale];
return [compiledOn dateByAddingTimeInterval:days*24*60*60];
}
回答:
在使用sed替换__TIMESTAMP__
并使用date
进行预处理之前添加一个自定义构建步骤。最简单的方法是tell Xcode to use a makefile。
回答:
如果您想使用版本的软件,如svn
或git
你可能有一个像$Id: $
自动替换字符串的或$Date: $
由特定版本的文件(svn)或“HEAD”版本(git)的id或日期。
编辑:为git
,你可以提取来源
git archive --format=zip -9 -o project.zip HEAD file1 file2...
在这段过程中,你必须告诉蠢货,.gitattributes
,你想拥有的东西替换某些字符串取代:
file* export-subst
有关“$ ... $”之间的术语和术语的语法,请参阅手册页git-log
中的格式。正如例子我在我的代码
#define P99_VERSION_DATE "$Format:%cd$" #define P99_VERSION_ID "$Format:%H$"
其中在文件的分发版本是
#define P99_VERSION_DATE "Thu Oct 7 23:38:43 2010 +0200" #define P99_VERSION_ID "6f9740a6808ff50f42d24bb7b5234a904f84e6fe"
以上是 预处理器时间戳 的全部内容, 来源链接: utcz.com/qa/257487.html