Apple Wallet Event Pass - ios

I am developing an iOS application using swift as a front-end and PHP as a back-end (using Laravel framework). One of the features in my app is booking tickets for events.
I would like to integrate with Apple’s wallet to add the ticket (pass) to the Wallet.
My question is: is there any detailed resources (e.g, source code of previous projects) or any helpful notes ?
Thank you very much

I think that first you should check PassKit documentation from Apple to understand correctly how it works(https://developer.apple.com/wallet/). Then maybe this webside could works for you: https://github.com/tschoffelen/php-pkpass

I'd recommend to work through Apple's Wallet Developer Guide first. Wallet used to be named "Passbook" and the cards "Passes"; searching for these terms may get you tutorials - older ones, obviously - that may still help you get it done.

Related

Firebase & iOS 14 > Will dynamic links tracking and campaigns continue to work?

As most of you are probably aware of, iOS 14 will basically put an end to app acquisition tracking as we know it.
Here are two great articles that explore the issue in length:
The App Attribution Industry Is Dead
How To Prepare Your Mobile App and Attribution Stack for Apple’s iOS 14 Privacy and IDFA Changes
Putting aside the critical changes most people will have to make to their business models, my question has to do with Firebase's dynamic links in particular.
Since they basically rely on copying a link in the pasteboard, I already know they might now trigger a warning banner — although the Firebase team has apparently been proactive with this matter.
What I don't know at this point is whether they will continue to work or not when users disallow ad tracking.
My team and I have tried building one of our React Native apps with XCode 12 beta on a simulator running iOS 14, but haven't been able to retrieve any value from the dynamic links — whereas it currently works with iOS 13. There might be other factors at play though, so it's difficult to draw our own conclusions at this point.
My questions, provided that the users have opted out of tracking:
Will we still be able to read the dynamic link url in-app?
Will Google Analytics still receive the UTM parameters and get campaigns' results?
If the answer is no to any of these questions, what are the workarounds or third-party solutions you've found?
Your insights will be greatly appreciated!
According to Google's blog post: https://firebase.google.com/docs/ios/supporting-ios-14
If IDFA is not accessible:
No impact for link-opening functionality
When used with Google Analytics, attribution for link conversion events is unavailable.

Is it possible to detect if any other certain app is Currently running or not in iOS?

Let say If I want to check if the facebook or any other application is currently running on device ?
The answer is simply "No", this is absolutely not possible in iOS.
(Note that you can easily "open" another app - it's just like opening a web link - but you can not "check if it is already open".)
Simply your answer is NO
The reason behind this, in case of iOS, every app is running like on own sandbox. So there is no connection between one sandbox to another.
Update 2:
Decided to use Code-Level Support.
Included with your paid membership are two Technical Support Incidents
(TSIs) for code-level support from Apple support engineers.
Reply from Apple:
Automatic Assessment Configuration limits what features of the system
are available while in a testing environment. It locks the device to a
single app. It does not provide oversight, such as identifying which
apps are running.
Classroom is an app targeting K-12 classrooms. It provides teacher
oversight of student activities during lessons, including viewing
student screens.
https://www.apple.com/education/k12/teaching-tools/
https://support.apple.com/guide/classroom/welcome/ipados
I'm not aware of any functionality associated with either of these
that provides for notification of apps running in the background.
While I cannot say how any given app is implementing apparent
functionality, I'm pretty confident in saying that the app you mention
earlier is not using either Automatic Assessment Configuration or
integrating with Classroom.
You may want to contact the developer of the app in question.
Of course, it's also possible your colleague misunderstood and the app
is not in fact doing any such reporting.
I would also encourage you to file feedback requesting such a feature.
Please submit your suggestion via Feedback Assistant
https://feedbackassistant.apple.com. For more information on
Feedback Assistant, please visit
https://developer.apple.com/bug-reporting/.
While you were initially charged a technical support incident for this
request, we have assigned a replacement incident back to your Apple
Developer Program account.
Perhaps my colleague mistook Android version of the app for iOS.
Update:
After reading some more about this it could be related to Automatic Assessment Configuration and AEAssessmentSession.
This allows an app to:
Enter single-app mode and prevent students from accessing specific
system features while taking an exam.
and
A session provides protections by preventing access to desktop
elements like:
...
Other apps, except those that you selectively allow
https://developer.apple.com/documentation/automaticassessmentconfiguration
https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_automatic-assessment-configuration
https://developer.apple.com/documentation/automaticassessmentconfiguration/aeassessmentsession
Sample code here:
https://developer.apple.com/documentation/automaticassessmentconfiguration/build_an_educational_assessment_app
Original:
I agree with #AnkurLahiry and #Fattie that it should not be possible due to sandbox environment. According to Apple Developer Forums it is not possible either:
https://developer.apple.com/forums/thread/48374
However a colleague took his hunting degree and they used an app for examination. This app could detect other apps running in the background. For example one person had Teams app running and the examinators could then tell that he had that exact app running on his phone. Not just installed but running in the background.
https://apps.apple.com/se/app/teoriprov-f%C3%B6r-j%C3%A4garexamen/id1548547811
He took the test 2022-04-29 and was using the app version 1.0.8.
I'm not an iOS developer but I have done some experiments with disabling or bypassing SSL Pinning/Certificate Pinning on Android. In this case developers often used checks in the native layer as well as the Java layer to make it difficult to bypass. My guess is that they use low-level access to detect if a process is running or not.
https://security.stackexchange.com/questions/149325/disable-or-bypass-ssl-pinning-certificate-pinning-on-android-6-0-1
https://developer.apple.com/documentation/objectivec
Unfortunately I don't have more information than that. Next step could be contacting them and see if they are willing to share how they did it.
You could also read up on examination apps and classroom:
https://apps.apple.com/us/app/classroom/id1085319084
For Android you can check it like this:
https://stackoverflow.com/a/22503513/3850405

How to create a deep link to the Apple Wallet app from my website?

I would like to have a link on my mobile website that once clicked from an iOS device, it will open up the Apple Wallet app.
I know there are some questions about this subject when it comes to an app that I built, but since this is not the case here, I'm not sure what is the right approach. I'm also aware of Brnach.io, but again, I think this solution is for an app I own, and I'm not sure how I can implement it for apps created by Apple (or other 3rd party developers) and specifically Apple Wallet (for example: how do I get the app ID?).
I know Universal Links might also be an option but I've read that I can't use an automated redirect with them (which I will need to do too)
Use this in your URL- shoebox://
To simply open the Wallet app you can use the wallet:// deeplnk, I'm also trying to figure out how to open specific passes.

Accessing Google Calendar API with OAuth2 on iPhone

I'm trying to build google calendar functionality for an iPhone app. I understand I need to be authorized with OAuth2 and would like help some help. The iPhone app is accessing a public calendar and therefore the user is not supposed to login with a webview like the google toolbox framework. FWIW, I have my account set up. Any framework recommendation or good tutorials for this would be greatly appreciated.
I am in the same boat as you. The info you find on this is scarce and confusing... unfortunately.
You've probably already been to Google's API Documentation. This post helped me to get the GDataObjC-Client to work in my project.
Google's samples are unfortunately all for Mac and not iOS. Their take on it is, that the methods are pretty much the same for iOS as they are for Mac, so you figure it out how you translate the Mac portion to iOS.
I ended up doing just that... I created a new XCode project and brought over the code of CalendarSampleWindowController of the Mac-app to my ViewController.
Good luck!

UIGetScreenImage will be reject now?

I know UIGetScreenImage is a private api, and in a period time can use in the appstore.
and later someone said can't use anymore.
So I ask here to make sure, Can use in my app and pass to Appstore?
Best Regards
Take a look at this Apple tech note. It shows how to "legally" do screenshots in UIKit where it will get accepted into the App Store:
http://developer.apple.com/library/ios/#qa/qa1703/_index.html#//apple_ref/doc/uid/DTS40010193
They have been rejecting it again for a long time, since iOS 4 release in 2010 when they introduced AVFoundation framework which was a solution for all the camera frame capturing that UIGetScreenImage() was mostly used for before.
They offered two alternatives, one for camera frames (Technical Q&A QA1702) and one for UIKit elements (Technical Q&A QA170 - the one that Michael mentioned), but neither of those is nearly enough usable for taking actual screenshots.
You can read the announcement at developer forums (iOS Developer Program account required).
Around a year ago, Apple started to run static analysis on submitted binaries during the App Store review process. Before that, access to private APIs will pass the review if the functionality itself wasn't too obvious to be caught by the reviewer.
Currently, reviewer uses automated methods to identify private APIs by their names. I recall reading somewhere that, not only aren't you allowed to call them, but also can't you use private API names in Category method names. I imagine because the scanning process is automated, you wouldn't have a shot to pass the review if you did use undocumented methods.

Resources