Help us understand the problem. What is going on with this article?

<CocoaPods>SwiftでmBaaSを始めよう!

More than 3 years have passed since last update.

【お知らせ】こちらのドキュメントは古くなっています。最新版をご覧ください▼
<CocoaPods>SwiftでmBaaSを始めよう!(use_framewoks!を有効にした方法)

【Swift×mBaaS】シリーズ概要

★★★【NEW】もっと簡単に導入できるようになりました!★★★
▼詳しくはこちら▼
<CocoaPods>SwiftでmBaaSを始めよう!(use_framewoks!を有効にした方法)

手順

1. XcodeでSwiftのプロジェクトを作成する

  • 既存のプロジェクトを使う場合はとばして下さい。
  • 作成方法はさまざまなサイトや本に書いてあるかと思いますが、一応簡単なプロジェクトの作成方法を載せておきます。
    • Xcodeを開き、「File」→「New」→「Project...」を選択します。
    • iOS下の「Application」→「Singl View Application」選択し、「Next」を選択します。
    • 「Product Name」を記入し、「Language」は「Swift」を選択してください。
    • できたら「Next」を選択すると、保存先選択画面が出るので適当な場所に保存をしてください。

2. CocoaPodsでiOS用SDKをインストールする

  • ターミナルを起動します
    • ターミナルはアプリケーション一覧の「その他」の中にあります
    • 以下の操作でコマンドを入力します。XXX :~ YYY $のあとに続けて、指定のコマンドの$以降を入力してください。※XXXYYYはユーザー名なのでそれぞれ異なります。ディレクトリを移動すると~の部分が変わります。

スクリーンショット 2016-02-09 9.18.30.png

  • 1.で作成した新規あるいは既存のプロジェクト内の「プロジェクト名.xcodeproj」と同じディレクトリにターミナル上で移動します。(※大事!これをやっておかないと失敗します!!)
    • 次のコマンドを入力:$ cd [指定ディレクトリ]
  • CocoaPodsを「はじめて使う場合」→ CocoaPodsをインストールする。
    • 次のコマンドを入力:$ sudo gem install cocoapods
  • CocoaPodsを「既にインストールしている場合」→CocoaPodsのバージョンアップをする。
    • 次のコマンドを入力:$ sudo gem update --system
  • インストールが初めての場合あるいは、アップグレードして最初の起動の場合はセットアップをする。
    • 次のコマンドを入力:$ pod setup
  • バージョン確認をします。
    • 次のコマンドを入力:$ pod --version
  • バージョンが表示されればOK!
  • Podfile(インストールするライブラリを指定するファイル)を作成します。
    • 次のコマンドを入力:$ pod init

スクリーンショット 2016-02-09 9.36.14.png

  • 作成したPodfileを開いて、以下の内容を記述します。
    • プロジェクト名」の部分は、作成しているXcodeプロジェクトでSDKを利用するプロジェクト名を記入してください。
Podfile
platform :ios,'8.0'

target "プロジェクト名" do
   pod 'NCMB', :git => 'https://github.com/NIFTYCloud-mbaas/ncmb_ios.git'
end
  • workspaceを作成します。
    • 次のコマンドを入力:$ pod install --no-repo-update
  • 作成された「プロジェクト名.xcworkspace」をダブルクリックしてXcodeを開きます。

3.ヘッダファイルを作成する

  • CocoaPodsでインストールしたSDKをSwiftから利用できるようにするためにはヘッダーファイルを作成する必要があります。
  • 先ほど開いたXcode左側のファイル一覧から、AppDelegate.swiftファイルと同じディレクトリにXXXXXXX-Bridging-Header.hを作成してください。※XXXXXXXのところは任意です。プロジェクト名とかを入れておくといいです。

    • AppDelegate.swift上で右クリックし→「New File...」を選択→iOS下の「Source」を選択→「Header File」を選択→「Next」をクリックするとファイル名を入力する画面が出ますので、「Save As:」の欄に「XXXXXXX-Bridging-Header」を記入「Create」をクリックするとファイルが作成されます。
  • 作成したファイルの中に下記の内容を追記してください。

XXXXXXX-Bridging-Header.h
#import <NCMB/NCMB.h>

4.XXXXXXX-Bridging-Header.hファイルをプロジェクトに読み込む

  • 「Build Settings」をクリックしてください。
  • 「Objective-C Bridging Header」をダブルクリックすると入力用のふきだしが出てくるので、XXXXXXX-Bridging-Header.hをドラッグ&ドロップしてください。
  • XXXXXXX-Bridging-Header.hのディレクトリが入力されたことを確認してください。
    • 例)User/*****/Documents/**user**/pushTest/pushTest/XXXXXXX-Bridging-Header.h

032.png

(2016/06/23更新)

5. AppDelegate.swiftを編集する

  • ニフティクラウドmobil backendを使うために必要なAPIキーの設定とSDKの初期化処理はAppDelegate.swiftここに書いておきます。
  • またデータストアにデータを上げるサンプルコードもここに書くことで起動時にデータを保存できます。
  • 下記のコードをAppDelegate.swiftに貼り付けてください。
  • そのとき、2つのAPIキーをニフティクラウドmobil backendのダッシュボード上からコピーして書き換えてください。(※アプリケーションキーとクライアントキーをそれぞれ「YOUR_NCMB_APPLICATIONKEY」と「YOUR_NCMB_CLIENTKEY」の部分に書きます。)
AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    //********** APIキーの設定 **********
    let applicationkey = "YOUR_NCMB_APPLICATIONKEY"
    let clientkey      = "YOUR_NCMB_CLIENTKEY"

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        //********** SDKの初期化 **********
        NCMB.setApplicationKey(applicationkey, clientKey: clientkey)

        //********** データストアにデータを保存 **********
        let query = NCMBQuery(className: "TestClass")
        query.whereKey("message", equalTo: "Hello, NCMB!")
        query.findObjectsInBackgroundWithBlock{(NSArray objects, NSError error) in
            if error == nil {
                if objects.count > 0 {
                    let message = objects[0].objectForKey("message") as! NSString
                    print("[FIND] \(message)")
                } else {
                    var saveError: NSError?
                    let obj = NCMBObject(className: "TestClass")
                    obj.setObject("Hello, NCMB!", forKey: "message")
                    obj.save(&saveError)
                    if(saveError == nil) {
                        print("[SAVE] Done.")
                    } else {
                        print("[SAVE ERROR] \(saveError)")
                    }             
                }
            } else {
                print(error.localizedDescription)
            }
        }
        return true
    }
}

参考

ターミナルでよく使うコマンド

ターミナル
# 現在のフォルダ内のファイル表示
$ ls
# 現在のディレクトリの表示
$ PWD
# 指定ディレクトリに移動
$ cd [指定ディレクトリ]

参考にしたサイト

natsumo
ニフクラ mobile backend の使い方をまとめています。
https://github.com/natsumo/
fjct
クラウド・IoT 関連サービスを開発・提供している企業です。(こちらは、富士通クラウドテクノロジーズの有志にて運営しております。)
https://fjct.fujitsu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした