TwitterがインストールされていないとTwitterKitで認証できない


2ヶ月以上前から告知はされていたようですが、apps.twitter.comのサイトでTwitterアプリの
登録を行う場合に設定するCallbackURLを厳密に見るようになっていたようです。

Action REQUIRED - Sign in with Twitter users must whitelist callback URLs

現象

この対応をしていない状態で、Twitterアプリがインストールされていない端末で
Twitterへのログインが必要な操作を実行すると、以下のようなエラーが出力されます。

[TwitterKit] did encounter error with message "Error obtaining user auth token.":
 Error Domain=TWTRLogInErrorDomain Code=-1 
"<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error code="415">
Callback URL not approved for this client application. 
Approved callback URLs can be adjusted in your application settings
</error>
</errors>"

原因

Callback URL - Twitter Developer
こちらのドキュメントにあるように、oauth/request_tokencallback_urlにapps.twitter.comで登録したCallbackURLをちゃんと登録しないといけないようです。
そんなことを言われても、TwitterKitのloginAPIにはcallback_urlパラメータがありません。

解決策

Callback URL Example
こちらで回答されているように、以下のフォーマットでapps.twitter.comのCallbackURLsに追加すると、特にアプリの再申請などをしなくても正常に動作するようになりました。

twitterkit-CONSUMERKEY://

CONSUMERKEYは、Keys and Access TokensにあるApplication SettingsConsumer Key (API Key)です。
たとえばキーがAAAAAAAAならば、twitterkit-AAAAAAAA://になります。

参考

TwitterのAPIでcallbackURLをチェックするようになった