2013-07-10 1 views
47

나는 이것에 대해 몇 가지 기사를 읽었습니다, 그리고 난 그냥이 제대로 이해하고 있는지 확인하려면 :정확히 비공개 API 란 무엇이며, Apple이 iOS App을 사용하는 경우 Apple이 거부하는 이유는 무엇입니까?

당신이 개인 API를 사용하는 경우 애플 앱을 거부합니다

...

  1. 은 무엇인가 "비공개 API"와 "비공개 API"의 주요 차이점은 무엇입니까?

  2. "비공개"API는 Apple 만 제공하고 인증하는 API입니까?

  3. 프레임 워크가 API와 상호 작용할 수있는 유일한 방법이 아니며 프레임 워크는 사람들이 사소한 목적으로 사용할 수있는 캡슐화 된 클래스/헤더 집합입니다.

  4. 내 앱에서 다른 사람의 코드 (Apple 이외의 코드)를 전혀 다시 사용할 수 없다는 뜻이 아닙니까? 프로그래머가 자신의 사용자 정의 클래스와 메소드를 만드는 때마다 이것이 사실이라면

  5. , 그는 기술적으로 그의 특정 목적을위한 미니 프레임 워크를 설계되지 않는 이유는 무엇입니까? 그렇다면 자신의 비공개 API를 사용하고 있다는 뜻이 아닙니까?

  6. 내 수업/방법과 함께 다른 사람의 수업/방법을 사용하는 것의 차이점은 무엇이며 어떻게 차이를 알 수 있으며 왜 이것이 문제가 될 수 있습니까?

이 점에 대한 나의 이해는 터무니없는 것처럼 들리며 "개인 API"가 정확히 무엇인지 이해하고 있다고 생각하지 않습니다. 앱의 기능이 제대로 작동하지 않을 수있는 API의 변경을 막는 것이 었습니다. 이것은 API가 런타임에 (컴파일 시간과는 대조적으로) 연결되어 있다는 것을 의미합니까, 당신이 모르는 사이에 자동으로 업데이트 될 수 있습니까?

사람은 나 좀 도와 주실 래요 (내가 잘못 곳 어쩌면 이것이, 내가 원래 컴파일 할 때마다 돌에서 설정 한 것으로 API를/프레임 워크의 생각, 참조)? 나는이 정책에 대해 정말로 혼란 스럽다. 고맙습니다!

+0

정의에 따르면 자신의 앱에있는 나만의 클래스와 겹침이는 나만의 것이며 개인용입니다. 내부 용으로 만 iOS에서 제공하는 기능을 사용하는 것과 마찬가지로 비공개 API를 의미합니다. 예 : 해킹 된 예로서 SystemClock API를 사용할 수 있습니다.이 API는 사설 HardwareClock API를 사용합니다. SystemClock을 사용하는 앱은 괜찮습니다. 하지만 이것을 무시하고 곧바로 HardwareClock으로 이동하면 앱이 부팅됩니다. –

+1

Apple의 개인 API 규칙은 개인 Apple API를 사용하지 않는 것에 관한 것입니다. Apple은 많은 API를 문서화했지만 일부는 문서화되지 않았습니다. 이러한 문서화되지 않은 API는 Apple의 가이드 라인에서 참조하는 비공개 API입니다. – cjc343

+0

가능한 [Apple 및 개인 API]의 복제본 (http://stackoverflow.com/questions/1773615/apple-and-private-apis) – Barmar

답변

37

Q. "개인 API"와 "비공개 API"의 주요 차이점은 무엇입니까?

  • 개인 공개적으로 정의되지 않은 하나입니다

Q. 는 "비 개인"API를 전용 API를 제공 되나요 (그것은 훨씬이 없다) 애플에 의해 확인 되었습니까?

  • 개인 및 공개 API는 모두 애플 '제공'만 사용할 경우에만 공개 API를 제공합니다.
  • 개인 API를
  • Q.

는 API는 프레임 워크와 상호 작용 단지 방법이 아니다, 그리고 프레임 워크는 캡슐화 된 클래스/헤더의 단지 세트입니다 애플에 의해 사용되는 사람들은 사소한 목적으로 사용할 수 있습니까?

Q. 이 내 응용 프로그램에 전혀 (애플 이외의) 다른 사람의 코드를 재사용 할 수 있다는 것을 의미하지 않을까요? 아니

Q. 이 프로그래머가 자신의 사용자 정의 클래스와 메소드를 만드는 때마다, 사실이라면

  • , 그는 기술적으로 단지를위한 미니 프레임 워크를 설계하지 않습니다 그의 목적은 무엇입니까? 그렇다면 자신의 비공개 API를 사용하고 있다는 뜻이 아닙니까?

  • 없음 (프레임 워크는 응용 프로그램에 다른)도 내 클래스/메소드, 방법과 함께 다른 사람의 클래스/메소드를 사용 사이의 차이가 될 것입니다 무엇

Q. 심지어 차이점을 말할 수 있을까요? 왜 이것이 문제가 될까요?

  • 그것은 일반적으로하고자하지

당신이 얻을 필요가있는 점은 당신은 단지 개인 애플에 대해 생각해야 개인의 API를 참조 할 때하는 API를 제공한다는 것입니다.
타사의 다른 API는 다릅니다 (Apple은 타사 코드가 Apple 개인 API를 사용하지 않는 한 신경 쓰지 않습니다).

+0

나는 잡았다. 내가 읽은 비공개 API에 대한 오해의 소지가있는 많은 정보가있는 것처럼 느껴지고 일부 사람들은 그것이 한 가지라고 말하고 일부 사람들은 다른 것이라고 말하기 때문에 이해하기 힘들었습니다. Apples는 개인 API에 대한 정보가 "비공개 API"이며 "문서화되지 않은"것으로 의미하는 바를 정확히 설명하지 않는다고 생각합니다. 그것을 정리 주셔서 감사합니다! – giant91

+0

@Wain 개인 API가 무엇인지 또는 어떤 모습인지 예를 들려 줄 수 있습니까? –

+0

@SamBudda, 이전에는 공개되었지만 이제는 비공개 인'UIDevice uniqueIdentifier'를 보겠습니다.이전에는 앱을 실행중인 기기를 식별하는 데 사용할 수 있었지만 사용자를 식별하기는 어려웠으므로 지금은 비공개이며 서로 다른 목적으로 여러 가지 대안이 있습니다. 따라서 비공개 API는 특별히 보이지 않습니다. – Wain

관련 문제