FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

iOS SDKをCocoaPodsで管理できるようにする【ニフティクラウド mobile backend 版】

cocoapods

※こちらはニフティ(株)として公式にサポートされる内容ではないのでご注意の上参考にしてください。

ニフティクラウド mobile backendを使えるようにする手順としては次のようになっています。

  1. ニフティクラウド mobile backendにユーザ登録する
  2. Xcodeで新規プロジェクトを作成する
  3. JSONKit/Facebook iOS SDKをダウンロード、インポートする
  4. 最新のニフティクラウド mobile backend iOS SDKをダウンロード、インポートする
  5. 依存するフレームワークを追加する
  6. JSONKitのコードを一部修正する
  7. アプリのコードを書く

1と2、そして7の手順は絶対なのですが、3〜6の手順が面倒です。ここ最近はCocoaPodsを使ってライブラリを管理するのが一般的になっていますので、ニフティクラウド mobile backend iOS SDKも一緒に管理できるようにしたいところです。

ということで本家に取り込まれた訳ではなく野良ですが、podspecファイルを作成してみました。これからiOSアプリでニフティクラウド mobile backendをはじめてみようかなと思う方はぜひ参考にしてみてください。

Podfileの内容

Podfileの内容は次のようになります。post_installのブロックはJSONKitのための変更になります。

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['CLANG_WARN_DIRECT_OBJC_ISA_USAGE'] = 'YES'
    end
  end
end

platform :ios, "7.0"
pod 'NCMB-iOS-SDK', :podspec => 'https://gist.githubusercontent.com/moongift/3a4d04e2db87d70a5320/raw/f6ec48dbbc977aca1310828d8d5bee16449c335c/NCMB.podspec'

podspecファイル内では最新のiOS SDKをダウンロードして配置し、依存するフレームワークの追加とFacebook iOS SDK、JSONKitの設定を行っています。

iOSプロジェクトのルートにてPodfileを追加したら、後は普段通り pod install を実行します。

$ pod install
Analyzing dependencies
Fetching podspec for `NCMB-iOS-SDK` from `https://gist.githubusercontent.com/moongift/3a4d04e2db87d70a5320/raw/f6ec48dbbc977aca1310828d8d5bee16449c335c/NCMB.podspec`
Downloading dependencies
Installing Facebook-iOS-SDK (3.13.1)
Installing JSONKit (1.5pre)
Installing NCMB-iOS-SDK (1.2.6)
Generating Pods project
Integrating client project

[!] From now on use `TestApp3.xcworkspace`.

このように表示されればインストール完了です。

後は以前に書いた記事の通り、AppDelegate.m にて #import <NCMB/NCMB.h> を記述して、Web管理コンソールで取得できるアプリケーションキーとクライアントキーでニフティクラウド mobile backendが使えるようになります!

Xcodeの画面
Xcodeの画面

// AppDelegate.mの修正例。
#import <NCMB/NCMB.h>
  :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [NCMB setApplicationKey:@"your_application_key" clientKey:@"your_client_key"];

    NCMBQuery *query = [NCMBQuery queryWithClassName:@"TestClass"];
    [query whereKey:@"message" equalTo:@"test"];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (error == nil) {
            if ([objects count] > 0) {
                NSLog(@"[FIND] %@", [[objects objectAtIndex:0] objectForKey:@"message"]);
            } else {
                NSError *saveError = nil;
                NCMBObject *obj = [NCMBObject objectWithClassName:@"TestClass"];
                [obj setObject:@"Hello, NCMB!" forKey:@"message"];
                [obj save:&saveError];
                if (saveError == nil) {
                    NSLog(@"[SAVE] Done");
                } else {
                    NSLog(@"[SAVE-ERROR] %@", saveError);
                }
            }
    } else {
            NSLog(@"[ERROR] %@", error);
    }
    }];
    return YES;
}

CocoaPodsベースであればすぐに使い始められますし、環境設定でハマったりすることも減るかと思います。参考にしてみてください!

アプリ開発をよりスマートに、スピーディに | ニフティクラウド mobile backend

参考にした記事

ニフティクラウド mobile backendはサーバー構築知識がなくともはじめられるバックエンドクラウドサービス「mBaaS」です。アカウントを取るのも含めて5分で利用開始できますのでぜひお試しを!記事にあったような、ニフティクラウド mobile backend iOS SDKを使えば開発環境もサーバサイドの仕組みもなしでスマートフォンアプリ開発がはじめられますよ!

f:id:mbaasblog:20180927104348p:plain