— Objective-CからSDKを利用する

Usage

KARTE SDK は、ほとんどのコードが Swift で書かれています。
しかし Objective-C からも利用することが可能です。

ここでは SDK を Objective-C から呼び出す方法やビルド時の注意点について記載します。

SDKの利用方法について

KARTE SDK では、Objective-C から利用可能にするために公開インターフェースには、@objc 属性が予め付与されています。

そのため @objc 属性が付与されたクラスやメソッドは、SDK をインポートするだけで呼び出すことが可能です。

Core モジュールをインポートする例

@import KarteCore;

リンク時の問題について

KARTE SDK ではアプリケーション起動時のパフォーマンスに影響を与えないようにするために、多くのモジュールをスタティックフレームワークとしてビルドするようにしています。

スタティックフレームワークのため、アプリケーションをビルドする際にアプリケーションとフレームワークをリンクすることになりますが、スタティックフレームワーク内で利用している Swift 標準ライブラリ関連のシンボルを解決するために、Swift 標準ライブラリも同時にリンクする必要があります。

言語混在(Objective-C / Swift)プロジェクトや Swift のみで構成されたプロジェクトの場合は、Swift 標準ライブラリをリンクするように構成されるため問題なくリンクが可能です。

一方で、Objective-C のみで構成されたプロジェクトの場合は、Swift の標準ライブラリをリンクするように構成されていないため、リンク時にシンボルの解決ができずエラーが発生します。

これを解決するために、アプリケーションプロジェクトのターゲットに空の Swift ファイルを追加してください。
これにより、Swift 標準ライブラリをリンクするように構成され、ビルドが正常に行えるようになります。