Skip to content

AllJoyn Build

TakayukiHoshi1984 edited this page Mar 27, 2017 · 3 revisions

目次

iOS AllJoynプラグインのBuildに必要なパッケージは以下の通りです。

プロジェクト 説明
DConnectSDK dConnectSDKライブラリやリソース。
dConnectDeviceAllJoyn iOS AllJoynデバイスプラグイン。
項目 説明
AllJoyn Core SDK for iOS iOS端末からAllJoyn機器にアクセスするためのAPIを提供するSDK。
AllJoyn 15.04の場合

1)AllJoyn公式ダウンロードページより、iOS AllJoyn SDKをダウンロードする。

2)ダウンロードした/build/darwinディレクトリを/dConnectDevicePlugin/dConnectDeviceAllJoyn/deps/AllJoyn直下にコピーする。

3)CocoaPodsコマンドをインストールする。

4)OpenSSLのaファイルをビルドするために、ターミナルにて以下のディレクトリに移動する。

cd {DeviceConnect-iOSが配置されているディレクトリ}/dConnectDevicePlugin/dConnectDeviceAllJoyn/deps/CocoaPods

pod installを実行する。

pod install

以下のディレクトリにlibcrypto.aとlibssl.aが生成されれば成功。

iOS DeviceConnectでは複数のXcodeプロジェクトが関わってくるため、それらプロジェクトを一元管理する為の共同作業スペースとしてXcodeのWorkspaceを用意します。

Workspaceの名称と保存場所は特に問いません。

「iOS AllJoynのBuildに必要なパッケージ」で挙げた物のBuildを行う為にまずWorkspaceに「必要なパッケージ」のXcodeプロジェクトをImportする必要があります。

まず、Finder上のDConnectSDKのプロジェクトファイル「DConnectSDK.xcodeproj」を、先ほど用意したWorkspaceのプロジェクトナビゲーターにドラッグ&ドロップしてプロジェクトをImportします。
正しくImportされた場合、ナビゲーターにDConnectSDKプロジェクトのファイル一式が表示されます。

そしてDConnectSDKと同じ手順で他のプロジェクトファイル(.xcodeproj拡張子)をWorkspaceにImportします。最終的に、必要となる全てのプロジェクトのファイル一式がナビゲーターに表示されれば完了です。

「プロジェクトのImport」で必要なパッケージをBuildする為のプロジェクトをImportしたことで、プロジェクトのファイル一式に加え、WorkspaceにBuildターゲットという物が追加されます。
必要なパッケージの内、どれをBuildするかを選択するのに今回使うのがBuildターゲットとなります。
必要なパッケージの間にはBuildの依存関係があり、特にDConnectSDKはデバイスプラグインに先立ってBuildしなければなりません。
Buildの依存関係を解決する形でのBuildターゲットのBuild順序は以下の様になります。

  1. DConnectSDK_framework
  2. DConnectSDK_resources
  3. DCMDevicePluginSDK
  4. dConnectDeviceAllJoyn_framework
  5. dConnectDeviceAllJoyn_resources

そして作業しているXcodeのWorkspace内でのBuildターゲットの切り替え方法は、Xcodeのウィンドウの左上、RunやStopボタンの右にあるのが現在選択されているターゲットであり、そのターゲットをクリックする事で表示されるWorkspace内のBuildターゲット一覧から対象のBuildターゲットを選択する事でBuildターゲットの切り替えを行う事ができます。

あとは先ほど示したBuildターゲットの順序でBuildを行う。Buildを行うにはRunボタンを押すか、ショートカット⌘+Bを使う等して実行する事ができます。

また、各プロジェクトにはDebugとReleaseというBuild設定が有る。Debug Build設定は開発段階のデバッグに適したパッケージのBuildを行い、Release Build設定はデバッグ情報を除いて処理速度や成果物のデータサイズが快適化される形式でのパッケージのBuildを行います。
このDebugやReleaseのBuild設定を切り替える方法だが、DConnectSDKを例に挙げれば、DConnectSDKのプロジェクトファイルを選択し各種プロジェクト情報を表示させます。
更にBuildターゲットの各種Build情報を表示させるが、Buildターゲットの一覧が非表示の際はその一覧を表示させた上で、フレームワーク(.framework拡張子ファイル)のBuildターゲットであるDConnectSDK_frameworkを選択し各種Build設定を表示します。

BuildターゲットDConnectSDK_frameworkを選択したらBuild Phaseタブを選択し、表示されたBuildの各フェーズの内、スクリプトを走らせるフェーズを表示します。
そのスクリプトの内、CONFIGURATION Build環境変数を”Debug”なり”Release”なりに設定する事でDebug・Release Buildを切り替える事ができます(何も設定されていない場合はDebug Buildになります)。

DConnectSDKなど、Importしたのプロジェクトが入ったディレクトリの下に、必要に応じて以下の名称のディレクトリが生成されます。

  1. build

そして、このディレクトリ以下、フレームワーク(.framework拡張子ファイル)やバンドル(.bundle拡張子ファイル)がBuildされています。
Buildに失敗する場合は設定ミスの可能性があるので確認してください。

DConnectSDK

  • (Release時)build/Release-framework/DConnectSDK.framework
  • (Debug時)build/Debug-framework/DConnectSDK.framework
  • (Release時)build/Release-resources/DConnectSDK_resources.bundle
  • (Debug時)build/Debug-resources/DConnectSDK_resources.bundle

DCMDevicePluginSDK

  • (Release時)build/Release-framework/DCMDevicePluginSDK.framework
  • (Debug時)build/Debug-framework/DCMDevicePluginSDK.framework

iOS AllJoynプラグイン

  • (Release時)build/Release-framework/dConnectDeviceAllJoyn.framework
  • (Debug時)build/Debug-framework/dConnectDeviceAllJoyn.framework
  • (Release時)build/Release-resources/dConnectDeviceAllJoyn_resources.bundle
  • (Debug時)build/Debug-resources/dConnectDeviceAllJoyn_resources.bundle

アプリを開発する際は、上記フレームワークとリンクさせ、バンドルをコピーさせるようにアプリのBuildターゲットで設定します。

dConnectDeviceAllJoynをアプリ側で使用する場合は、LLVM C++標準ライブラリとリンクする必要があります。そのため、Build SettingsのOther Linker Flagsに『-lc++』を追加してください。

  • Other Linker Flags(例)
    • -ObjC
    • -all_load
    • -lsqlite3
    • -lc++

Clone this wiki locally