2014-05-22 4 views
4

내 코드 프로젝트에서 앱 등급을 사용하려면 Appirater (https://github.com/arashpayan/appirater)를 사용하고 있습니다. 'iOS 시뮬레이터'를 사용하면 모든 것이 OK 빌드하지만 난 내 프로젝트를 보관하는 '아이폰 OS 장치'대상을 사용할 때 나는이 빌드 오류 얻을 :시맨틱 문제 - 암시 적 함수 선언

시맨틱 문제 : 기능의 암시 적 선언 'SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO는'C99에 잘못되었습니다

시맨틱 문제 : 기능 'SYSTEM_VERSION_LESS_THAN'의 암시 적 선언은 코드의

관련 선이 Appirater.m 파일에있는 C99에서 유효하다 : 나는 매크로 세트를 발견

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]]; 
    } 

그 이것들과 매우 비슷합니다. How to check iOS version?

어떤 도움을 주시면 감사하겠습니다.

답변

4

링크에서이 줄을 .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 함수처럼 보이는 경우, 그들은 컴파일러를 통해 전달합니다. 컴파일러에서 찾을 수 없으며 오류가 발생합니다.

1

업데이트 repo에서 다시 당겨주세요. 이것은 효과가 있어야합니다. 미안합니다.

원본 응답 이것은 제 잘못입니다. 필자는 빌딩/테스트없이이 매크로 호출을 Appirater repo로 변경했습니다. 지금 문제가되는 매크로를 제거하고 한 시간 안에 해결 방법을 강요합니다.