3

新しい 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

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

3

簡単な答え:

それらの問題のある API を取り除きますか?

より詳細な回答:

この Qt ページによると、Qt 4.7 を使用する場合、ビルド ターゲットを指定して Cocoa のみを使用できます。

Carbon は Apple によって廃止された (そして 64 ビット マシンでは動作しない) ため、App Store でリリースされるアプリケーションで開発者が Carbon API を使用することを Apple が望んでいないことは理にかなっています。

64 ビット マシンで動作しない古い API を取り除くことで、アプリの将来性を保証します。また、Qt には確かに、カーボン以外の方法で物事を行う方法に関するドキュメントがあります。

于 2012-05-26T14:17:58.350 に答える
0

まったく同じ問題が発生しました。私は最終的に、これらのいわゆるプライベート API が呼び出される場所までたどり着きました。それらは webkit 内から呼び出されます。webkit は、コンパイルされた静的ライブラリ + ヘッダー ファイルの形式で Apple から直接提供される webkit システム インターフェイス ライブラリを使用します。具体的には、パス src\3rdparty\webkit\WebKitLibraries の下にある 4 つのファイルです。

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

私はいつもそれが本当にプライベート API なのか疑問に思っていましたが、ドキュメントなしでそれを呼び出す方法を他に誰が知っているでしょうか? 今ではリンゴそのものであることが判明しました。nokia も digia もこれらのライブラリのソース コードを持っていないため、おそらく何もできません。

作成されたライブラリからのプライベート API アクセスが原因で、qtwebkit ベースのアプリが Apple によって拒否されるのは皮肉なことではありませんか?

私が間違っているか、何かが欠けている場合は、私を修正してください。私が間違っていることを本当に願っています。

于 2013-01-14T04:51:20.787 に答える