-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Appstore上架被拒绝 #723
Comments
找到问题原因了,alivcffmpeg.framework使用的旧版本,旧版本的libcurl缺少上面那两个函数curl_multi_poll, curl_multi_wakeup,这是libcurl组件近期新增的函数,appstore扫描时没找到就当做去使用系统的函数了。 |
根本原因是libcurl的这2个符号 苹果也有一份,在ffmpeg.framework里这2个符号也被导出了,导致苹果认为non-public的符号被导出,解决方法是将它改名 或者 彻底隐藏:
|
Hi NDluolin, this problem happens sometimes, it's a common issue, and the root cause is the iOS system (and the macOS system) is using libcurl to support the HTTP implement(maybe not only HTTP), and on iOS, maybe for the security reason, the APIs of the shipped libcurl in iOS was made as private APIs, you can't call them in your iOS applications. They will check your application to make sure you didn't call them, but unfortunately, the checking program is not smart enough, it should suppose your app calls the Non-public API of its libcurl, so you will receive the issue. In fact, everyone can use libcurl as a part of his application, even if you can use the libcurl APIs on macOS, as they are public. So what you need to do is replay to Apple that you didn't use the Non-public API, you have your own libcurl in your alivcffmpeg framework, and you are using your libcurl, then the issue will be gone. And In your case, the _curl_multi_poll, _curl_multi_wakeup APIs can't be found in the alivcffmpeg framework, then this makes your application did call the private libcurl in the iOS system. And you must replace your alivcffmpeg with the new one, I think the old one will lead to other problems when running, dead block, crash, errors and so on. @futan-yj I think you didn't get the root cause, and your solution 1 can't be recommended, it is not our bad. And solution 2 is useless in this case. |
依赖的libcurl库中函数使用过不了苹果审核,求方案。
ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/CicadaPlayerSDK.framework/CicadaPlayerSDK: _curl_multi_poll, _curl_multi_wakeup. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
The text was updated successfully, but these errors were encountered: