先日、Swiftに触る目的で過去にリリースしたアプリの全面書き直しを行いました。

アプリはこちらです。
チェックトレンド
ソースコードはこちら。
github

中身はjsonリーダーです。元となるデータの加工はサーバー側で行っており、クライアント側では統一したjsonフォーマットを扱っています。

今回、対応OSはiOS7とiOS8としました。この記事はその際に注意すべき点です。なお環境はXcode6.3.2です。


ライブラリの導入
iOS7とiOS8の両方に対応させる場合、CocoaPodsは使用できません。Swiftに対応したCocoaPods(v0.36以降)はDynamic Frameworkを作成してライブラリを導入します。しかしこれはiOS8以降でしか使えません。
解決策としては、手動で各frameworkを導入することです。git sbmodululeを使うのも良いでしょう。今回は手動で導入しました。
※Objective-CのライブラリをBridging-Headerで定義して使う方法もあります。

Launch Screen
起動時に表示される画面(Launch Screen)は、iOS7まではただの画像ですが、iOS8からはxibファイルを指定できます。これによりInterface Builderで編集になります。これならば画面サイズ毎に違う画像を用意する必要はありませんが、iOS7以前に対応するには、アプリの設定が必要です。
プロジェクトの設定で、「General」の「App Icons and Launch Images」の項目の「Launch Images Source」の右矢印から、画像を設定します。

google analytics
これはiOS7,8に直接関係ありませんが、昔はgoogle analyticsを導入する際に「アプリ」という区分が無く、サイトとして登録してIDだけ使った記憶があり、過去の自分のアプリではそうなっていました。
今はアプリ用の区分があるので、それを選択すれば良いです。今回は仕切り直すために新しく設定しました。
なお細かい点ですが、 self.window?.makeKeyAndVisible() する前にgoogle analyticsの初期化が必要です。

申請
申請周りのXcodeでよくわからないトラブルは発生するものと考えましょう。Xcodeの問題なのかわかりませんが、再起動すれば治るとかしばらくすると治るとか、そういうのが多発します。