Im фактически пытается конвертировать образец кода Apple в быстрый.iOS8 сбой приложений на Xcode6.0.1 с помощью HealthKit
Я создал приложение и APPID для него в devcenter. Я проверил право на HealthKit (те, что для IAP & GC, выделены серым цветом и отмечены автоматически).
Когда профиль обеспечения, который я создаю для него, загружается в Xcode, и я перехожу к настройкам в Xcode и просматриваю профили подготовки моей учетной записи, я могу видеть имя профиля плюс срок годности, а затем есть некоторые значки для прав , Но профиль обеспечения я создал с HealthKit оленья кожа есть какие-либо значок для него, только 2 из них по умолчанию, это нормально:
потому, что по какой-то причине приложение падает при запросе авторизации с этой ошибкой:
2014-10-02 12: 16: 13.241 SwimFit [549: 8824] - [__ NSCFConstantString _allowAuthorizationForSharingWithEntitlements:]: непризнанный селектор, отправленный в экземпляр 0x107dc1ce0 2014-10-02 12: 16: 13.251 SwimFit [549: 8824] ** * Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [__ NSCFConstantString _allowAuthorizationForSharingWithEntitlements:] : Непризнанные селектор направлен например 0x107dc1ce0'
Если я пытаюсь запустить его на устройстве, я получаю это:
Я создал:
- AppId для моего приложения
- Активировано, что AppID для HealthKit
- Создал профиль обеспечения для этого AppID
- Активированного HealthKit Возможность в Генеральном
- Я вижу entitlements.plist создаются с com.apple.developer.healthkit = да
- info.plist имеет значение healthkit для требуемых возможностей
только странная вещь, которую я сделал на этот раз, и я делал по-другому для других приложений, так это то, что когда я нажимал на сборку/запуск какой-то точки, я позволяю Xcode создавать AppID, и я получаю это от devcenter ... я не могу загрузить изображение, но в основном все мои предыдущие AppIDs названы после приложения. Этот, потому что его созданный xcode называется: Xcode iOS App ID com santiapps SwimFit, но его идентификатор пакета верен: com.santiapps.SwimFit. Так же есть профиль dev: профиль Provisioning Profile iOS: com.santiapps.SwimFit и его один в моих настройках сборки. Первоначально у меня был SwimFit, потому что это было имя приложения, поэтому Xcode создал для него автоматический AppID и ProvProfile для него. Затем я подумал, может быть, мне нужно создать appID и provprofile, поэтому я сделал это вручную и попытался назвать его SwimFit2. Оба дают ту же ошибку.
Что еще я могу пропустить?
Вот код:
//1. Add healthstore property
var healthStore: HKHealthStore? //error if not optionally unwrapped
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//2. Ask for permissions
if (HKHealthStore.isHealthDataAvailable() == true) {
self.healthStore = HKHealthStore() //needs to be var for it to work?
var writeDataTypes = self.dataTypesToWrite()
var readDataTypes = self.dataTypesToRead()
self.healthStore!.requestAuthorizationToShareTypes(writeDataTypes, readTypes: readDataTypes, completion: { (success: Bool, error: NSError!) -> Void in
if (!success) {
NSLog("You didn't allow HealthKit to access these read/write data types. In your app, try to handle this error gracefully when a user decides not to provide access. The error was: %@. If you're using a simulator, try it on a device.", error)
return
} else {
NSLog("success")
}
// Handle success in your app here.
self.setupHealthStoreForTabBarControllers()
})
}
return true
}
Вот ссылка с захватом экрана: http://youtu.be/BBagkNTpfQA