Что такое Private API и почему Apple отвергает приложение iOS, если оно используется?
Я прочитал несколько статей об этом, и я просто хочу понять, правильно ли я это понимаю:
Apple отклонит ваше приложение, если вы используете частный API...
-
В чем основное отличие между "Private API" и "не-частным API?"
-
Являются ли "не частные" API только API, предоставленные и проверенные Apple?
-
Не API - это просто способ взаимодействия с Framework, а Framework - это всего лишь набор инкапсулированных классов/заголовков, которые люди могут использовать для тривиальных целей?
-
Не означает ли это, что я не могу повторно использовать любой код (кроме Apple) вообще в моем приложении?
-
Если это правда, всякий раз, когда программист делает свои собственные классы и методы, разве он не технически разрабатывает мини-Framework только для своей конкретной цели? Так не значит ли это, что он использует свой собственный частный API?
-
Какая разница между использованием других классов и методов рядом с моими классами/методами, как они могут даже сказать разницу и почему это будет проблемой?
Мое понимание этого звучит абсурдно и не верю, что я понимаю, что такое "частный API". Я прочитал, что он должен защищать от любых изменений в API, которые могли бы сделать ваше приложение дисфункциональным. Означает ли это, что API-интерфейсы связаны во время выполнения (в отличие от времени компиляции) и могут быть автоматически обновлены без вашего ведома или чего-то еще? (Видите ли, я изначально думал о API/фреймворках как устанавливаемый в камне всякий раз, когда вы компилируете, может быть, именно здесь я ошибаюсь)
Кто-нибудь может помочь мне? Я действительно смущен этой политикой. Спасибо!
Ответы
Ответ 1
Q. В чем основное отличие между "Private API" и "не-частным API?"
- Частный - это тот, который не является общедоступным (его не так много)
Q. Являются ли "не частными" API только API, предоставленные и проверенные Apple?
- Частные и общедоступные API оба предоставляются Apple, но вам доступны только общедоступные API.
- Частные API-интерфейсы предназначены только для Apple
Q. Разве API не является способом взаимодействия с Framework, а Framework - это всего лишь набор инкапсулированных классов/заголовков, которые люди могут использовать для тривиальных целей?
Q. Разве это не означает, что я не могу повторно использовать какой-либо код (кроме Apple) вообще в моем приложении?
Q. Если это так, каждый раз, когда программист делает свои собственные классы и методы, разве он не разрабатывает мини-Framework только для своей конкретной цели? Так не значит ли это, что он использует свой собственный частный API?
- Нет (каркас отличается от приложения)
Q. Какая разница между использованием других классов/методов рядом с моими классами/методами, как они могут даже сказать разницу и почему это будет проблемой?
То, что вам нужно получить, это то, что, обращаясь к частным API, вы должны думать только о частных API, поставляемых Apple.
Другие API-интерфейсы от сторонних сторон различны (и Apple не волнует, пока этот сторонний код не использует частные API Apple).