基于Qt开发的应用程序中的QWebView控件与Mac App store的冲突


当你开发完成一款基于Qt的应用程序想要将其上传到Mac App Store上时,如果程序里用到了QWebview 控件, 那么"恭喜"你, 你将不能通过Mac App Store 的审核,返回给你的错误可能是是这样的,

Use of non-public APIs not permitted. Following non-public APIs are included:

'usr/lib/libSystem.B.dylib'

+++ : bootstrap_look_up2

+++ : bootstrap_register2

'usr/lib/libicucore.A.dylib'

+++ : ubrk_getRuleStatus

+++ : ubrk_setUText

当然别人早就发现这个问题并已经上报给Qt官方了(比如这里就有人提到),但是目前为止(Qt5.2 已发布),并没有修复这个问题,解决方案也有很多种,我这里采取的方法是在程序里用cocoa库的控件来代替Qt的QWebview控件,这样的好处是,减小了程序包的大小,而且减得不是一点点,因为程序因为包含QWebview而要拷很多相关的Framework,用cocoa库的webview就不用了;坏处就是一定程度上破坏了程序的跨平台性。

实现方法:可以参考这里 。

你可能感兴趣的:(基于Qt开发的应用程序中的QWebView控件与Mac App store的冲突)