I got my Apple developer certificate and built a simple app to solve a problem I had. One shop I buy from doesn't have Apple Wallet passes. Since you need signed certificates to build these very simple things, I created a minimal app that signs them. It's available if you need it too. It won't scan cards with AI - you manually enter the barcode, which I think makes it less prone to error.
This is genuinely useful. I have so many loyalty cards that exist only as physical barcodes that stores refuse to look up by phone number.
The privacy concern about sending pass data to the server is valid though. Since .pkpass files need to be cryptographically signed with Apple's certificate, there's no way to generate them purely client-side.
Potential solution: open source the signing code and let users run it locally with their own Apple Developer account ($99/year). Power users would do this, casual users can use your hosted version.
Also works with Google Wallet apparently, which is great for Android users.
> It won't scan cards with AI - you manually enter the barcode, which I think makes it less prone to error.
This is a very interesting sentence.
I interpret this sentence as saying that manually entering a barcode is less error prone than letting AI do it, that AI would have an unacceptable margin of error (and this is probably an accurate assessment).
But you don't need AI to find or read barcodes. Finding and reading barcodes is a reasonably mature technology that has existed long before AI.
Barcodes exist as a fast, machine readable data transfer format meant to avoid data entry errors by avoiding manual data entry, and yet you've implemented manual entry in order to avoid errors?
Now, if one of the constraints you've put on your implementation is that it work only in the browser and you don't want to have to download a large barcode scanning library to the browser, then it makes sense to implement manual entry. But that has nothing to do with AI.
That being said, there are some barcode reading apps that can be used to prompt for a scan from a web page, and you get the barcode payload back. I've used an app called "bineye" on Android (source on GitHub) that works like this. This helps avoid error prone manual entry and gets the full barcode payload (many barcodes store/encode more information than the human readable text printed next to them).
I solved this issue with Wallet Creator: https://apps.apple.com/app/id1486573384
Didn't know it was this simple to just provide a download for prepared file. Is it open source?
Love the idea, thanks for sharing!
One obvious concern here is data privacy, since the pass details are sent to the server. Any chance it would be possible to run everything in the browser, without sending data back to the server?
This is such a quick and neat way to get a pass for all the random codes in your wallet.
I've had a long shelved project (>8 years now?) where I was working on a solution to doing this from a mobile device but with loads more customization (including image options for different slots), but the cost effectiveness thanks to the PKPass signing as you noticed, put me off to provide it as a public utility as I was a student then. This gives me motivation to revisit it.
This is great! Are you sure you are not violating any ToS for that? I’d hate to see it go
I don’t think I fully understand the use case for this. What would you use the card for?
This also works for Google Wallet, you could change the messaging around it to indicate that.
As an aside, I find it really sad that, having a de-Googled Anroid phone, it's actually easier for me to download the Apple Wallet .pkpass files
Anything to do with Google Wallet passes just forwards me to a Google login page.
This is excellent! Wish the Wallet had this ability built in.
Maybe a dumb question: if I'm entering a QR code, which info do i put in?
scanning for barcodes is an easy enough pre-AI computer vision algorithm with OpenCV. AI could "write" that for you!
We’ve been using Apple Wallet (and Google Pay) with bar code scanners with some success, but the bar codes sometimes do not scan correctly and we get garbled or completely wrong data maybe 1 in 20-30 scans. Tried various scanner settings/speeds, etc, no dice so far, and the scanner/pos combo was the one recommended by our processing vendor. Both were among the highest dollar models. This looks like a very cool project!
I wish there were a way to “archive” cards and passes in the Wallet app. I’d be much more likely to pass-ify my life if that were the case.
The Wallet app is just too important and used frequently in time sensitive actions to clutter with cards/passes that I use once every few months. That is, when I’m about to tap to pay, I don’t want to infrequently used cards to clutter my payment experience. Likewise, when I’m about to board a flight, I don’t want random loyalty cards to clutter the interface.
At the same time, I would really like to keep these occasional cards and passes in Wallet, just not on the main screen. It definitely beats hanging onto these physically, especially because they are in fact infrequently used so I would never carry them around.
It should be a similar distinction to Apple’s Home Screen vs App Library for long-term archival.