簡體   English   中英

iOS應用程序被拒絕:非公共API

[英]iOS App Rejected : non-public APIs

相同的應用程序之前已經被批准了兩次,但經過一些更改(例如設置圖像視圖並再次提交應用程序)后,Apple拒絕了我的應用程序以查看以下錯誤:

表現 - 2.5.1

您的應用使用或引用以下非公共API:

setResult:nextStarIndex

App Store上不允許使用非公共API,因為如果這些API發生變化,可能會導致糟糕的用戶體驗。

如果用戶包含私有API,他們如何測試他/她的應用程序?

我沒有在我的項目中的任何地方使用setResult:nextStarIndex代碼,那么我該怎么辦?

我最后一次遇到這個問題是因為我的代碼中的方法與Cocoa API中的私有方法之間存在名稱空間沖突。 您還可以使用grep找出您正在使用這些選擇器的確切位置:

grep -R 'setResult:' *

我和你有同樣的情況。 現在,該應用程序已准備好出售。 我希望我能幫你解決這個問題。

“您的應用使用或引用了以下非公共API:cancelAction:,defaultInstance”

我解決了步驟:

(1)grep -R'defaultInstance'*

在此輸入圖像描述 CrashReporterSDK匹配,所以我刪除它。

(2)grep -R'delayAction:'*它匹配一些項目函數名。 我也解決了他們。

(3)我建議在使用“grep -R”之前,你應該刪除項目的“構建文檔文件”,因此“grep -R”將為我們提供更多有用的信息。

如果您沒有通過搜索項目找到該引用,則問題最常見於已編譯的第三方庫中。 您可以使用“nm”列出已編譯庫中的符號。

我的一個應用程序被完全相同的原因拒絕了。 我使用最新的Facebook SDK(此時為4.15.1)更新了我的項目,並且應用程序通過了審核。

如果您需要簽入您的應用程序,只需轉到終端中的項目目錄路徑並嘗試以下命令。

    grep -R 'setResult:' .

在exutable上運行otool。

轉到構建目錄:

AppName的/編譯/ AppName.build /釋放-的iPhoneOS / AppName.build /目標正常/ ARMv6的/

並運行

字符串AppName | grep'setResult'知道哪個框架使用了該特定方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM