Anyone associated with iOS automation on real apple devices would know the challenges it comes with. Appium is a leading automation framework, however one of the drawbacks of using Appium is that you can only launch those .ipa files on a real iPhone, which are signed with a development provisioning profile/cert, and not a distribution provisioning profile/cert which is used in the apps you download from app store. How do you get such signed native apps?
Recently we had to automate an app specific settings in the preference/settings of the iPhone. It was very important for the flow and we were completely lost. Luckily we stumbled across this small app by Budhash which used to launch the native safari on iOS. Then after some more research we found this answer in StackOverflow. It showed a way to launch settings from any app on iOS 8 onwards.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
And that was it , we made some minor modifications on top of the SafariLauncher and got our own Settings Launcher. Since it was our own app we were able to sign and launch using appium and our app then launched settings which appium can control. The app is here. Feel free to use and contribute. Thanks!
Also published on Medium.