事前準備
iOSアプリを開発して配布するためには下記のような事前準備が必要です。各ステップで必要な作業の詳細は、Appleが提供するガイドを参照してください。
Appleのユーザーアカウント作成(Apple ID)
開発者プログラム登録(Apple Developer Program)
企業用の開発者プログラムの登録の際には、DUNSナンバーが必要な場合があります。
証明書発行
Certificate Signing Request(CSR)の発行およびcertificate(cer)ファイルを生成します。
App ID登録
Device登録
iTunes、Xcodeでアプリをインストールし、テストする際に必要です。
Provisioning Profile生成
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」ボタンをクリックします。
Product Nameやその他必要な項目を設定し、「Next」ボタンをクリックした後に表示される画面からプロジェクトを生成する場所を指定し、「Create」ボタンをクリックします。
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フォルダにドラッグ&ドロップします。
追加ライブラリ/フレームワーク設定
iOSが提供するAPIを使用するためのライブラリやフレームワークを設定します。Frameworksフォルダを選択>右側のTARGETS項目を選択>画面上部の「Build Phases」タブを選択>「Link Binary With Libraries」項目を選択すると、前項で追加したnexacro platformライブラリが設定されていることが確認できます。
下部の[+]ボタンをクリックし、以下の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」に指定します。
生成されたファイルを選択した状態で、右側のインスペクタペインから「Localization」カテゴリーの「Localize」ボタンをクリックし、希望する言語を選択します。
PROJECT項目を選択>「Info」タブを選択>「Localizations」カテゴリーに、上記で選択した言語が表示されます。必要に応じて、「+」ボタンにより複数の言語を追加することができます。追加された言語はプロジェクトフォルダからも確認することができます。
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 |
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」に対して、以下のように適切なプロファイルを設定します。
そして、「Provisioning Profile」に対して、プロビジョニングプロファイルを設定します。
使用可能な証明書はキーチェーンで確認することができ、プロビジョニングプロファイルはXcode(Preferences>Accounts)で確認することができます。
アプリのテスト
iOS端末をUSBでPCと接続して実機テストを行うか、もしくはXcodeのシミュレータを立ち上げてテストを行うことができます。実機テストを行う場合には、端末にプロファイルをインストールする必要があります。
Xcode上で、テストを行う対象を選択し、Run機能により実行します。画面上部のアイコンをクリック、もしくは下記のメニューから実行することができます。
Product > Run