swift3で新規アプリを作ることになったので備忘録です。
他の備忘録
- StoryBoardを使わないでプロジェクト作成(Xcode8,Swift3)
- アプリ開発でdebug/staging/release環境があるならbundleは3種類あったほうが捗る
- Staging用の環境設定をXcodeに追加する
- 設定画面をコードだけで書く時いつも悩む
たぶん捗る
アプリ開発でdebug/staging/release環境があるならbundleは3種類あったほうが捗ります。プッシュ配信や、iPhone内で本番と開発をわけられるからです。
やりたいこと
- iPhone内で各環境、別々のアプリとして扱いたい
- 各環境で別々にプッシュ通知を送りたい
準備
- Staging用の環境設定をXcodeに追加する
- iOS DeveloperでAppIdとプロビジョニングファイル、プッシュ証明書を作成する。
以下は作成サンプル。適宜つくるといい。
debug環境は実機で動かせるだけでよいので、developmentのプロビジョニングファイルしか作成しない。staging環境のプッシュはadhocで配布したものを対象にしているのでproductionのみ作成する。debug環境のプッシュはdebug実行しながら受け取りたい場合は作るといい。
| Debug | Staging | release | |
|---|---|---|---|
| AppId | hoge_debug | hoge_stg | hoge |
| プロビジョニング(dev) | ○ | ☓ | ☓ |
| プロビジョニング(dist) | ☓ | ○ | ○ |
| プッシュ(dev) | ○ | ☓ | ☓ |
| プッシュ(pro) | ☓ | ○ | ○ |
Xcodeの設定
- Target>General>SigningのAutomatically manage signingのチェックを外す
運用
- 開発中はbundleをdebugにして開発する
- adhocしたくなったら、bundleをstagingにする。Archiveする際、普通にやったらreleaseのreleaseのプロビジョニングが使用されてしまうので、Edit Scheme>Archive>Build Configurationで、Stagingを選択する
![[76a0c37f979a72bf250d0971f6fcdb4a]_%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202017-01-24%2011.17.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F50839%2Ffffce4b2-0dd2-998f-c1ae-6e7d0b86cec8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=82b0ccee8b623929284c1672aec402c2)
![[feeee7b8d2969bcac015aeaa96fb0031]_%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202017-01-24%2011.21.23.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F50839%2F9bf128e3-3722-040b-11fc-a570bd70153d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5959c86c35346f471bac099f00d031e9)