AppMill
  • ESTIM
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
  • かんたん見積
  • 活用方法
  • Q&A
    • 契約・発注について
    • 開発について
    • ESTIMについて
  • メディア
  • お問い合わせ
  • Latest
  • 画面設計書
  • 要件定義
  • インタビュー
  • ディレクター
  • 仕様書
  • オフショア開発
  • trigger 
  • Crashlytics
  • Python
  • Fabric
  • Fastfile
  • Appfile
  • bundle id
  • Production Certificates 
  • Development Certificates 
  • Provisioning profile
  • LinterBot
  • YAMLファイル
  • Github
  • .xcconfig 
  • システムの環境
  • Cocoa pod
  • Gemfile
  • Bundle
  • Fastlane
  • Swiftlint
  • Travis CI
  • IOSプロジェクト
  • CI/CD
media-background

Xcode Configuration (.xcconfig) でビルド設定を簡単に管理

  • システムの環境
  • .xcconfig 
person-image

ビン太郎

2020-07-13 15:59:19

Content

  1. ​​​​​​​なぜ本番やテスト環境が必要なのか?
  2. 1. Build Configurationの作成
  3. 2. Xcode Configuration (.xcconfig)ファイルを使用する
  4. 3. 設定のキー/値をソースコードで使いましょう
  5. 4. プロジェクトを実行・ビルドする為に,設定を変更します
  6. アプリアイコンを変更
  7. まとめ
  8. 参照

​​​​​​​

​​​​​​​なぜ本番やテスト環境が必要なのか?

iOSアプリの環境は下記の二つの環境があります:

  • Development
  • Distribution

ただ、まずこれを無視にしても良いです。開発プロジェクトにはiOSチームだけでなく、バックエンドを始め、他の相互な開発側もあります。それと、システムを開発するにはお客さんの要望によってそれより多く環境を別れる場合もあります。一般的には3つの環境があります。

  • 開発: コーディング用の環境
  • ステージング : テスト用の環境
  • 本番 : 納品・リリースされたシステム

システムの環境と同様にしてiOS Projcetにも該当な構成を分けます。こうした各構成はシステムの環境に応じて環境のendpoint, key, settings …と合わせるにはビルドの構成を設定することが必要になります

一般的に iOS Project.には下記の3つの構成があります。

  • Debug
  • Staging
  • Release

他には、目的によって、product や appstore …の環境もあります。

1. Build Configurationの作成

iOS プロジェクトを新規作成する際に、Xcodeから自動でDebug と Release  の二つの設定が生成されます。ただ、要望によってその以外の設定追加しても良いです。

生成された設定から Stagingの設定する値を追加します。

名称を Stagingへ簡単に変更します。

2. Xcode Configuration (.xcconfig)ファイルを使用します

基本的に、Xcode構成ファイル(.Xcconfig)には、プロジェクトで使用されるキーと値のペアが含まれています。3つの環境に応じて3つの新しいファイル(. xcconfig) を作成します。間違えないようにファイル名は設定名と同じ名前にします。

続いて、Configurationsにて.xcconfigファイルの値を設定します。

こちらにて、任意で必要の情報を編集・追加します。

注意:それぞれのファイルの同じkey に対して違うvalueを設定することが必要です。

例:

  • Debug.xcconfig
FX_APP_NAME = Project (dev)
 
FX_APP_VERSION = 0.3
 
FX_APP_BUNDLE_ID = com.fx.TheLastProject.Debug
  • Staging.xcconfig
FX_APP_NAME = Project (Staging)
 
FX_APP_VERSION = 0.2
 
FX_APP_BUNDLE_ID = com.fx.TheLastProject.Staging
  • Release.xcconfig
FX_APP_NAME = The Last Project
 
FX_APP_VERSION = 0.1
 
FX_APP_BUNDLE_ID = com.fx.TheLastProject.Release

こちらは簡単でInfo.plistの編集したい行に$( キー名 )を追加します。

キー名のFXは僕が自分で設定する接頭ですので、任意に設定してください。

問題なければ上記のように表示されます。次に行きましょう!

3. 設定のキー/値をソースコードで使いましょう

Xcode Configurationだけでなく、ソースコードで設定する値を変更することもできます。まず、endpoint. key, token …などのキーを定義してみます。

  • Debug.xcconfig
FX_APP_NAME = Project (dev)
FX_APP_VERSION = 0.1.0
FX_APP_BUNDLE_ID = com.fx.thelastproject
 
 
BACKEND_URL = http:\/\/api.intensifystudio.com/development
CONSUMER_KEY = ck_a57e4fa2e14c12ae3f400371cf2951ec3dea5_dev
CONSUMER_SECRET = cs_c847caa35ce1041e9c69d239141f13f63bb22b_dev
  • Staging.xcconfig
FX_APP_NAME = Project (Staging)
FX_APP_VERSION = 0.2.0
FX_APP_BUNDLE_ID = com.fx.thelastproject
 
BACKEND_URL = http:\/\/api.intensifystudio.com/staging
CONSUMER_KEY = ck_a57e4fa2e14c12f400371cf2951ec3dea5_staging
CONSUMER_SECRET = cs_c847caa35ce1041e9c69d239141f13f63bb22b_staging
  • Release.xcconfig
FX_APP_NAME = The Last Project
FX_APP_VERSION = 1.0.0
FX_APP_BUNDLE_ID = com.fx.thelastproject
 
BACKEND_URL = http:\/\/api.intensifystudio.com/
CONSUMER_KEY = ck_a57e4fa2e14c12f400371cf2951ec3dea5
CONSUMER_SECRET = cs_c847caa35ce1041e9c69d239141f1f63bb22b

Info.plist ファイルを開き、新しい行を追加します。

Info.plistファイルのキーから値を取得するFunctionを書いてみます。

func infoForKey(_ key: String) -> String? {
        return (Bundle.main.infoDictionary?[key] as? String)?
            .replacingOccurrences(of: "\\", with: "")
 }

 

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let temp = infoForKey("Backend Url")
        endpointLabel.text = temp
        consumerKeyLabel.text = infoForKey("Consumer Key")
        consumerSecretLabel.text = infoForKey("Consumer Secret")
    }

4. プロジェクトを実行・ビルドする為に,設定を変更します

手順は下記になります

Scheme build > Edit Scheme > Run > Info > Build Configuration

各設定値に応じてSchemeを追加しても良いです。

アプリアイコンを変更

.xcconfigファイルにキーを新規追加します。

  • Debug.xcconfig
FX_APP_ICON = AppIconDebug
  • Staging.xcconfig
FX_APP_ICON = AppIconStaging
  • Release.xcconfig
FX_APP_ICON = AppIconRelease

 

Build Settingsにて$(FX_APP_ICON)の値でアプリアイコンを変更します。

OKでしたらこのようなイメージになります。

Assets.xcassetsファイルにアプリアイコンセットを追加します

.xcconfigファイルにある  value に応じて適切なネームを設定することも大事です。

まとめ

iOSプロジェクトの各環境の設定を自分でインストールおよび管理仕方を説明しました。それと、プロジェクトのセキュリティーも確保されます。

  • key, token, endpoint …が別々のファイルで保存されます。
  • ソースコードにて、ハードコーディングせずに定義されたキーのみで作業します。
  • 各環境でif…elseを使用しないで間違いを避けます 
  • 本番環境用のキーやアカウントを管理できます。
  • プロジェクトのキーが公開されないにはgitで管理できます。
  • 事前に定義された設定を選択することでビルド時間およびテスト時間が節約できます。

参照

  • https://www.appcoda.com/xcconfig-guide/
  • システムの環境
  • .xcconfig 
  • 運営会社

    • 株式会社Enlyt
    • Tel : 03-6555-3667
    Enlyt公式サイト
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
    • かんたん見積
    • 活用方法
    • メディア
    • 契約・発注について
    • 開発について
    • ESTIMについて
ESTIM
  • ESTIM
  • かんたん見積
  • 活用方法
  • Q&A
  • メディア
お問い合わせ
  • All Right Reserved
  • Privacy Policy