Приложения, которые используют непубличные 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 и их определенные методы. Эти методы могут помочь вам определить, где находится проблемный код.

  1. Означает ли это сообщение, что у Apple есть частные API с той же сигнатурой, что и у API, упомянутых выше? (это означает, что они используют "-DisplayUserSuspendedDialogWithMessage: ReleaseByCaptcha: CaptchaURL: AndReturnTo:" в качестве частной подписи - это невозможно)

  2. как мы можем решить проблему - нужно ли нам менять все вышеперечисленные имена API?

  3. как мы можем убедиться, что мы исправили проблему, или мы могли бы получить ту же ошибку самостоятельно (я пытался использовать app sccanner - он не нашел частного Api, и я пытался использовать строки и otool, но я не понимаю что мне нужно искать)

было бы очень полезно, если бы кто-то мог помочь нам в этом

о третьих сторонах - мы используем FB SDK (версия 3.19), ASIHTTPRequest

0 ответов

Другие вопросы по тегам