Skip to content

Sphero Build

TakayukiHoshi1984 edited this page Mar 26, 2018 · 3 revisions

目次

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

プロジェクト 説明
DConnectSDK dConnectSDKライブラリやリソース。
dConnectDeviceSphero iOS Spheroデバイスプラグイン。
DCMDevicePluginSDK 共通化された拡張プロファイルを持つライブラリ。
項目 説明
Sphero SDK Spheroのライブラリやリソース。

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

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

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

まず、Finder上のdConnectSDKのプロジェクトファイル「DConnectSDK.xcodeproj」を、先ほど用意したWorkspaceのプロジェクトナビゲーターにドラッグ&ドロップしてプロジェクトをImportします。

正しくImportされた場合、ナビゲーターにdConnectSDKプロジェクトのファイル一式が表示されます。

そしてdConnectSDKと同じ手順でiOS Spheroデバイスプラグインのプロジェクトファイル「dConnectDeviceSphero.xcodeproj」とDCMDevicePluginSDKのプロジェクトファイル「DCMDevicePluginSDK.xcodeproj」をWorkspaceにImportします。

最終的にdConnectSDKとiOS Spheroデバイスプラグインのファイル一式がナビゲーターに表示されれば完了です。

下記のページにて、所定の手順に従い、iOS用のSDKをダウンロードしてください。
※現在は3.1.122バージョンを使用しています。

https://github.com/orbotix/Sphero-iOS-SDK

ダウンロード後、PC上の任意の場所に解凍してください。
以下、解凍したフォルダのパスを{SPHERO SDK}とします。

現在の最新版 (v3.1.122) では、下記のフォルダにSDKのソースファイルが配置されています。

{SPHERO SDK}/frameworks

Spheroプロジェクトにframeworkディレクトリにあるframeworkとbundleファイルをコピーします。

{レポジトリフォルダ}/dConnectDevicePlugin/dConnectDeviceSphero/

以上により、外部SDKへの依存関係が解決されます。

「プロジェクトのImport」で必要なパッケージをBuildする為のプロジェクトをImportしたことで、プロジェクトのファイル一式に加え、WorkspaceにBuildターゲットという物が追加されます。

必要なパッケージの内、どれをBuildするかを選択するのに今回使うのがBuildターゲットとなります。
必要なパッケージの間にはBuildの依存関係があり、特にDConnectSDKはデバイスプラグインに先立ってBuildしなければなりません。

Buildの依存関係を解決する形でのBuildターゲットのBuild順序は以下の様になります。

  1. DConnectSDK_framework
  2. DConnectSDK_resources
  3. DCMDevicePluginSDK
  4. dConnectDeviceSphero_framework
  5. dConnectDeviceSphero_resources

そして作業しているXcodeのWorkspace内でのBuildターゲットの切り替え方法だが、Xcodeのウィンドウの左上、RunやStopボタンの右にあるのが現在選択されているターゲットであり、そのターゲットをクリックする事で表示されるWorkspace内のBuildターゲット一覧から対象の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とiOS Spheroデバイスプラグインのプロジェクトが入ったディレクトリの下に、必要に応じて以下のような名称のディレクトリが生成されます。

  1. build

そして、DConnectSDKやiOS Spheroデバイスプラグイン毎のプロジェクトディレクトリ以下、フレームワーク(.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 Spheroデバイスプラグイン
  • (Release時)build/Release-framework/dConnectDeviceSphero.framework
  • (Debug時)build/Debug-framework/dConnectDeviceSphero.framework
  • (Release時)build/Release-resources/dConnectDeviceSphero_resources.bundle
  • (Debug時)build/Debug-resources/dConnectDeviceSphero_resources.bundle

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

 dConnectDeviceSpheroをアプリ側で使用する場合は、BuildSettingsで以下の項目を設定する必要があります。

  • Architectures
    • $(ARCHS_STANDARD_32_BIT)
  • iOS Deployment Target
    • iOS 6.0
  • Other Linker Flags
    • -ObjC
    • -lsqlite3
    • -all_load
    • -lstdc++

そして、「Supporting Files」フォルダにある「{{アプリ名}}-Info.plist」ファイルに以下のように属性を追加しなければなりません。

Clone this wiki locally