2012-05-26 50 views
3

我的新Qt應用程序提交已被Mac App Store拒絕。原因是:Qt Mac App Store應用程序被拒絕

Binary Rejected May 23, 2012 07:42 PM 
Reasons for Rejection: 
2.5 Apps that use non-public APIs will be rejected 
2.30 Apps that do not comply with the Mac OS X File System documentation 
will be rejected 
May 23, 2012 07:42 PM. From Apple. 
2.5 

The use of non-public APIs can lead to a poor user experience should these APIs 
change in the future, and is therefore not permitted. The following non-public 
APIs are included in your application: 

: NSAccessibilityCreateAXUIElementRef 
: NSAccessibilityHandleFocusChanged 
: NSAccessibilityUnregisterUniqueIdForUIElement 
: NSMouseMovedNotification 
: OBJC_IVAR_$_NSCGSContext._cgsContext 
: _NSDrawCarbonThemeBezel 
: _NSDrawCarbonThemeListBox 
: _NSPopUpCarbonMenu3 
: _NXShowKeyAndMain 

我該如何解決這個問題?

+0

請指定您使用的是哪個版本的Qt – NSGod

+0

Qt版本:4.8.1 –

+0

當我將應用程序提交給Mac App Store時,我遇到了完全相同的問題。你最終解決了這個問題嗎? –

回答

3

簡單的答案:

擺脫那些違規API的嗎?

更詳細的解答:

According to this Qt page,如果你使用Qt 4.7,你可以指定你的build目標僅使用可可。

由於Carbon已被Apple棄用(且不適用於64位計算機),因此蘋果不希望開發人員在將在應用商店發佈的應用程序中使用Carbon API。

通過擺脫任何不適用於64位機器的舊API,將來可以證明您的應用程序。而Qt當然有文件說明如何以非碳的方式做事。

+0

當我讀到'... Carbon ...' – UmNyobe

+0

時,報警響起了我的腦海中,你確定所有被拒絕的API都是碳的嗎? –

+0

不,我不確定...但許多/這些API中列出的大多數都是,如果您正確地構建QT(以支持64位和可可,而不是碳***),我懷疑這會在應用程序商店接受您的應用程序方面走得很遠(如果不是全部的話)。 –

0

我得到了完全相同的問題。我終於追溯到這些所謂的privatate apis被稱爲的位置。他們從webkit內部調用。 webkit使用一個webkit系統接口庫,它是以編譯靜態庫+頭文件的格式直接從蘋果提供的。更具體地講,他們是四個文件所在的路徑下的src \的3rdParty \ WebKit的\ WebKitLibraries:

libWebKitSystemInterfaceLeopard.a libWebKitSystemInterfaceLion.a libWebKitSystemInterfaceMountainLion.a libWebKitSystemInterfaceSnowLeopard.a

我總是在想,如果它真的私人api,還有誰會知道如何在沒有任何文檔的情況下調用它?現在它變成了蘋果本身。由於諾基亞或digia都沒有這些庫的源代碼,因此他們可能無法做到這一點。

由於創建庫的私有api訪問權限,任何基於qtwebkit的應用程序都將被拒絕,這是不是很諷刺?

如果我錯了或錯過任何東西,請糾正我。我真的很希望我錯了。

相關問題