Cannot connect Epson printers on iOS14

It worked on iOS 13. Even thought I got an entitlement. I still cannot connect to Epson printers.

Cannot connect Epson printers on iOS14

Can you provide some more background to this? To start, what protocol is the printer speaking on the wire? And what API are you using to implement that protocol?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
Thanks for you reply. The code is the below.

Code Block objective c
//Starts searching
Epos2FilterOption *filterOption = nil;
filterOption = [[Epos2FilterOption alloc] init];
filterOption.porttype = EPOS2_PORTTYPE_ALL;
filterOption.broadcast = @"255.255.255.255";
filterOption.deviceModel = EPOS2_MODEL_ALL;
filterOption.deviceType = EPOS2_TYPE_ALL;
result = [Epos2Discovery start:filterOption Delegate:self];
if (result != EPOS2_CODE_SUCCESS) {
//Displays error messages
}

PORTYE is tcpip


Code Block objective c
int result = EPOS2_SUCCESS;
result = [printer connect:@"TCP:192:168.192.168", timeout:EPOS2_PARAM_DEFAULT]; if (result != EPOS2_SUCCESS) {
//Displays error messages
}


We did everything we could including updating info.plist and applying an entitlement.


I have the same problem as you, but the magical thing is that I can connect to the printer and print with the Xcode simulator, but not after installing it on the actual device, but obviously the code is exactly the same
This is almost certainly a local network privacy issue. You wrote:

the magical thing is that I can connect to the printer and print with
the Xcode simulator

That’s not magical, but simple because local network privacy is not supported on the simulator. See FAQ-12 in the Local Network Privacy FAQ.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
Hi
I read the FAQ you provided
I learned that I want to add items in Bonjour Service
But I use Epson ePOS SDK for iOS(Ver Ver.2.16.0) directly, so I don’t know what service name to enter
I also asked Epson, but they didn’t give me a clear answer.
I'm pretty sure that Nootfly is also using Epson ePOS SDK for iOS (Ver.2.16.0).
I don’t know why I can’t directly paste the URL of this SDK here for your reference. I have used all the methods, but I still can’t deal with the Local Network Privacy issue that occurred on Epson Printer on ios 14.
I see two choices here:
  • You can talk to your vendor to get advice on how to use their SDK in the local network privacy world.

  • You can look at what their SDK is doing on the wire and try to figure it out based on that. Clearly this won’t work on an iOS 14 device, so you can either use an iOS 13 device or the iOS 14 simulator.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
Working at a Swedish POS company named Leeroy, and I experienced the same thing two days ago. I figured out that the cause of the printer (Epson TM-T88VI) not being discovered was that the project was built using Xcode 12.2. Looking at the Epson SDK's version details you can see under "[Development Environment]" that the highest supported Xcode version for the current highest SDK version (2.17.0 as of writing this) is Xcode 12.1.

I then reverted back to building the project with an earlier Xcode version we used recently that is <= 12.1 (namely, for some unrelated reasons we use Xcode 11.5), and the printer is again being discovered, hooray. So, if you are using Epson SDK 2.17.0 you should probably be using Xcode <= 12.1.

Also, good to know is that there are some caveats with having to build with an Xcode version < 12 and running and debugging the build on an iOS 14+ device. There is a very good article about this, and how to work with the situation on Medium named "Debugging on iOS 14 With Xcode 11".

Hope this can be of any help.
Best, Victor
You have to add the following capability to your app's entitlements: com.apple.developer.networking.multicast

To do so, the account holder of the developer program has to request this entitlement for the team, before it can be assigned to an app. See this page for details and a link the request form: com.apple.developer.networking.multicast

After I have added the entitlement, pairing and printing via NFC scan is possible and makes up a great user experience!

Hope this help.
Cannot connect Epson printers on iOS14
 
 
Q