ユーザー様から色々とバグレポートを頂きまして、コツコツと対応していたので、この問題はかなり解決が進んだ状態だと思っています。
ユーザー様からのご連絡でWordpressの環境に依存してログイン出来ないケースがある事が一つわかりましたので、ご紹介させて頂きます。
ログイン出来ない原因の一つ(サーバーの返すHTTPヘッダーが壊れている)
ログイン出来ない、というよりは、このサブタイトルの状況になると「全てのAPI呼び出しでエラーが発生する」という事態を招きます。
というわけで、いきなりログイン出来ないという状況に見舞われます。
WordPressのXMLRPC APIを呼び出すと、応答としてXML形式のデータが返ってきます。
このXMLデータを解析してPressSyncはアプリ内にデータを保持したり、処理を行ったりしています。
APIからの応答データはWebメソッドを介して呼び出しているので、Webブラウザで特定のページを開いた時と同じく、HTTP通信の応答としてデータを受け取ります。
応答データ内のHTTPヘッダに不正な値が設定されている場合、PressSyncではXMLを解析出来ず、APIの呼び出しに失敗する事があります。
HTTPヘッダーの何が壊れているのか?
HTTPヘッダー内には「content-length」という項目があります。
この項目の意味は、コンテント(PressSyncの場合はAPIの戻り値として期待するXML)の長さが設定されるのですが、使われているApacheや、PHPのバージョンによっては、正しい長さが設定されない事があるようです。
この「content-length」が実際よりも1バイトでも短く設定されている場合、XMLファイルとしては「>」といった終端を示す文字が無くなってしまうため、XMLファイルとして成立しなくなり、PressSyncが応答データ不正と判断します。
「content-length」を信じない、という対応も可能なのですが、これを行うと別のところで更に深刻な問題を生み出しそうな為、アプリとしてはこのケースを想定しない方針です。
もしログイン時にXMLのParse系エラーメッセージが出ている場合は、この問題の可能性が非常に高いです。
お使いのサーバーの返すHTTPヘッダーの妥当性を、ご確認頂ければと思います。
以上
via PressSync