Apple забороняє використовувати приватні або незадокументовані API в додатках iOS. Будь-які виклики, які ви здійснюєте до методів, що мають те саме ім'я, що і приватні або недокументовані методи API, будуть позначені як використання приватного API, навіть якщо метод, який викликається, - це те, що ви самі визначили.
Завантажувач додатків робить початкове сканування, перевіряючи назви методів, екземпляр змінного доступу та навіть використання @selector з приватними іменами методів. Завантажувач додатків не завжди робить велику роботу, і чим більше у вас вихідних файлів, тим більше шансів надати вам попередження про те, що створений ним файл аналізу API "занадто великий".
На щастя, ви все одно можете подати заявку, незважаючи на попередження. Apple перевірить це всередині країни, і якщо щось буде відкинуто через накладення назв, вам доведеться пройти процес перегляду ще раз.
Еріка Садун намагалася зробити додаток під назвою API Kit, який би зробив сканування для вас, але, схоже, вона відмовилася від своєї роботи та видалила будь-які сліди програми зі свого веб-сайту.
Chimp Studios створили сканер додатків, щоб зробити те ж саме, але він не оновлювався з 2011 року. На жаль, для великих проектів - і це включає проекти з великою кількістю зайвих стручків від CocoaPods - поточного (2014 року) немає спосіб вирішити цю проблему, окрім проактивного іменування речей таким чином, щоб вони не суперечили приватним методам API та іменам екземплярів.
Ви можете активно дізнаватися про конвенції про назву какао Apple і намагатися передбачити. Це зменшить майбутні головні болі. Поки Apple не представить щось подібне до просторів імен, ми можемо час від часу стикатися з цією проблемою.
Помилка "недійсної бінарної" може виникнути з ряду причин, але вона повністю не пов'язана з документом аналізу API, створеним App Loader.
Ви повинні знати, що навіть при скануванні все ще існують способи подолати заборону на використання приватних / недокументованих API. :)