Приложения, которые используют непубличные API, будут отклонены
Наше приложение было отклонено яблоком со следующим сообщением: (я поместил в столбец местоположение любого упомянутого API)
Мы обнаружили, что ваше приложение использует один или несколько непубличных API-интерфейсов, что не соответствует рекомендациям по обзору App Store. Использование непубличных API-интерфейсов недопустимо, так как это может привести к ухудшению работы пользователей в случае изменения этих API-интерфейсов.
Мы нашли следующие непубличные API в вашем приложении:
- BuyFreeWinTicket_marshal ___: numbers: os:, (мой внутренний код)
- getCellValidationInfo_unmarshal ___: ok:, (мой внутренний код)
- AddAnimationPointForBall: nextX: nextY: forDuration:, (мой внутренний код) UIViewController, (?)
- addSessionCookie:, (мой внутренний код)
- CanDoAutomaticLogin, (мой внутренний код)
- activeSessionIfExists, (мой внутренний код)
- AddSeperatorsToNumber:, (мой внутренний код)
- addRequestToExtendTokenForSession: connection:, (мой внутренний код)
- cworksImpression, (?)
- AddFilterWithInex:, (мой внутренний код)
- ApplySuperKeypad, (мой внутренний код)
- applicationDidOpenURL: sourceApplication:, (мой внутренний код)
- clearPersistedAppEventData, (?)
- canPresentMessageDialog, (?)
- applicationDidOpenURL: sourceApplication:, (мой внутренний код)
- DeleteOldLogLines, (мой внутренний код)
- hideAllHUDsForView: animated:, (мой внутренний код)
- ServerRegistrationResponseOk:, (мой внутренний код)
- requestForCustomAudienceThirdPartyID:, (?)
- automaticNotifiesObserversForKey:, (?)
- addOrRemovePendingConnection:, (?)
- addHEADOperation:, (сторонний ASIHTTPRequest) NSOperationQueue, (сторонний ASIHTTPRequest) -DisplayUserSuspendedDialogWithMessage:ReleaseByCaptcha:CaptchaURL:AndReturnTo:, (мой внутренний код)
- likeActionControllerForObjectID:, (?)
- _parseDialogConfigs:, (?)
- BackFromLottoLoginForNag: withEmail: andPassword:, (мой внутренний код)
- cacheRefreshDelay, (?) FBViewController, (сторонний - выглядит как FB SDK)
- deleteUnitTestUser: accessToken:, (?)
- FathersAndMothersDisplayMothers:, (мой внутренний код)
- addRoundedRectToPath: rect: radius:, (?)
- connection: didFailWithError:, (?)
- createTokenFromDictionary:, (?)
- FBSDKInitializeWithLaunchData:, (третье лицо - похоже на FB SDK)
- fileExtensionsToHandleAsHTML, (сторонний запрос ASIHTTP)
- _analyticsParameters, (?)
- _copyValueForKey: fromDictionary: toDictionary:, (?)
- appCallFromApplinkArgs_v2: applinkArgs: createTimeUTC: originalQueryParameters:, (?)
- requestWithUserID: fields: dataSource: session:, (?) FBGraphObjectPickerViewController, (третье лицо - выглядит как FB SDK)
- DisplayErrorConnectingToCheckoutServer, (мой внутренний код)
- graphObjectWrappingDictionary: (?)
Если вы определили методы в своем исходном коде с теми же именами, что и вышеупомянутые API, мы предлагаем изменить имена ваших методов, чтобы они больше не конфликтовали с частными API Apple, чтобы избежать пометки вашего приложения в будущих представлениях.
Кроме того, один или несколько из вышеупомянутых API могут находиться в статической библиотеке, прилагаемой к вашему приложению. Если у вас нет доступа к исходному коду библиотеки, вы можете найти скомпилированный двоичный файл с помощью инструментов командной строки "strings" или "otool". Инструмент "strings" может выводить список методов, которые вызывает библиотека, а "otool -ov" будет выводить структуры классов Objective-C и их определенные методы. Эти методы могут помочь вам определить, где находится проблемный код.
Означает ли это сообщение, что у Apple есть частные API с той же сигнатурой, что и у API, упомянутых выше? (это означает, что они используют "-DisplayUserSuspendedDialogWithMessage: ReleaseByCaptcha: CaptchaURL: AndReturnTo:" в качестве частной подписи - это невозможно)
как мы можем решить проблему - нужно ли нам менять все вышеперечисленные имена API?
как мы можем убедиться, что мы исправили проблему, или мы могли бы получить ту же ошибку самостоятельно (я пытался использовать app sccanner - он не нашел частного Api, и я пытался использовать строки и otool, но я не понимаю что мне нужно искать)
было бы очень полезно, если бы кто-то мог помочь нам в этом
о третьих сторонах - мы используем FB SDK (версия 3.19), ASIHTTPRequest