EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動中に落ちる問題が発生。
*** Terminating app due to uncaught exception 'Invalid EvernoteSession', reason: 'Please use a valid consumerKey and consumerSecret.'
一つ前のバージョンでは発生せず、またなぜかiOS5で発生するがiOS6では発生しない。
もちろん consumerKey と consumerSecret は正しいものを設定しているし、そもそも前のバージョンからそんなところは変えていない。
しばらく悩んだ結果、
[EvernoteSession setSharedSessionHost:EVERNOTE_HOST
consumerKey:EVERNOTE_CONSUMER_KEY
consumerSecret:EVERNOTE_CONSUMER_SECRET];
のコードの前にEvernoteのサインアップ画面が表示されてしまうことが原因で、このコードをその前に持って行くことで問題は起きなくなった。
しかし、なぜ前のバージョンでは起きなかったのかが不明。
また、調査中に
evernote/evernote-sdk-ios にある
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string></string>
<key>CFBundleURLSchemes</key>
<array>
<string>en-<consumer key></string>
</array>
</dict>
</array>
の対応がなかったことも判明。
ずっとこのコードはなかったのだが、なくてもよいコードだったのだろうか。
このコードがないことでエラーが発生して困っている人もいたようなので、必要なはずなのだが。
不思議なのでメモしておく。
iOS Auth error with sample app – need new key? – Evernote for Developers – Evernote User Forum