5

我正在使用 Appirater ( https://github.com/arashpayan/appirater ) 在我的 xcode 项目中启用应用评级。使用“iOS 模拟器”时一切正常,但是当我使用“iOS 设备”目标存档我的项目时,我得到 2 个构建错误:

语义问题:函数“SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO”的隐式声明在 C99 中无效

语义问题:函数“SYSTEM_VERSION_LESS_THAN”的隐式声明在 C99 中无效

相关代码行在 Appirater.m 文件中:

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") && SYSTEM_VERSION_LESS_THAN(@"7.1")) {
        reviewURL = [templateReviewURLiOS7 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%@", _appId]];
    }

我在如何检查 iOS 版本中找到了一组与这些非常相似的宏 ?

任何援助将不胜感激。

4

2 回答 2

6

将这些行从您的链接添加到您的 .pch 文件。清洁和建造。它应该消失。

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

更多信息:由于预处理器无法找到它们来对这些宏进行查找和替换,因此它们会传递给编译器,在那里它们看起来像 C 函数。编译器找不到它们并给你一个错误。

于 2014-05-23T00:52:50.580 回答
1

更新 请再次从 repo 中提取。这应该有效。对于那个很抱歉。

原始回复 这是我的错。我接受了对 Appirater 存储库的这些宏调用的新更改,而无需构建/测试。我现在正在删除有问题的宏,并将在一小时内推出修复程序。

于 2014-05-23T01:06:24.693 回答