LoginSignup
19
19

More than 5 years have passed since last update.

Xcode6(Swift)で1つのプロジェクトから開発版とリリース版の2つのアプリを作りたい

Last updated at Posted at 2015-02-18

Xcode6の1つのプロジェクトから、開発版とリリース版の2つのアプリを作りたい、と思います。

開発版とリリース版で変えたいポイント

開発上必要

  • APIのURL

開発の時にフィードバックをもらいやすくする

  • アプリのアイコン
  • アプリの名前
  • アプリで常に開発版なのか?を表示する

Xcode プロジェクトのターゲット管理

開発版とリリース版でプロジェクトを分ける

2.png

APIのURL

サーバーサイドが必要なアプリだとURLを開発用途で別に作っているハズ。
定数として色々と環境によって変更したい、というのもあります。

定数のclass

定数を設定するclassを用意します。
定数を設定するいい方法があるかもしれないんですが、今回はとりあえず。

Constants.swift
import Foundation

class Constants:NSObject {
    #if DEBUG
    let MESSEAGE = "こんにちは(開発中です)"
    #else
    let MESSEAGE = "こんにちは"
    #endif
}

ViewController

設定した定数を呼び出します。

ViewController
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var LabelMessage: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        LabelMessage.text = Constants().MESSEAGE

        println(Constants().MESSEAGE)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

if debug の設定

「#if DEBUG」と書いて分岐したので、DEBUGであることを指定します。
複製したターゲット毎に設定します

TARGETS > Build Settings > Swift Compiler - Custom Flags > Other Swift Flags
-D DEBUG

1.png

アプリのアイコン

App Icons Source を指定します。

スクリーンショット 2015-02-17 23.51.59.png

アプリの名前

ターゲット毎のInfo.plistにある「Bundle display name」が表示されるアプリの名前になります。

スクリーンショット 2015-02-18 0.07.04.png

アプリで常に開発版なのか?を表示する

画面の下部に「開発版」であることを表示するようにしてみます。
アプリによっては、書き換えが必要になると思います。そこは、よしなに。

AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        let splitViewController = self.window!.rootViewController as ViewController

        let size = CGSize(width: splitViewController.view.frame.size.width, height: 50)
        let postion:CGPoint  = CGPoint(x: 0, y: splitViewController.view.frame.size.height-50.0)
        let view:UIView      = UIView(frame: CGRect(origin: postion, size: size))


#if DEBUG
view.backgroundColor = UIColor(red: 255, green: 0.0, blue: 0.0, alpha: 0.5)
#else
view.backgroundColor = UIColor(red: 138, green: 138, blue:0, alpha: 1)
#endif


        let devInfoLabel   = UILabel()
        devInfoLabel.text  = "開発版:" + Constants().MESSEAGE

        devInfoLabel.font      = UIFont.systemFontOfSize(14)
        devInfoLabel.frame    = CGRect(origin: CGPoint(x: 10, y: splitViewController.view.frame.size.height-50.0), size: size)

        splitViewController.view.addSubview(view)
        splitViewController.view.addSubview(devInfoLabel)


        return true
    }

スクリーンショット-2015-02-18-0.00.23.png

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19