Теперь, когда общеизвестно, что представления приложений в App Store проверяются на использование частных API-интерфейсов, мне нужно задать вопрос ... что такое частный API, чтобы я мог их избежать?API Apple и private API
ответ
Закрытый API - это API, который не задокументирован в SDK. Например, класс framework может объявить метод, который не предназначен для использования сторонними разработчиками. Поведение частного API не гарантируется. Вы даже не можете быть уверены, что этот метод будет присутствовать в будущих обновлениях платформы. Его объявление, вероятно, недоступно в общедоступных файлах заголовков SDK. Если вы придерживаетесь общедоступных вещей в документации SDK, все будет в порядке.
Как правило, их отсутствие из заголовков SDK. Одна из конвенций Apple заключается в том, чтобы привести имена методов ObjC с символами подчеркивания.
Вам будет сложно использовать частный API случайно. Они не документированы в документах SDK, и они не отображаются в предложениях по завершению кода XCode.
Причина, по которой это стало новостью недавно, является создателем структуры, используемой несколькими приложениями, использующими частный API, поэтому, когда разработчики, включившие его фреймворк, обновили свои приложения, они были отклонены (хотя разработчики THOSE не использовали частный API, которые они добавили в свое приложение).
Это единственный способ, по которому вы могли бы использовать частный API случайно.
какой каркас был? –
Это было в трехмерной структуре, но проблема уже давно устранена. Этот ответ старше двух лет. – mmc
Нетрудно получить отклонение от так называемого «использования частного API». Попробуйте использовать следующее в качестве атрибута основных данных, и это будет отвергнуто:
- ColorIndex
- появление
- ID
Он показывает, как робот сканирует API.
Это не просто частные API, которые могут привести к отклонению вашего приложения. Использование недокументированных членов публичного API может привести к тому, что ваше приложение будет отклонено. Например, библиотека три20 (с фиксированной) обратилась к _фазе и другим членам UITouch в пределах категории.
Они также могут обнаружить вызовы частных членов через performSelector, а также следующее помечено отказ:
UIWindow* window = [UIApplication sharedApplication].keyWindow]
return !![window performSelector:@selector(firstResponder)];
Более тревожным, если вы сделаете вашу работу приложения под 3.1 и 3.0, а во время выполнения в 3.0 вы не используете ни одно из 3.1, ваше приложение все еще может быть отклонено. Примером может служить cameraOverlayView
от UIImagePickerController
(см. here). Это немного озадачивает.
Отличный инструмент для использования перед отправкой приложения App Scanner. Она сканирует файл .app для частного использования API и показывает, что сигнатуры методов совпадают, и какие классы этих методов в
ссылка -.>http://www.chimpstudios.com/appscanner/
Похоже, что этот сайт либо не работает. Кто-нибудь знает о каких-либо других приложениях, которые выполняют аналогичную функциональность? – rvijay007
Моего приложение было отклонено из-за яблоком с использованием личного API .Существует код,
Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");
id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)];
[activeInstance performSelector:@selector(dismissKeyboard)];
- 1. Apple private API-отказ от libarchive
- 2. MBProgressHUD использовать private api setLabelText
- 3. API Apple iCloud API
- 4. Private REST API
- 5. iOS Private API Документация
- 6. UISegmentedControl: Private API
- 7. setSearchDisplayController считается private-API?
- 8. iphone private API
- 9. список Private API в
- 10. Dropbox API, OAuth и Apple
- 11. YouYube API Watch Private Videos
- 12. Безопасность для «Private» REST API
- 13. Передача закрытий в Private API
- 14. iOS Private API performSelector crash
- 15. Bitbucket private server REST API
- 16. Хранить вызов API private/protected
- 17. Apple Magic Mouse Api
- 18. Apple ios API - Телефония
- 19. API приложений Apple Watch App API
- 20. Apple Watch NFC API
- 21. iTunes Apple Events API
- 22. Ядерная ядро Apple Public или Private
- 23. Руководство Apple App - частные API?
- 24. Краш с прошивкой Private API вызова
- 25. Что такое Private API и почему Apple отвергает приложение iOS, если оно используется?
- 26. Является ли это реализация API iOS Private API?
- 27. Apple API song «previewUrl» persistence
- 28. Apple Pay Loyalty NFC API
- 29. iOS paypal API - Apple Rejection
- 30. API-интерфейс Waveform от Apple?
Хорошо круто. Спасибо всем за быстрые ответы! – RyJ
Чтобы вместо вызова метода в частном API, какая разница в том, что вы создаете свой собственный метод, который делает то же самое? Правильно ли я говорю, что это не проблема вызова определенных методов API, это факт, что вы пытаетесь делать то, что они не хотят делать? –
@Nick Не обязательно. Чтобы приложение получило одобрение Apple, вы должны иметь оба следующих варианта: 1. выполнять только те действия, от которых они не ограничивали вас, независимо от метода. 2. Делать их через действительный механизм. В целом могут быть вещи, которые можно делать вообще, но вы не можете напрямую обращаться к частному API для их выполнения. Ритуал - это частный API, который может изменяться в будущих версиях и разбивает ваше приложение, тогда как создание пользовательского метода в общедоступном API не должно прерываться с обновлением iOS. –