iOS開発とGitタグ

いままでAppleにアプリを申請するタイミングでタグを打っていて、 その後にリジェクトされると以下のようなタグが残ることがありました。 非常にダサいですね。

  • 1.0.0
  • 1.0.0-2
  • 1.0.0-3

最近は少し学習して、QAに入る段階でrelease/1.0.0といったブランチを切るようにしました。 審査に出した段階ではまだタグは打たず、もしもリジェクトされた場合は引き続きrelease/1.0.0を更新します。 審査を通過した場合はそこでタグを打って、release/1.0.0をmasterにマージします。 以下の図のようなイメージです。

このように運用することで、余計なタグが打たれることはありませんし、審査中のバージョンを見失うこともありません。 もしかしたら普通のiOSデベロッパーは当たり前のように実践していることなのかもしれませんが、 自分は最近までダサいタグを打ったり、タグを打ち直したりしてたので書きました。


ISMemoryCache 0.1.0

世の中にはたくさんキャッシュの実装があり自前の実装は捨てろなんて言われたりするのですが、 それでも自分の思い通りのキャッシュ機構を作りたくなるものだと思います。 自分はlimitに達したときにすべてのオブジェクトを削除するようなメモリキャッシュではなく、 他からの参照がないオブジェクトを選択して削除するようなメモリキャッシュが欲しかったのでISMemoryCacheを実装しました。 最近、ISMemoryCacheを更新して0.1.0を出したので、その機能を紹介します。

  • アプリがバックグラウンドに入ったときに他からの参照がないオブジェクトを削除
  • メモリ警告が出たときにすべてのオブジェクトを削除

ディスクキャッシュについてはISDiskCacheというのもあるので、そちらをどうぞ。


iOSシミュレータの日本語フォントが変になるのを防ぐ

iOSシミュレータの日本語フォントが変になっちゃったときの対処法 – らっこのじゆうちょう

こちらの記事にある通り、日本語よりも中国語が優先されていると日本語のフォントがおかしくなってしまうのですが、設定画面から日本語に設定し直すのはちょっとだけ面倒です。 Arguments Passes On Launchに以下の値を設定しておくと、必ず日本語に設定された状態でアプリが立ち上がるので、付き合いが長いプロジェクトでは設定しておくと楽かもしれません。

1
-AppleLanguages (ja)

参考: iOS – Launch Arguments を使った一つ上の NSLocalizedString – Qiita