thilkの日記

このブログは,thilkのメンバー5名が,Androidアプリの開発について,日々の記録を綴っていくものです.

ずっとエラーが出る問題を解決!

thilkのかどわきです.

ここ1ヶ月以上ずっと悩まされ続けてきた不具合の原因をようやく特定できました!

同じ不具合で悩む人を出さないためにも,ここで報告させていただきます.

 

先に結論を言うとケータイのキャリアから提供されているアクセス制限サービスが原因でした.

 

【背景】

アプリ「AR鬼ごっこ」を起動すると,初期化するために,AWSを使って立てた自前のサーバと通信するようにしています.

普通は問題なく通信できるはずで,現に手元の実機でも正常に動作するのだが,万が一通信に失敗したときのために,エラーが出るようにしていました.

アプリを公開したところ,一部のユーザの方から,「ずっと『初期化中』のエラーが表示され続ける」という問合せをいただきました.(←これをもらったのが6月下旬)

 

【原因調査の過程】

最初は,「サーバと通信する部分のプログラムに問題があるのではないか」と思い,プログラムを見直しました.しかし,どこもおかしなところは見当たらず,また手元の実機では再現できない不具合のため,途方に暮れました.

しかしこのままでは解決できないので,とりあえず通信を行う際に使っていたライブラリを他のものに変えてみることにしました.試したライブラリは以下のとおりです.

  • AndroidHttpClient
  • OkHttp
  • AsyncHttpClient

しかし,一向に解決しません.しかも,私の手元にあるスマホと同じ型番のスマホでも不具合が出るといった問合せをユーザの方からいただき,ますます「???」という状態になりました.

「特定のIPアドレスからサーバへアクセスしたときに,拒否されるのでは?」と思い,AWS側のInboundセキュリティ設定を見直しましたが,問題ありませんでした.

もちろんGoogle検索しても何もヒットしません.

手も足も出なくなったところで,ふと「キャリアが提供しているアクセス制限サービス」が頭に思い浮かびました.私は二十歳を普通に過ぎているので,当然アクセス制限サービスは契約していませんが,試しにアクセス制限サービスを契約してみることにしました.すると大ヒット!!サーバへアクセスしようとしても,アクセスできないではありませんか!!

こうして,1ヵ月以上経った8月上旬,ようやく原因が特定できましたとさ.

 

【教訓】

二十歳を過ぎている開発者なら見落としがち(?)な「アクセス制限(webフィルタリング)サービス」にも気をつけよう!!

 

現在のバージョンは1.0.7!

Androidをお持ちの方は,一度,友人の方々と一緒に「AR鬼ごっこ」で遊んでみてください!

AR鬼ごっこ - Google Play の Android アプリ

 

【追記8/3】

その後,アクセス制限サービスによってアクセスできなかった理由が,IPアドレスで直接アクセスしようとしていることが原因だとわかりました.

ドメイン名を取得し,それを使ってアクセスするようにすることで,問題なくアクセスできるようになることを確認しました.