2017-01-26 186 views
6

我得到了我的應用程序拒絕,因爲non-public api電話。MacOs拒絕非公開api

框架: '/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation'
:_NSErrorWithFilePath
:_NSErrorWithFilePathAndErrno

我沒有對項目文件夾grep定位那些方法,因爲我發現在另一個StackOverflow問題,但grep沒有提供任何東西。

grep -R '_NSErrorWithFilePath' * 
    grep -R '_NSErrorWithFilePathAndErrno' * 

我怎樣才能找到那些方法的位置?

編輯: 我試圖出口.app文件,並同時在其grepping我找到

Binary file myAppName.app/Contents/Frameworks/libswiftFoundation.dylib matches 

什麼是着手解決這個問題的最好方法是什麼?

解決
得到蘋果的App審查委員會這樣的回答:

感謝您與應用程序審查委員會。

應用審覈委員會已完成對您的 應用***的申訴的審覈,並確定您的應用的此版本不符合指南2.5.1中的 。

我們將很快將應用程序重新放回審閱過程。

感謝您對Mac應用程序開發的承諾。

申Y.應用程序審查委員會

因此很明顯,這是站在他們一邊的一個問題,現在因爲今天早上我的應用程序是停留「評審」,我與你保持聯絡。

+0

有任何第三方框架? –

+0

@WarrenBurton是的,但我不應該在相關框架上看到匹配嗎?第二個grep的結果看起來像是由Xcode生成的東西,我錯了嗎? (我的意思是'libswiftFoundation.dylib')因爲我沒有看到,而在第一grep的檢查源代碼 – r4id4

+0

你不一定會看到誰在使用這些方法。你可以在Foundation中看到它們,因爲它們可以被暴露(僅由Apple使用),但如果你的第三方庫只是靜態庫,並且使用這些方法,你將無法看到它。在這種情況下,只有前進的方法是開始對庫的'otool -ov'輸出進行猜測。 –

回答

0

我的應用因爲相同的原因而被拒絕〜1小時前。

幾個星期前,我的一個應用程序因爲同樣的原因被另一個框架拒絕了。那時那是一場虛驚,我現在100%確定。

我要求蘋果再次檢查我的應用程序。

請記住,您不必使用私有API來獲得拒絕。如果簽名大致相同就足夠了。

我的應用程序被拒絕,因爲它說,我用的是「CFHashByte」構造,其具有以下特徵:

CFHashBytes(uint8_t *字節,CFIndex長度)

我的應用程序已經調用的函數「 getBytes(UInt8字節,索引:Int,長度:Int)「。簽名是相似的,特別是命名和類型。所以也許這就是爲什麼自動檢查檢測到這個私人API調用。

所以也許瞭解您的應用的一個類似的簽名。否則,只需在收到錯誤報告的iTunes Connect部分中向Apple發送消息即可。

TL; DR:請檢查您的應用,有着相近的簽名功能。

問候, 薩沙

+0

但任何反應得到的答案後我去給你更新? – user3225395

+1

是的,該應用程序剛剛通過審查過程,相同的二進制文件。 –

0

我剛剛收到了以下注釋從蘋果的技術支持:

感謝您聯繫開發者技術支持。我們與App Review團隊合作確定並解決了意外的私人API問題。

如果您的應用程序當前處於拒絕狀態,請回復Resolution Center中的應用程序審查團隊,他們將繼續審覈流程。

或者,您也可以選擇上傳應用程序的新版本。

雖然您最初是爲此請求收取技術支持事件的費用,但我們已將替換事件分配回您的Apple開發人員計劃帳戶。

讓我們希望它傳遞。

+0

所以它看起來像是一個問題,很好知道。只要我收到答案,我會分享它:) – r4id4

相關問題