Use of Prefs: Settings

Hi everyone:

How all we know the use of App-Prefs:root is a headache, because it causes rejection in AppStore, because it's considered that root and following is a private API. The app-settings: scheme redirect to our app settings, and that's not the behaviour expected

@eskimo what about only use App-Prefs:? Is it considered private API? Is it not an app scheme?

We have a lot of issues open by users because the mobileconfig download, since iOS 12.2 from Safari, not redirect the user to the profile settings.

Users complain because of it, and maybe with the simple fact of could open settings not our app settings, the settings app could solve the problem because of the iOS Bug is not resolved nowadays.

Thanks for all,

Best regards,

Answered by DTS Engineer in 690943022

these documentation was written in 2017.

Right. But, as I said above, AFAIK that info is still valid.

The use of App-Prefs:root=path is avoided but what about the use of App-Prefs: to open settings app?

I’m not 100% sure I’m understand this comment. Two factoids:

  • The App-Prefs URL scheme is not documented for third-party use.

  • In my earlier post I wrote “Any Apple URL schemes that are not officially documented should be considered private API.”


Coming back to your high-level goal, you wrote:

in that case to install a .mobileconfig you need to go to settings app because is something related with system not with your app.

Do you intend to deploy your app to a managed environment? If so, you should deploy your configuration profile via MDM. OTOH, if you’re building an App Store app that’s intended to be used by a wide audience you should not require the user to install a configuration profile.

What does this configuration profile do?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I’m not sure I understand your question but, AFAIK, the info in this post is still valid.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

May be I do not understand your question, but you can access user settings with:

func openSettings() {
        
        guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
            return
        }
        
        if UIApplication.shared.canOpenURL(settingsUrl) {
            UIApplication.shared.open(settingsUrl, completionHandler: nil) 
        }
    }

Isn't it what you're looking for ?

Hey @Claude31, That's correct with these pice of code you can access to your app settings, but in that case to install a .mobileconfig you need to go to settings app because is something related with system not with your app.

The use of

guard let settingsUrl = URL(string: "App-Prefs:") else {
            return
        }
        
        if UIApplication.shared.canOpenURL(settingsUrl) {
            UIApplication.shared.open(settingsUrl, completionHandler: nil) 
        }

opens settings, and your code open settings and navigate to your app.

Accepted Answer

these documentation was written in 2017.

Right. But, as I said above, AFAIK that info is still valid.

The use of App-Prefs:root=path is avoided but what about the use of App-Prefs: to open settings app?

I’m not 100% sure I’m understand this comment. Two factoids:

  • The App-Prefs URL scheme is not documented for third-party use.

  • In my earlier post I wrote “Any Apple URL schemes that are not officially documented should be considered private API.”


Coming back to your high-level goal, you wrote:

in that case to install a .mobileconfig you need to go to settings app because is something related with system not with your app.

Do you intend to deploy your app to a managed environment? If so, you should deploy your configuration profile via MDM. OTOH, if you’re building an App Store app that’s intended to be used by a wide audience you should not require the user to install a configuration profile.

What does this configuration profile do?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Use of Prefs: Settings
 
 
Q