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

Closed minusoneman closed 1 month ago

minusoneman commented 1 month 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 1 month 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.

bandit-ibayashi commented 1 month ago

We plan to update StarIO10 in early November to address this issue. Thank you for your patience.

mortenbekditlevsen commented 1 month ago

Hi @bandit-ibayashi , The suggested workaround is unfortunately not usable for the codebases that have adopted Swift 6 features throughout. We have customers waiting for a release that is planned for October 20th. We can't hold them off until November. And for our customers using TSP100, we also can't release something that would break their hardware integration. Any workarounds - or a quicker action time for providing a hot fix would be greatly appreciated. If the framework is still being built in Objective-C, perhaps you could investigate ways for us to perform method swizzling to replace the code that is causing the issue?

mortenbekditlevsen commented 1 month ago

Hi @bandit-ibayashi,

Could you provide further details about which printer models and which connection types are affected by this issue? We have just tested a TSP100 cabled to an iPad using USB, and that works fine. Unfortunately we don't have an ethernet-capable TSP100 in our test lab, so we are not able to test that.

bandit-ibayashi commented 1 month ago

@mortenbekditlevsen This issue happens when an application built with Xcode16 is run on an iOS18 device, and the Ethernet printer cannot be found or printed. Therefore, this issue does not occur when USB or Bluetooth printers are used. We expect this to occur regardless of the model if it is an Ethernet printer.

Another workaround is to use devices with iOS 17.7 or lower. If Xcode 16 is required to use Swift6, this interim workaround is recommended.

Thank you for your understanding.

mortenbekditlevsen commented 1 month ago

Hi @bandit-ibayashi , Thank you for the new suggested workaround.

Unfortunately I do not control the devices that our apps are being installed to, and many end users have already updated to iOS 18. On iOS you cannot downgrade to iOS 17 after upgrading to iOS 18.

So unfortunately that workaround can also not be used by us.

We may have to provide all of our customers that use Ethernet connected Star printers with new hardware. If that is the case, then we would need to suggest another hardware vendor than Star, because you cannot now or in the future put such a big blocker on our release cadence. It's simply not a thing that we have experienced from any hardware vendor in all of the 7 years our company has existed. This dependency on your hot fix of the issue is much too fragile if it takes months to deliver a hot fix...

Apologies for the rant, but this is getting me into a lot of problems with my management and our customers.

bandit-ibayashi commented 1 month ago

@mortenbekditlevsen Thank you for your reply. I understood your situation.

I am afraid to bother you, but could you please contact our Point of Sale Solutions sales subsidiary in your region via the link below to reiterate this issue? We would be happy to communicate with you individually. https://starmicronics.com/global/

Thank you for your understanding.

mortenbekditlevsen commented 1 month ago

Hi @bandit-ibayashi , Thank you for your suggestion. I filled in a form on the website on Tuesday and so far I didn't hear anything back. Not even a confirmation that my request was received. I'm not too hopeful...

unipheas commented 1 month ago

We are also having the same issue. 200+ of our sites will not be able to update.

bandit-ibayashi commented 1 month ago

We are pleased to inform you that we has released an updated version 2.8.0 to address this issue.

@mortenbekditlevsen We sincerely apologize for any inconvenience this may have caused you. We hope that you will find this new version beneficial and that it resolves this issue.

Thanks.

mortenbekditlevsen commented 1 month ago

Thank you @bandit-ibayashi , This is great news, and the timing is good. We just started a QA round and we will be able to update the dependency without any difficulty. Thank you for taking the issue seriously and listening to the feedback!

bandit-ibayashi commented 1 month ago

@mortenbekditlevsen Thank you for sharing your situation with us. We are afraid you had to wait, but we are glad we were able to get to you in time.

@minusoneman Sorry for the late Mention. We hope that your issue will be resolved in the new version.