我们有一个使用旧Facebook iOS SDK
模块的应用。应用程序因app中的非公开API而被拒绝:
我们在您的应用中发现了以下非公开API:
setUrlRequest:
我们要求技术支持帮助我们找到应用中哪个模块使用具有此名称的方法。技术支持人员说要尝试这个命令:
strings -a <libraryname.a> | grep -e 'setUrlRequest'
和 YES
,旧的Facebook iOS SDK
模块都有这样的方法。
所以我尝试使用最新的(3.5.1)SDK。从源头构建它。试着去骗它:
strings -a libFacebookSDK.a | grep -e 'setUrlRequest'
输出:
-[FBRequestConnection setUrlRequest:]
setUrlRequest:
setUrlRequest:
setUrlRequest:
strings: for architecture armv7 object: libFacebookSDK.a(FBDialog.o) malformed object (unknown load command 1)
strings: for architecture cputype (12) cpusubtype (11) object: libFacebookSDK.a(FBDialog.o) malformed object (unknown load command 1)
所以即使是最新的Facebook iOS SDK
也有方法,因为在App Store的路上可以拒绝该应用。
如何解决这个问题?
更重要的是,如何使用其他使用Facebook iOS SDK
的应用程序。
答案 0 :(得分:0)
我认为这是审核小组的误报。以下是相关方法:https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBRequestConnection.m#L266。这不是私有API,只是Facebook iOS SDK中定义的FBRequestConnection类的方法。它用作此处定义的urlRequest属性的setter:https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBRequestConnection.h#L123。该名称恰好与App Store可能正在观看的文本模式冲突。
尝试回复iTunes Connect中的审核小组,说明这些详细信息。如果你能提供解释,他们通常对这样的事情是合理的。
答案 1 :(得分:0)
这是Xamarin's MonoTouch
产品中的问题。版本6.2.6
的更新解决了问题原因:
Removal of some non-public Apple selectors (name clashes, old beta selectors and newly blacklisted)