アプリ開発と実行(iOS)

事前準備

iOSアプリを開発して配布するためには下記のような事前準備が必要です。各ステップで必要な作業の詳細は、Appleが提供するガイドを参照してください。

nexacro studioで生成したアプリケーションをデバイス上で実行するためには、インストール可能なアプリにビルドする作業が必要です。ビルド作業のためにはXcode、iOS SDKが必要です。

管理者ガイドではXcode7.3.1バージョンを基準に説明します。

Xcodeバージョンの更新により、一部メニューや動作が変更されることがあります。

XcodeプロジェクトでのiOSアプリ開発およびビルド

Xcodeで以下のような手順に従って、iOS版のアプリを開発します。Xcodeでのプロジェクトを進めるには、nexacro studioで作成したnexacroアプリケーションのアーカイブファイルが指定された場所に配置されている必要があります。

プロジェクト生成

nexacro platformで開発されたアプリケーションをiOS版のRuntimeアプリとして実行するために、Xcodeプロジェクトを作成し、デフォルト環境を設定する必要があります。新しいプロジェクトは、以下のメニューから生成することができます。

File > New > Project

プロジェクトを生成するためのテンプレート画面から「Single View Application」を選択し、「Next」ボタンをクリックします。

스크린샷 2013-09-12 오전 11.26.19

Product Nameやその他必要な項目を設定し、「Next」ボタンをクリックした後に表示される画面からプロジェクトを生成する場所を指定し、「Create」ボタンをクリックします。

스크린샷 2013-09-12 오전 11.27.18

iPhone Xにて、画面上下に余白を表示しないためには、プロジェクトにLaunchScreenのstoryboardを設定する必要があります。

詳細については、以下のリンクを参照してください。

https://developer.apple.com/ios/update-apps-for-iphone-x/

https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/

nexacro platformライブラリの設定

Xcodeプロジェクトで、nexacro platformに最適化された環境を作成するためのnexacro platformライブラリファイルを追加する必要があります。プロジェクトを選択し、「Frameworks」フォルダを追加します。

nexacro platformライブラリは、圧縮ファイル形式の「nexacro14.framework.zip」というファイル名で提供されます。圧縮ファイルを解凍してから、プロジェクトのFrameworksフォルダにドラッグ&ドロップします。

스크린샷 2013-09-12 오전 11.37.56

追加ライブラリ/フレームワーク設定

iOSが提供するAPIを使用するためのライブラリやフレームワークを設定します。Frameworksフォルダを選択>右側のTARGETS項目を選択>画面上部の「Build Phases」タブを選択>「Link Binary With Libraries」項目を選択すると、前項で追加したnexacro platformライブラリが設定されていることが確認できます。

스크린샷 2013-09-12 오후 1.07.35

下部の[+]ボタンをクリックし、以下の14個の項目を追加します。

libz.1.2.5.tbd

libsqlite3.0.tbd

MessageUI.fremawork

SystemConfiguration.framework

CoreMedia.framework

MobileCoreServices.framework

QuartzCore.fremawork

MediaPlayer.fremawork

CoreLocation.fremawork

CFNetwork.fremawork

AVFoundation.fremawork

AudioToolbox.framework

AddressBookUI.fremawork

AddressBook.fremawork

2015年6月以降のnexacro platformバージョンを使用する場合には、さらに以下の2つの項目を追加する必要があります。

Security.framework

libc++.tbd

設定したライブラリ/フレームワークがプロジェクトの直下に追加された場合は、ドラッグ&ドロップによりFrameworksフォルダの配下へ移動させます。

リソース設定

iOSアプリで使用するローディング画像、アイコン、メッセージ、レイアウトなどを設定するためのステップです。

アイコン画像の設定

アイコンおよびスプラッシュイメージは個別に指定します。あらかじめ作成したファイルをインポートすることができます。プロジェクトを選択>TARGETS項目を選択>画面上部の「General」タブから設定します。

「App Icons and Launch Images」カテゴリーの項目「App Icons Source」で右側の矢印ボタンをクリックして表示される設定画面に、Finderからドラッグ&ドロップして、適切なサイズのファイルを指定します。

各項目に必要なアイコン画像のサイズは下記の通りです。


1x

2x

3x

20pt (Notification icon)

20px x 20px

40px x 40px

60px x 60px

29pt (Settings icon)

29px x 29px

58px x 58px

87px x 87px

40pt (Spotlight icon)

40px x 40px

80px x 80px

120px x 120px

60pt (iphone icon)


120px x 120px

180px x 180px

76pt (iPad icon)

76px x 76px

152px x 152px


83.5pt (iPad Pro icon)


167px x 167px


スプラッシュ画像の設定

スプラッシュ画像を使用するために、プロジェクトにフォルダを作成し、画像を追加します。単純な画像であれば、解像度ごとに画像を生成せずに一つのサイズ(750px x1334px)で対応することができます。

Xcodeで使用するスプラッシュ画像用のAsset Catalogを生成します。

Editor > Add Assets > App Icons & Launch Images > New iOS Launch Image

Asset Catalogの設定画面に、Finderからサイズに応じた各ファイルもしくは1つのファイル(750px x1334px)をドラッグ&ドロップして指定します。

プロジェクトを選択>TARGETS項目を選択>画面上部の「General」タブから設定します。「App Icons and Launch Images」カテゴリーの項目「Launch Images Source」で、「Use Asset Catalog」ボタンをクリックした後に表示される画面から[Migrate]ボタンをクリックします。「Launch Images Source」で新規作成したAsset Catalogを選択し、項目「Launch Screen File」の値は削除します。

メッセージの設定

iOSアプリで使用されるメッセージを設定します。まず、Supporting Filesフォルダの配下に新しいファイルを追加します。フォルダを右クリック>コンテキストメニューから「New File」を選択し、テンプレートの中から「Strings File」を選択します。ファイル名は「Localizable」に指定します。

스크린샷 2013-09-13 오전 10.55.46

生成されたファイルを選択した状態で、右側のインスペクタペインから「Localization」カテゴリーの「Localize」ボタンをクリックし、希望する言語を選択します。

스크린샷 2013-09-13 오전 10.57.46

PROJECT項目を選択>「Info」タブを選択>「Localizations」カテゴリーに、上記で選択した言語が表示されます。必要に応じて、「+」ボタンにより複数の言語を追加することができます。追加された言語はプロジェクトフォルダからも確認することができます。

스크린샷 2013-09-13 오전 11.04.57

Localization.stringsファイルに対して、設定した言語に合わせたメッセージを編集します。以下は英語を設定した場合のサンプルです。

"needupdate" = "It is need to update.";
"loadingFail" = "First loading is fail.  \r\nPlease restart.";
"updateFail" = "Update is fail.  \r\nPlease restart.";
"notexist" = "Start file is NOT exist.  \r\nPlease restart.";
"BeingUpdated" = "Being updated.";
"wantreplace" = "There is a file of the save name. Do you want to replace? ";
"ok" = "OK";
"cancel" = "Cancel";
"move" = "Move";
"upper" = "Upper";
"filter" = "Filter";
"home" = "Home";
"nofilename" = "No File Name.";
"checkforupdates" = "Check for updates.";
"installforupdates" = "Install for updates.";
"downloadingforupdates" = "Downloading for updates.";
"force_close" = "Update is Completed.";

コードファイルの設定

Xcodeプロジェクトを生成すると、デフォルトで生成されるAppDelegate.h、AppDelegate.m、main.mに対して、nexacro platform環境に合わせて編集します。

AppDelegate.h

生成されたAppDelegateがnexacro platformのAppDelegateを継承するように編集します。関連ファイルを次のように編集し、nexacro14.frameworkが動作するようにします。

#import <UIKit/UIKit.h>
#import <nexacro14/NexacroAppDelegate.h>
#import <nexacro14/NexacroMainViewController.h>

@interface AppViewController : NexacroMainViewController
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
@end

@interface AppDelegate : NexacroAppDelegate <UIApplicationDelegate>
-(NexacroMainViewController*)initMainViewController:(NSInteger)nView;
@end

AppDelegate.m

以下のコードで、start_ios.jsonファイルを指定した部分に対して、nexacro studioで作成したjsonファイルが配置されているサーバーのURLに書き替えます。

#import "AppDelegate.h"

@implementation AppViewController
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    //return NO;
    return [super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
@end

@implementation AppDelegate
-(NexacroMainViewController*)initMainViewController:(NSInteger)nView
{
    [[NexacroResourceManager sharedResourceManager]setBootstrapURL:@"http://172.10.10.10:8080/nexacro/start_ios.json"];
    return [[AppViewController alloc] initWithLoader:nView];
}
@end

main.m

Supporting Filesフォルダの配下にあるmain.mファイルを以下のように編集します。

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

ビルド環境の設定

Build Settings

プロジェクトを選択>TARGETSを選択>画面上部の「Build Settings」タブから一部の設定を変更する必要があります。

Build Settings > Linking > Other Linker Flags

Debug

-lxml2

Release

-lxml2

Build Settings > Search Paths > Header Search Paths

Debug

/usr/include/libxml2

Release

/usr/include/libxml2

Build Settings > Architectures > Build Active Architecture Only

Debug

No

Release

No

Build Settings > Architectures > Vaild Architectures

Debug

armv7 armv7s

Release

armv7 armv7s

Build Settings > Apple LLVM *.* - Language - objective C

Objective-C Automatic Reference Counting

No

Build Settings > Build Options

Enable Bitcode

No

스크린샷 2013-09-13 오전 11.51.04

iOSのバージョンアップにより、ユーザーの同意後にアクセス可能な機能に関する権限要求のための設定や機能追加による設定が必要な場合があります。iOSのバージョンに応じて、Architectures項目を追加で設定します。

ARMv7 : iPhone 3GS, iPad(2010), iPhone 4, iPod touch, iPad2, iPhone 4S, (new)iPad, iPad mini

ARMv7s : iPhone 5, iPad(2012), iPhone 5c

ARM64 : iPhone 5S, iPad Air, iPad mini 2, iPhone 6, iPhone 6 plus, iPad Air 2, iPad mini3

Info

プロジェクトを選択>TARGETSを選択>画面上部のInfoタブから、設定内容を確認します。Bundle Nameに指定された値はアプリの名前になり、Bundle identifierに指定された値はアプリを識別する値になります。

Info.plist

プロジェクトからInfo.plistファイルを選択し、一部の設定を変更します。「Information Property List」>「App Transport Security Settings」項目を追加>「Allow Arbitrary Loads」項目を追加し、値を「YES」に設定します。そして、「Information Property List」>「View controller-based status bar appearance」項目を追加し、値を「NO」に設定します。

位置情報の使用、カメラおよびフォトアルバムへのアクセスに関する設定をinfo.plistに追加します。

Code Singing

Xcodeのシミュレータでテストする場合は別途認証手続きが不要ですが、実機にアプリを転送してテストする場合は追加設定が必要です。

プロジェクトを選択>TARGETSを選択>「Build Settings」タブの項目「Code Signing」の「Code Signing Identity」に対して、以下のように適切なプロファイルを設定します。

스크린샷 2013-09-13 오후 2.45.54

そして、「Provisioning Profile」に対して、プロビジョニングプロファイルを設定します。

使用可能な証明書はキーチェーンで確認することができ、プロビジョニングプロファイルはXcode(Preferences>Accounts)で確認することができます。

アプリのテスト

  1. iOS端末をUSBでPCと接続して実機テストを行うか、もしくはXcodeのシミュレータを立ち上げてテストを行うことができます。実機テストを行う場合には、端末にプロファイルをインストールする必要があります。

스크린샷 2013-09-13 오후 2.30.20

  1. Xcode上で、テストを行う対象を選択し、Run機能により実行します。画面上部のアイコンをクリック、もしくは下記のメニューから実行することができます。

Product > Run