Skip navigation

Label And Receipt Printing

3 Posts authored by: Steven Si Expert

As the holiday season is approaching, we anticipate Apple will shutdown iTunes Connect review process next month. During the shutdown, submissions of new apps and app updates will not be accepted and processed. Last year, the shutdown took place December 23rd through the 27th.


If you plan to schedule app releases or other app changes that require your app to undergo Zebra's whitelisting process, please plan accordingly as we've previously received many requests around this time. If you are unsure whether or not you must register your app with Zebra, please refer to iOS App White Listing FAQ page.


Watch for the 2017 Apple Winter Holiday shutdown dates soon!

In late September, Apple officially released iOS 11. With the upgrade to iOS 11 on iOS devices, we’ve seen people experience Bluetooth disconnection to Zebra Bluetooth enabled printers. The common symptom is that the app on iOS 11 device can no longer print labels suddenly, even though the printer appears as "Connected" in the settings. The user had to “forget” and reconnect  the printer in settings to resume printing. However, printing stopped again after one or two labels.


Here's how to fix the disconnection issue! In iOS v11 and above, due to Apple’s requirement to use version 2 of the iPod Accessory Protocol (IAP) to manage Bluetooth connections, Zebra recommends that developers place a one second delay between when they close a Bluetooth connection and when they attempt to open another Bluetooth connection. If an application adopts the changes in this way, the app on iOS v11 will work well together with our printer, no matter what firmware version is on the printer.


We will update the readme file in our SDK to share this same info. Stay tuned for more info!

As a new member of the ISV Engineering team, I am excited to work with ISV partners and the Zebra developer community. We are growing in every aspect of the business and it’s an exciting time to be part of this Zebra community. In today’s blog, I’d like to share some common issues related to iOS MFi White Listing for mobile printers.


Zebra mobile printers (iMZxxx series, QLnxxx series and ZQxxx series) are part of the Made For iPhone program, a requirement that hardware accessories must meet to interact with iOS apps. If an iOS application uses the Link-OS Multiplatform SDK to interact with Zebra printer over Bluetooth, it must be white listed before it can be submitted to the Apple App Store for approval. The iOS App White Listing FAQ outlines the process for white listing. One of the steps in the process is to submit the application through Testflight (preferred) or HockeyApp to Zebra ISV team for review and testing, to ensure it provides the proper user experience with Zebra printer through your app. The Best Practices in Creating a Printing Application for Zebra Printers gives a holistic view of techniques available for application developers to employ for best user experience in printing.


Here are a few key points from the out-of-the-box experience and error status handling perspectives.


1. The factory default settings are different in different types of printers. The device.languages setting of factory default, for example, is the line print (line_print) in iMZxxx series and ZQ500 series, while it is default to ZPL in the other series of mobile printers out of the box. Quite often, the application assumes ZPL setting without setting the device.languages through the application explicitly before sending ZPL print jobs. This causes a bad user experience when seeing garbage like prints on an iMZxxx series or ZQ500 series out of the box, as device.languages setting is line_print in factory default.


2. Printer status handling is also important for the user experience. The Link-OS SDK provides getCurrentStatus: API for application to check the status of printer before and after sending a print job to the printer. This API returns the PrinterStatus object to indicate the current status of the printer, including isReadyToPrint, isPaperOut, isHeadOpen, isReceiveBufferFull, etc. We’ve often seen the applications submitted for white listing failed to check the basic status of isPaperOut and isHeadOpen. The applications kept sending jobs to the printer when there was no paper or the print head was open. For a good user experience, instead, an error message should pop up indicating the specific error state of the printer, so the user can correct the error state. The status handling with proper error message can greatly improve the user experience. This is not only a benefit for users, but also can benefit both the app developers and Zebra.


Hope the above helps and happy coding.

Filter Blog

By date:
By tag: