Параметр обратного вызова, который вы пишете в настройках своего приложения в Twitter, игнорируется, вы можете написать что угодно, например: http://www.google.com (что угодно, так как оно игнорируется).
Когда вы добавляете URL обратного вызова в #define, его значение будет отправлено в твиттер на шаге авторизации владельца и переопределит значение, которое вы ранее написали на веб-сайте Twitter. Странно, я знаю. Это связано с этой уязвимостью безопасности .
Параметром обратного вызова является URL, который Twitter отправит пользователю после аутентификации. При работе на веб-сайтах вместо приложений обратный вызов URL используется для восстановления контроля над потоком OAuth.
В Приложениях вы можете настроить его на собственную схему, такую как myapplication: // twitter, а затем зарегистрировать схему myapplication в своем приложении. Таким образом, после аутентификации веб-сайт Twitter, работающий в UIWebView или Safari, запускает этот URL-адрес, который, как известно iOS, назначен вашему приложению, и таким образом вы восстанавливаете контроль над потоком OAuth.
Это теория, я не знаю точно, как работает ShareKit. Может случиться так, что он запускает аутентификацию на UIWebView и обнаруживает активность пользователя по восстановлению управления вручную, что является еще одним способом сделать это.