Семантическая проблема - неявное объявление функции

Я использую 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?

Любая помощь будет оценена.

2 ответа

Добавьте эти строки из вашей ссылки в ваш файл.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. Компилятор не может их найти и выдает ошибку.

ОБНОВЛЕНИЕ Пожалуйста, вытащите снова из репо. Это должно работать. Извини за это.

ОРИГИНАЛЬНЫЙ ОТВЕТ Это моя вина. Я принял новое изменение с этими макро-вызовами в репозиторий Appirater без сборки / тестирования. Теперь я удаляю оскорбительные макросы и исправлю их в течение часа.

Другие вопросы по тегам