SeeddCollectorをiOS9に対応(1)

株式会社カーネルが提供しているアプリ SeedCollectorは前回に対応してAppStore上でリリース。
今回はiOS10及びiOS9に対応してAppStoreにアップする。
更新対象は201407にリリースしたモジュール。「201407_開発者ライセンス更新_app_store_更新」

予めOSとXcodeは以下のバージョンにアップデート

Xcodeを起動すると証明書エラーが表示された。
最近はProvisioning ProfilesなどはXcodeで自動作成するが、その設定がされていない。
※逆にProvisioning Profilesをサイトで作成してXcodeにインポートする方法がよくわからない。

「Automatically manage signing」チェックをONにする。

変更前

変更後

確認メッセージに同意すると署名の対象を選択可能となるとので今回はTeamを指定。

以下に従って署名等を設定。

上記でエラーが発生しなくなったのでエミュレーターで実行。

するとスプラッシュ画面が間延びして表示されたのでLunchImageの設定

images.xcassetsを選択すると確かにLunchImageが設定されていない。(LunchImage-2はよく分からない)

1Xには768×1024のイメージを2Xには1536×2048のイメージを設定(ドラッグドロップ)

SeedCollectorは縦方向での利用のみを対象とするのでPortraitのみを設定

Lunch Image Sourceは「LunchImage」と「LunchImage-2」から選択が可能なので設定した「LunchImage」を選択。

以上でSplashが正しく設定されたので再度エミュレータで起動すると今度は起動時にハングアップしログに「Application windows are expected to have a root view controller at the end of application launch」が出力されている。

アプリ起動時に呼ばれる関数「didFinishLaunchingWithOptions」でself.window.rootViewControllerが設定されていないのが原因なのでいかに従って修正。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    省略
    navi = [[UINavigationController alloc]initWithRootViewController:splash];

    self.window.rootViewController = navi;
    省略
}

iOS9でアプリが起動直後にクラッシュする場合の回避方法を参考とする