In iOS 10, do not open settings:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
What is the problem?
In iOS 10, do not open settings:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
What is the problem?
I am facing the same problem opening the Settings app with below code, my app simply crashes while it is trying to open Settings app.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
What exactly is the crash you see? I just tried this in a test app and it seemed to work fine.
Thanks for the reply.
In my app I was trying to launch Apple "Settings" app with above-mentioned code it works fine on iOS 9.x.x and earlier, however on iOS 10.1.1 and 10.2, my app tries to launch and Apple "Settings" app in that process it goes into background and while Apple "Settings" app is about to launch it crashes
Process: Preferences [5389]
Path: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/Applications/Preferences.app/Preferences
Identifier: Preferences
Version: 1 (1.0)
Code Type: X86-64 (Native)
Parent Process: launchd_sim [5302]
Responsible: Preferences [5389]
User ID: 501
Date/Time: 2016-12-13 15:42:39.413 -0800
OS Version: Mac OS X 10.12.1 (16B2555)
Report Version: 12
Anonymous UUID: 76E9BE6A-ACFC-5C32-D0AC-D0534FCE4A40
Sleep/Wake UUID: 06CAF827-9781-41E2-AD07-B7E6EF075396
Time Awake Since Boot: 19000 seconds
Time Since Wake: 9600 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSBundle initWithURL:]: nil URL argument'
terminating with uncaught exception of type NSException
abort() called
CoreSimulator 338.16 - Device: iPad Air 2 - Runtime: iOS 10.2 (14C89) - DeviceType: iPad Air 2
Application Specific Backtrace 1:
0 CoreFoundation 0x0000000108738d4b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x0000000108b3a21e objc_exception_throw + 48
2 CoreFoundation 0x00000001087a22b5 +[NSException raise:format:] + 197
3 Foundation 0x000000010bd0221d -[NSBundle initWithURL:] + 87
4 Foundation 0x000000010bd021b3 +[NSBundle bundleWithURL:] + 45
5 PreferencesUI 0x000000010902263b -[PSUIPrefsListController _reallyLoadThirdPartySpecifiersForApps:withCompletion:] + 821
6 PreferencesUI 0x00000001090221e2 -[PSUIPrefsListController loadThirdPartySpecifierIfNeededForBundleID:] + 452
7 Preferences 0x00000001085bd17d Preferences + 37245
8 Preferences 0x00000001085ba9b5 Preferences + 27061
9 UIKit 0x000000010cdb9898 __45-[UIApplication _applicationOpenURL:payload:]_block_invoke + 1005
10 UIKit 0x000000010cdb91e6 -[UIApplication _applicationOpenURL:payload:] + 757
11 UIKit 0x000000010cda70cc -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 5137
12 UIKit 0x000000010cdad0ed -[UIApplication _runWithMainScene:transitionContext:completion:] + 1731
13 UIKit 0x000000010cdaa26d -[UIApplication workspaceDidEndTransaction:] + 188
14 FrontBoardServices 0x000000010911f6cb __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
15 FrontBoardServices 0x000000010911f544 -[FBSSerialQueue _performNext] + 189
16 FrontBoardServices 0x000000010911f8cd -[FBSSerialQueue _performNextFromRunLoopSource] + 45
17 CoreFoundation 0x00000001086dd761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
18 CoreFoundation 0x00000001086c298c __CFRunLoopDoSources0 + 556
19 CoreFoundation 0x00000001086c1e76 __CFRunLoopRun + 918
20 CoreFoundation 0x00000001086c1884 CFRunLoopRunSpecific + 420
21 UIKit 0x000000010cda8aea -[UIApplication _run] + 434
22 UIKit 0x000000010cdaec68 UIApplicationMain + 159
23 Preferences 0x00000001085b694f Preferences + 10575
24 libdyld.dylib 0x000000010f09368d start + 1
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x000000010f3bcdda __pthread_kill + 10
1 libsystem_pthread.dylib 0x000000010f3f4787 pthread_kill + 90
2 libsystem_c.dylib 0x000000010f136fd7 abort + 129
3 libc++abi.dylib 0x000000010ef0f95a abort_message + 266
4 libc++abi.dylib 0x000000010ef34cff default_terminate_handler() + 267
5 libobjc.A.dylib 0x0000000108b3a49f _objc_terminate() + 103
6 libc++abi.dylib 0x000000010ef31e69 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x000000010ef31af4 __cxa_rethrow + 99
8 libobjc.A.dylib 0x0000000108b3a3b7 objc_exception_rethrow + 40
9 com.apple.CoreFoundation 0x00000001086c190b CFRunLoopRunSpecific + 555
10 com.apple.UIKit 0x000000010cda8aea -[UIApplication _run] + 434
11 com.apple.UIKit 0x000000010cdaec68 UIApplicationMain + 159
12 com.apple.Preferences 0x00000001085b694f 0x1085b4000 + 10575
13 libdyld.dylib 0x000000010f09368d start + 1
I am also facing same issue in iOS 10, when I try to open settings app from my app it will crash. here is the crash logs
Code:
NSURL *url1 = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[application openURL:url options:@{} completionHandler:nil];
BSMachError: port 7f03; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
_BSMachError: port 7f03; (os/kern) invalid name (0xf) "Unable to deallocate send right"
but if I use NSURL *url = [NSURL URLWithString:@"App-Prefs::root=Settings"];
UIApplication *application = [UIApplication sharedApplication];
[application openURL:url options:@{} completionHandler:nil];
It works in iOS10
Do we have any resolution for this ? I am facing the same issue
Is there any bug logged with apple for the same ?
I would recommend people get bug reports written with a sample app showing the problem. When I tried this just recently it was working as expected so something funny is happening here.
sure. will do. shall I just paste the crash report for the sample app or u expect to share the code as well ?
Upload your crash report and sample code at https://bugreport.apple.com, and then post the bug report number here in this thread so Apple employees can find it.