'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 ?



Solution 1:[1]

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".)

Solution 2:[2]

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.

Solution 3:[3]

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Fattie
Solution 2 Ankur Lahiry
Solution 3