2011-08-26 3 views
6

내 앱을 앱 스토어에 제출하고 검토 한 결과 거부되었습니다. 애플 이유였다: (2.5) 비공개 API를 사용하는 앱은 거부됩니다.


2.5 : 우리는 앱이 아닌 하나 이상의 비공개 API를 사용하는 것을 발견 * 비공개 API를 사용하는 앱은

을 거부됩니다 App Store 리뷰 가이드 라인 준수. 비공개 API의 사용은 이러한 API가 변경 될 경우 사용자 환경이 좋지 않을 수 있으므로 허용되지 않습니다. 우리는 당신의 응용 프로그램에 다음과 비공개 API를 발견

은 dateWithCalendarFormat : timeZone가 :

hourOfDay은

은 minuteOfHour

secondOfMinute은

은 setNavigationBar :

당신이 정의한 경우 위에서 언급 한 API와 같은 이름을 가진 소스 코드의 메소드 , 나중에 제출할 때 애플리케이션에 플래그가 표시되지 않도록 Apple의 비공개 API와 더 이상 충돌하지 않도록 메소드 이름을 변경하는 것이 좋습니다.

또한 위에서 언급 한 API 중 하나 이상이 응용 프로그램에 포함 된 정적 라이브러리에있을 수 있습니다. 라이브러리 소스에 액세스 할 수없는 경우 "문자열"또는 "otool"명령 줄 도구를 사용하여 컴파일 된 바이너리를 검색 할 수 있습니다. "strings"도구는 라이브러리가 호출하는 메소드 목록을 출력 할 수 있으며 "otool -ov"는 Objective-C 클래스 구조와 정의 된 메소드를 출력합니다. 이러한 기술은 문제가 내가 선언하거나 상기 API를 같은 이름을 가진 방법을 정의하지 않았다이다, *


. 문제가있는 코드가있는 위치를 파악하는 데 도움이하지만 할 수 있습니다. 그리고 나는 커스텀 라이브러리를 사용하지 않았다. 그것은 아주 간단한 어플리케이션 (대패)이며 UIKit, CoreData, AVFoundation, Foundation 및 EventKit 만 사용했습니다.

어제 사과에게 메시지를 보내지만 아직 답이 없습니다.

아이디어가 있으십니까? 당신이 지금

[[[datePicker date] dateWithCalendarFormat:nil timeZone:nil] hourOfDay] 

을 사용 위

+0

소스 코드에서 이들 중 하나의 인스턴스를 빠르게 grep (예 :'secondOfMinute')하십시오. 그들은 어디에서나 선회합니까? –

+0

비공개 API를 사용하는 Apple 코드를 호출하지 않고 해당 코드에 연락 한 경우 응답을 기다리십시오. – Moshe

+0

메서드 dateWithCalendarFormat : timeZone :, hourOfDay, minuteOfHour 및 secondOfMinute 코드에서 한 번만 사용했습니다. int hour = [[[datePicker 날짜] dateWithCalendarFormat : nil timeZone : nil] hourOfDay]; int min = [[[datePicker 날짜] dateWithCalendarFormat : nil timeZone : nil] minuteOfHour]; int sec = [[[datePicker 날짜] dateWithCalendarFormat : nil timeZone : nil] secondOfMinute]; datePicker는 UIDatePicker 클래스의 객체입니다. @property (비 원자형, 유지) IBOutlet UIDatePicker * datePicker; setNavigationBar 메서드에서와 동일한 기능입니다. 나는 그 방법들을 선언하거나 정의하지 않았다. –

답변

4

당신은 당신은 누구의 documentation

그래서 dateWithCalendarFormat:timezone:hourOfDay 등의 이름 공용 방법이 없어 보여, [datePicker date]NSDate 반환 코멘트에 단지 수 없다고 그것을 써.

setNavigationBar:의 경우 navigationBarUINavigationController 속성은 설명서의 내용대로 읽기 전용 속성입니다. 그러므로 당신은 그것을 설정할 수 없습니다.

앱을 컴파일 할 때 컴파일러는 선택기를 찾을 수 없다는 등의 많은 경고를 발행해야합니다. 이러한 경고는 항상 오류로 간주하여 제거해야합니다. 이렇게하면 제출 후 거절을 피할 수 있습니다.

+0

예, 몇 분 전에 보았습니다. 하지만 setNavigationBar 메서드는 어떻습니까 ??? –

+0

dateWithCalendarFormat : timezone : 더 이상 추천하지 않습니다 ... 하지만 setNavigationBar에 문제가 있습니까? UINavigationBar * bar = [[UINavigationBar alloc] init]; bar.barStyle = UIBarStyleBlackOpaque; [opla setNavigationBar : bar]; [opla.navigationBar setTintColor : self.navigationController.navigationBar.tintColor]; [opla.navigationBar setBarStyle : self.navigationController.navigationBar.barStyle]; –

+0

좋아, 내 업데이트를 참조하십시오. – Yuji

관련 문제