StarXpand SDK for iOS
はスター精密デバイス向けアプリケーション開発をサポートするソフトウェア開発キットです。
本ソフトウェア開発キットでは、スター精密デバイスを制御するためのフレームワークとして、StarIO10フレームワーク(StarIO10.xcframework)を提供しています。
Apple社の指針に従い、StarIO10 V2.6.1以降はプライバシーマニフェストファイルを含みます。Manifest fileについてはこちらをご参照ください。ただし、StarIO10では過去バージョンを含め、Required Reason APIは使用しておりません。(2024年1月29日現在)
StarXpand SDKのドキュメントはこちらを参照ください。
ドキュメントにはSDKの概要、サンプルアプリのビルド方法、APIの使用方法、APIリファレンスなどが含まれます。
Language | Language Version | Platform | OS Version | Arch |
---|---|---|---|---|
Swift | 5 | iOS | iOS 13.0 以降 | 実機: arm64 シミュレータ: arm64, x86_64 |
StarIO10フレームワークをiOSアプリケーションに組み込むには、Swift Package Managerを使用します。
- Xcodeの
File
メニュー >Add Packages...
を選択します。 - URL入力欄に
https://github.com/star-micronics/StarXpand-SDK-iOS
と入力します。 StarXpand-SDK-iOS
を選択し、Add Package
ボタンを押します。
Swift Packageを組み込む手順の詳細については下記URLをご覧ください。
https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app
プリンターのインターフェースによって、必要な対応があります。
下記表を確認し対応をしてください。
プリンターのインターフェース | 必要な対応 |
---|---|
Bluetooth | 2.1. & 2.2. & 2.4. |
Bluetooth Low Energy | 2.2. |
Ethernet (iOS14以上) | 2.3. |
Lightning USB | 2.1. & 2.4. |
- Information Property List(デフォルトでは"Info.plist")を選択します。
- Keyに
Supported external accessory protocols
を追加します。 - 項目名左側の▽をクリックして表示される"Item 0"の[Value]に
jp.star-m.starpro
を設定します。
⚠️ 該当するプリンターを使用しない場合は、この設定を行わないでください。
- Information Property List(デフォルトでは"Info.plist")を選択します。
- Keyに
Privacy - Bluetooth Always Usage Description
を追加します。 Deployment Target
をiOS12に設定する場合、KeyにPrivacy - Bluetooth Peripheral Usage Description
を追加します。- それぞれのValue に Bluetoothの利用目的(例:
Use Bluetooth for communication with the printer.
)を設定します。 - Bluetoothにてプリンターと通信するとき、Bluetoothへのアクセス許可を求めるダイアログが表示されます。その際、Valueに設定した文字列がBluetoothを利用する理由として表示されます。
より詳しくは、下記URLを参照してください。
- Information Property List(デフォルトでは"Info.plist")を選択します。
- Keyに
Privacy - Local Network Usage Description
を追加します。 - Value に Local Networkの利用目的(例:
Use Local Network for communication with the printer or discovery the printers.
)を設定します。 - iOS14以上でEthernetプリンターと通信するとき、Local Networkへのアクセス許可を求めるダイアログが表示されます。その際、Valueに設定した文字列がLocal Networkを利用する理由として表示されます。
MFi認証プリンターに対応したiOSアプリケーションを設計・開発し、 Apple iTunes App Storeにアプリケーション登録を行う場合、下記のURLに記載の手順によりアプリ認証を取得してください。Appleによるアプリ審査前に完了しておく必要があります。
https://star-m.jp/products/s_print/apple_app_mfi/index.html
⚠️ Bluetooth Low Energyプリンターを使用する場合は、このアプリ認証を行う必要はありません。
StarXpand SDKにはプリンターと組み合わせて動作を確認できるサンプルアプリ が含まれています。リンク先の各機能の解説と合わせてご利用ください。
1. プリンターの検索
2. 印刷データの生成
こちらのサンプルコードと印刷結果画像もご活用ください。
- 各業態のレシートやラベル用の印刷レイアウトを作成するサンプル
- テキストデータからレシート画像を生成するサンプル
⚠️ プリンターのモデルによっては印刷できないサンプルがあります。また、ご利用の際は適宜レイアウトを調節してください。
4. 印刷データの送信
func getStatus() {
// Specify your printer connection settings.
let starConnectionSettings = StarConnectionSettings(interfaceType: .lan,
identifier: "00:11:62:00:00:00")
let printer = StarPrinter(starConnectionSettings)
Task {
do {
// Connect to the printer.
try await printer.open()
defer {
Task {
// Disconnect from the printer.
await printer.close()
}
}
// Get printer status.
let status = try await printer.getStatus()
print(status)
} catch let error {
// Error.
print(error)
}
}
}
var printer: StarPrinter?
func monitor() async {
// Specify your printer connection settings.
let settings = StarConnectionSettings(interfaceType: .lan,
identifier: "00:11:62:00:00:00")
printer = StarPrinter(settings)
guard let printer = printer else {
return
}
printer.printerDelegate = self
printer.drawerDelegate = self
printer.inputDeviceDelegate = self
printer.displayDelegate = self
Task {
do {
// Connect to the printer.
try await printer.open()
} catch let error {
// Error.
print(error)
}
}
}
// Callback for printer state changed.
func printerIsReady(_ printer: StarPrinter) {
print("Printer: Ready")
}
func drawer(printer: StarPrinter, didSwitch openCloseSignal: Bool) {
print("Drawer: Open Close Signal Switched: \(openCloseSignal)")
}
func inputDevice(printer: StarPrinter, didReceive data: Data) {
print("Input Device: DataReceived \(NSData(data: data))")
}
func displayDidConnect(printer: StarPrinter) {
print("Display: Connected")
}
// ...
// Please refer to document for other callback.
Copyright 2022 Star Micronics Co., Ltd. All rights reserved.