star-micronics / StarXpand-SDK-iOS

StarXpand SDK for iOS is a software development kit for supporting application development for Star Micronics devices.
https://star-m.jp/starxpandsdk-oml.html
Other
27 stars 5 forks source link

Xcode 16 and iOS 18: manager.startDiscovery() and printer.open() doesn't work #31

Open minusoneman opened 2 hours ago

minusoneman commented 2 hours ago

Description

We are experiencing issues with apps build with Xcode 16 (they work as expected when built with Xcode 15) running on iOS 18

Your device where the bug occurs

Your printer

Your development environment

ProductName: macOS ProductVersion: 15.0 BuildVersion: 24A335

To Reproduce

Steps to reproduce the behavior:

.startDiscovery()

  1. Run the StarXpandSDK example app in Xcode 16
  2. Press Discover
  3. No printers found

Expected behavior

A list of available printers (LAN, USB and Bluetooth) should be shown

.open()


  1. call printer.open() (for printers found in apps build with Xcode 15)
  2. It throws an error:

"Device not found.", errorCode: none

Expected behavior

We should be able to connect to the printer

Additional context

This seems to be an issue when building with Xcode 16 and devices running iOS 18.

bandit-ibayashi commented 2 hours ago

@minusoneman Thank you for your report. We have also found this issue and here is a temporary workaround.

Star Micronics found that LAN printers cannot be found during searches and printing is not possible in any cases with the condition below.

iOS 17 or earlier iOS 18
Xcode 15 or earlier Not occur. Not occur.
Xcode 16 Not occur. Occur

Root cause

Under investigation If this issue can be resolved on our side, we plan to release an updated version with the necessary fixes.

Temporary Workaround

Build with Xcode 15.

According to Apple's requirements, it is possible to provide deliverables built with the previous environment until March 2025. https://developer.apple.com/news/?id=utw4yhtp Starting April 2025, apps uploaded to App Store Connect must be built with SDKs for iOS 18, iPadOS 18, tvOS 18, visionOS 2, or watchOS 11.