{"action":"opened","issue":{"url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/1008","labels_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/1008/labels{/name}","comments_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/1008/comments","events_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/1008/events","html_url":"https://github.com/lionheart/openradar-mirror/issues/1008","id":98696033,"number":1008,"title":"21320078: CoreBluetooth state restoration does not get restored after rebooting iOS device","user":{"login":"openradar-mirror","id":13605213,"avatar_url":"https://avatars.githubusercontent.com/u/13605213?v=3","gravatar_id":"","url":"https://api.github.com/users/openradar-mirror","html_url":"https://github.com/openradar-mirror","followers_url":"https://api.github.com/users/openradar-mirror/followers","following_url":"https://api.github.com/users/openradar-mirror/following{/other_user}","gists_url":"https://api.github.com/users/openradar-mirror/gists{/gist_id}","starred_url":"https://api.github.com/users/openradar-mirror/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openradar-mirror/subscriptions","organizations_url":"https://api.github.com/users/openradar-mirror/orgs","repos_url":"https://api.github.com/users/openradar-mirror/repos","events_url":"https://api.github.com/users/openradar-mirror/events{/privacy}","received_events_url":"https://api.github.com/users/openradar-mirror/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/lionheart/openradar-mirror/milestones/2","html_url":"https://github.com/lionheart/openradar-mirror/milestones/iOS","labels_url":"https://api.github.com/repos/lionheart/openradar-mirror/milestones/2/labels","id":1237416,"number":2,"title":"iOS","description":null,"creator":{"login":"openradar-mirror","id":13605213,"avatar_url":"https://avatars.githubusercontent.com/u/13605213?v=3","gravatar_id":"","url":"https://api.github.com/users/openradar-mirror","html_url":"https://github.com/openradar-mirror","followers_url":"https://api.github.com/users/openradar-mirror/followers","following_url":"https://api.github.com/users/openradar-mirror/following{/other_user}","gists_url":"https://api.github.com/users/openradar-mirror/gists{/gist_id}","starred_url":"https://api.github.com/users/openradar-mirror/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openradar-mirror/subscriptions","organizations_url":"https://api.github.com/users/openradar-mirror/orgs","repos_url":"https://api.github.com/users/openradar-mirror/repos","events_url":"https://api.github.com/users/openradar-mirror/events{/privacy}","received_events_url":"https://api.github.com/users/openradar-mirror/received_events","type":"User","site_admin":false},"open_issues":203,"closed_issues":0,"state":"open","created_at":"2015-08-03T02:08:30Z","updated_at":"2015-08-03T08:25:54Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-08-03T08:25:54Z","updated_at":"2015-08-03T08:25:54Z","closed_at":null,"body":"#### Description\n\nSummary:\r\nAn application can use CoreBluetooth state restoration to \"persist\" GATT services that it provides or to \"persist\" its intent to connect to devices, even though the app might crash or get jettisoned by iOS. However, when iOS reboots (either by the user manually rebooting, the battery running dry or a kernel panic), the state is not properly restored after the reboot and the user has to manually open the iOS applications again. This is a suboptimal user experience.\r\n\r\nIt is also very problematic for applications and devices that do their work \"in the background\" without no user interaction, like (health) monitoring systems.\r\n\r\nThis bug has been around since iOS 7 and it has been a great source of complaints from within the developer community. Please do something about it!\r\n\r\nDupe of #14206719\r\n\r\nSteps to Reproduce:\r\n1. Create an app that uses CoreBluetooth state restoration (I can provide a sample project if needed)\r\n2. Launch the app\r\n3. Observe that the app can connect to an accessory and any services it hosts are available from any connected accessory\r\n4. Reboot the iOS device\r\n5. Observe that the app is not relaunched automatically nor is iOS reconnecting to the accessory on behalf of the app\r\n5. Use another app like LightBlue for iOS to connect manually to the accessory\r\n6. Perform service discovery on the iOS device from the accessory\r\n7. Observe any services hosted by the app are not made available any more by iOS (on behalf of the app)\r\n\r\nExpected Results:\r\nAfter a reboot of iOS, any Bluetooth Smart devices for which apps using CoreBluetooth state restoration had connected to, should be attempted to be connected to again by iOS (on behalf of the app), without the user having to launch the app manually.\r\n\r\nAfter a reboot of iOS, any CBMutableService registered by apps using CoreBluetooth state restoration, should be added to iOS' GATT database again, without the user having to launch the app manually.\r\n\r\nActual Results:\r\niOS does not attempt to connect again to any Bluetooth Smart device, even though it was connected prior to the reboot.\r\n\r\niOS does not re-register any CBMutableService that was registered prior to the reboot.\r\n\r\nVersion:\r\niOS 9 beta 1 (13A4254v)\r\n\r\nNotes:\r\n\r\n\r\nConfiguration:\r\niPhone 5 (A1429)\r\n\r\nAttachments:\n\n-\nProduct Version: 9.0 beta 1\nCreated: 2015-06-10T15:07:33.714460\nOriginated: 2015-06-10T17:06:00\nOpen Radar Link: http://www.openradar.me/21320078"}}