使用非公开API的应用程序将被拒绝

我们的应用程序已被拒绝苹果与以下消息:(我列在任何api提到的位置列)

我们发现您的应用使用了一个或多个非公开的API,这不符合“App Store评论指南”。 使用非公开的API是不允许的,因为如果API改变,它可能导致糟糕的用户体验。

我们在您的应用程序中find以下非公开API:

  • BuyFreeWinTicket_marshal ___:numbers:os:,(我的内部代码)
  • getCellValidationInfo_unmarshal ___:ok :,(我的内部代码)
  • AddAnimationPointForBall:nextX:nextY:forDuration :,(我的内部代码)UIViewController,(?)
    • addSessionCookie :,(我的内部代码)
    • CanDoAutomaticLogin(我的内部代码)
    • activeSessionIfExists,(我的内部代码)
  • AddSeperatorsToNumber :,(我的内部代码)
  • addRequestToExtendTokenForSession:连接:,(我的内部代码)
    • cworksImpression,(?)
  • AddFilterWithInex :,(我的内部代码)
  • ApplySuperKeypad,(我的内部代码)
  • applicationDidOpenURL:sourceApplication :,(我的内部代码)
    • clearPersistedAppEventData,(?)
  • canPresentMessageDialog,(?)
  • applicationDidOpenURL:sourceApplication :,(我的内部代码)
  • DeleteOldLogLines(我的内部代码)
  • hideAllHUDsForView:animated:,(我的内部代码)
  • ServerRegistrationResponseOk :,(我的内部代码)
  • requestForCustomAudienceThirdPartyID :,(?)
  • 自动通知观察者关键字:,(?)
  • addOrRemovePendingConnection :,(?)
  • addHEADOperation :,(3rd party ASIHTTPRequest)NSOperationQueue,(3rd party ASIHTTPRequest)-DisplayUserSuspendedDialogWithMessage:ReleaseByCaptcha:CaptchaURL:AndReturnTo :,(我的内部代码)
    • likeActionControllerForObjectID :,(?)
  • _parseDialogConfigs :,(?)
  • BackFromLottoLoginForNag:withEmail:andPassword:,(我的内部代码)
    • cacheRefreshDelay,(?)FBViewController,(第三方 – 看起来像FB SDK)
  • deleteUnitTestUser:accessToken :,(?)
  • 父亲和母亲显示母亲:,(我的内部代码)
  • addRoundedRectToPath:rect:radius :,(?)
  • 连接:didFailWithError :,(?)
  • createTokenFromDictionary :,(?)
  • FBSDKInitializeWithLaunchData:,(第三方 – 看起来像FB SDK)
  • fileExtensionsToHandleAsHTML,(第三方ASIHTTPRequest)
  • _分析参数,(?)
  • _copyValueForKey:fromDictionary:toDictionary :,(?)
  • appCallFromApplinkArgs_v2:applinkArgs:createTimeUTC:originalQueryParameters :,(?)
  • requestWithUserID:fields:dataSource:session:,(?)FBGraphObjectPickerViewController,(第三方 – 看起来像FB SDK)
  • DisplayErrorConnectingToCheckoutServer,(我的内部代码)
  • graphObjectWrappingDictionary:(?)

如果您在源代码中定义了与上述API相同名称的方法,我们build议更改您的方法名称,以便它们不再与Apple的私有API冲突,以避免将来的提交中标记您的应用程序。

另外,一个或多个上述API可能驻留在您的应用程序中包含的静态库中。 如果您无法访问库的源代码,则可以使用“strings”或“otool”命令行工具search编译的二进制文件。 “串”工具可以输出库调用的方法列表,“otool -ov”将输出Objective-C类结构及其定义的方法。 这些技术可以帮助您缩小问题代码所在的范围。

  1. 这个消息是否意味着苹果公司的私有API和上面提到的API具有相同的标志? (这意味着他们使用“-DisplayUserSuspendedDialogWithMessage:ReleaseByCaptcha:CaptchaURL:AndReturnTo:”作为私人签名 – 这是不可能的)

  2. 我们怎么能解决这个问题 – 我们是否需要更改所有上面的API名称?

  3. 我们怎么能确认我们解决了这个问题,或者我们可以自己得到相同的错误(我试过使用应用程序扫描仪 – 它没有find任何私人的Api,我试图使用string和otool,但我不了解我需要寻找什么)

如果有人能帮助我们,这将是非常有帮助的

关于第三方 – 我们使用FB SDK(版本3.19),ASIHTTPRequest