0

我刚刚提交了审查和基于 cocos2d-x (C++) 和 libcurl 构建的应用程序。

我正在使用支持 SSL 的 libcurl,以便从 Facebook 下载个人资料图片

当我从组织者验证我的应用程序或尝试分发时,我收到以下错误:

您的应用程序包含非公开 API 使用。请检查错误..

该应用程序引用了 Payload/..app/ {appName}:SSLCopyPeerCertificates、{appName}:SSLDisposeContext 等中的非公共符号。

当我在应用程序中搜索此功能时,我没有找到匹配项,但我认为它与 libcurl 有关,因为我在与 libcurl 相关的代码中不使用 SSL 期望

有什么建议么 ?

我发了一条消息要在苹果进行审核,但恐怕这可能会很长。

错误截图:http ://accessdev.s3.amazonaws.com/apps/ssl_reject.png

提前致谢

4

1 回答 1

1

我建议使用最新的 libcurl 版本,即撰写本文时的 7.28.1 版本。这包括与 iOS 原生 SSL API 相关的几个修复,请参阅:

我认为这应该解决您的问题与您不应该使用的各种符号(SSLDisposeContext等)。

如果我参考 Nick 的libcurl 7.28.1 iOS 构建在 Xcode 警告窗口中列出的非公共符号,则无法找到:

$ xcrun -sdk iphoneos nm -j -arch armv7 libcurl-device.a 2>/dev/null | grep SSL
_SSLClose
_SSLCopyPeerTrust
_SSLCreateContext
_SSLGetBufferedReadSize
_SSLGetNegotiatedCipher
_SSLGetNegotiatedProtocolVersion
_SSLGetSessionState
_SSLHandshake
_SSLRead
_SSLSetConnection
_SSLSetIOFuncs
_SSLSetPeerDomainName
_SSLSetProtocolVersionMax
_SSLSetProtocolVersionMin
_SSLSetSessionOption
_SSLWrite

当然,这同样适用于armv7s架构。

于 2012-12-08T16:35:27.390 回答