简体   繁体   中英

How to debug "The app references non-public selectors" error in Apple App Loader?

I am getting "The app references non-public selectors: connectionDidDisconnect:" when uploading my app to iTines. How do I find which module calls such selector?

My app uses Twilio Client library that was wrapped for mono via Monotouch binding project where I export connectionDidDisconnect: as ConnectionDidDisconnect in TCConnectionDelegate wrapper.

    [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);

}

The code works just fine. Only when I upload my app to iTunes I am getting that error.

Does Twilio lib call private selector connectionDidDisconnect: or something is wrong in my definition?

I will appreciate any help.

I believe Apple does a simple string search in the binary to check for private selectors. This means that any usage of the string connectionDidDisconnect: may cause Apple to reject your app.

One way to check if the Twilio library contains a particular string is to use the strings tool from a terminal:

$ strings Twilio.dll | grep connectionDidDisconnect

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM