App Store へのリリース

受託の仕事をしていると、ホント、いろんなことある。

まず、時間的な制約。必ず納期があるものの、想定外のことが起こるので余裕を持っていたつもりでも、いつの間にか時間が足りなくなってしまう。

今回最もハマったのが、お客様の証明書を組み込んで納品しないといけないこと。これまじきつかった・・普段は自分の証明書を組み込むだけなのでなんとでもなるのですが、お客様の証明書を組み込む手順がわかっていてもうまくいかない。結局、iOS Developer と書いてあるのを、iOS Distribution に書き換えたらうまくいった・・・こんなのどこにも書いてないのですが。自分の遭遇している問題にズバリ答えてくれる source はない、というのが身に染みた出来事でした。

次に、API を通じてサーバと情報をやり取りしているのですが、テスト段階で問題ないことがわかっていても、いざ、本番データを入れてみるとうまく接続できないことが・・・よく調べてみると、はじめの 1 record だけ認識されず、それ以外の record は問題なく接続できる。なんだこれは。原因不明。ブラウザで API の URL 直打ちでもダメだ。これには肝を冷やしてしまった。手が震えてくる。解決できず、問題の record を一回削除して、再度 insert したらうまくいった。どういう訳だ?sqlite3 の bug ではないか?

今度は同じく別の API へ接続してみたら、意図通りの動作になっていない。具体的には、期日までは disable で、期日を迎えたら enable になるはずがそうはなっていない。DB の record 確認、日付に問題なし、万事休すだ。おかしい、ここは何度も検証して問題ないことを確認している、なぜこの段で意図しない動きになるのだ?ああ、思い出した、force or abort  flag を設定していたんだった。force にすると、期日に関係なくenable になるので、この flag を normal にしないと、おっと、Android のアプリがまだリリースできていない、審査が緩いとは言え、force にするのは少し待とう。

こんな感じで、結局、本番を見据えたテストしておけば焦らないで済む訳なのですが、iOS の審査が済まないと本番のテストって審査の結果が気になって手がつかなくなってしまうのですよね、でも、ここでうまくいかなかったら、binary を変更できないのでまさに万事休すのはずで、やっぱりやっておくべきだなと。

あー疲れた・・・