2012-11-13 29 views
2

當上傳我的應用程序到iTines時,我得到了「應用程序引用非公共選擇器:connectionDidDisconnect:」。我如何找到哪個模塊調用這樣的選擇器?如何在Apple App Loader中調試「應用程序引用非公共選擇器」錯誤?

我的應用程序使用Twilio客戶端庫,它通過Monotouch綁定項目包裝爲單聲道,我在此處導出connectionDidDisconnect:作爲TCConnectionDelegate包裝中的ConnectionDidDisconnect。

[BaseType (typeof (NSObject))] 
[Model] 
public interface TCConnectionDelegate 
{ 
    //@required 
    //some code was removed 
    /** The TCConnection has just disconnected. 
    @param connection The TCConnection has just disconnected. 
    @returns None 
    */ 
    //-(void)connectionDidDisconnect:(TCConnection*)connection; 
    [Export ("connectionDidDisconnect:")] 
    [Abstract] 
    void ConnectionDidDisconnect(TCConnection xonn); 

} 

該代碼工作得很好。只有當我上傳我的應用程序到iTunes時,我得到了這個錯誤。

是否Twilio庫調用私人選擇器connectionDidDisconnect:或者我的定義是錯誤的?

我會很感激任何幫助。

+0

我無法找到字符串'connectionDidDisconnect'在任何蘋果的公共或私人共享iOS 6.0 SDK中的庫。 –

回答

2

我相信Apple會在二進制文件中執行一個簡單的字符串搜索來檢查私有選擇器。這意味着任何字符串connectionDidDisconnect:的使用都可能導致Apple拒絕您的應用程序。檢查

的一種方式,如果Twilio庫包含一個特定的字符串是從終端使用strings工具:

$ strings Twilio.dll | grep connectionDidDisconnect 
+0

這就是我的想法。 Apple無法找到選擇器所屬的方法/類別。我的應用程序可執行文件包含字符串「connectionDidDisconnect:」 – alecd4

+0

此字符串也在libTwilioClient.a庫中,用於我從Twilio獲取的ios應用程序。 connectionDidDisconnect是Twilio期望我的應用程序實現的委託中的回調函數。假設Apple會拒絕我的應用程序,這裏有什麼解決方案? – alecd4

+0

alecd4:也許聯繫Twilio,以便他們可以更改其選擇器的名稱? –

相關問題