■まずインストール■
インストールの方法と基本的な操作はここに書いてあります。forceios
Utilities for creating mobile apps based on the Salesforce Mobile SDK for iOS
2.0まではgitからのcloneでしたが、2.1になってnpmが用意されたようです。自分のアカウント用として作るのであれば、適当なディレクトリに移動してから
$ sudo npm install forceios
を実行すると直下にnode_modulesディレクトリが出来、その下にインストールされます。
Macの全てのユーザから使えるようにするには
$ sudo npm install forceios -g
いずれもターミナルから実行します。この場合は/usr/local/lib/node_modules下にパッケージがインストールされます。
以下、-gの付いている方を前提とします…Terminalでパスなど切らなくて良いのでラクですし。インストールが終わったら、
$ forceios version
で
forceios version 2.1.0
と表示されればインストールOKです。
■まずはSamples■
もうSampleは見なくていいよ、という方は次の段落へどうぞ。これもターミナルでの作業です。まず、適当なディレクトリに移動してから$ forceios samples -outpoutDir=Samples
とすれば、直下にSamplesというディレクトリが作られ、さらにその下にサンプルプロジェクトが並びます。
あとは各フォルダの中にある .xcodeproj をダブルクリックしてXcodeで開き、どういう作りになっているか覗いてみてください。
■プロジェクトの作り方■
これもターミナル上での作業です。プロジェクトを置くディレクトリに移動します。少し長いですが、forceiosのcreateコマンドを使います(実際は1行です…nativeの場合apptypeは省略可能です)。$ forceios create --apptype=native --appname=TestForce210
--companyid=com.your.domain --organization=あなたの会社名
リターンキーを押すと、プロジェクトを作るディレクトリ、App ID、App Callback URI()を聞いてきます。全部リターンキーでOKです。
Enter the output directory for your app (defaults to the current directory):
Enter your Connected App ID (defaults to the sample app's ID):
Enter your Connected App Callback URI (defaults to the sample app's URI):
数秒間メッセージが流れて、最後にこれが出ればOKです。
Congratulations! You have successfully created your app.
できました。では、TestForce210/TestForce210.xcodeprojをダブルクリックします。さっきリターンキーで飛ばしたApp IDはProject情報で設定し直すことができます。また、Callback URIとRemoteAccessConsumerKeyも今までと同様、Classesフォルダ下のAppDelegate.mで正しい値に設定することができます。cmd+Rでビルド&実行してみます。スプラッシュの後、認証画面が出て、さらにその数秒後にさっき認証した組織のユーザ名一覧が表示されれば完了です。
さっくり見てみましたが、ARCは前回対応されたものの、Storyboardはやっぱりまだですね…。Storyboardを使うには、AppDelegateの - (void)setupRootViewControllerを変更します。以前書いた方法と少し違いますが、基本的なやり方は同じです。
追記2014/01/31:Storyboard上ではUITableViewControllerにnavigation controllerをEmbed InしてAppDelegate.mの -(void)setupRootViewControllerで以下のようにrootViewControllerにセットするとStatusBar / TopBarが正しく動作します。
- (void)setupRootViewController
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard"
bundle:[NSBundle mainBundle]];
UINavigationController *navi = [storyboard instantiateViewControllerWithIdentifier:@"naviView"];
self.window.rootViewController = navi;
}
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。