5

現在、iOS 10 Beta 3 でテストしているアプリがありますが、この 1 つのメソッドを実行するたびに何らかの奇妙な理由で、startPedometerUpdatesFromDate以下の行でクラッシュしているようです。

if (!_pedometer) {
    _pedometer = [[CMPedometer alloc] init];
}
[_pedometer startPedometerUpdatesFromDate:[NSDate date] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {

_pedometerそうではないことを確認しましたがnil、アップグレードする前は iOS 9 で動作していたので、さらに奇妙です。

コンソールには、コードに問題があることを示唆するものは何もありません。クラッシュすると、これにつながるだけです (例外ブレークポイントがあっても):

libsystem_kernel.dylib`__abort_with_payload:
    0x183a58d94 <+0>:  movz   x16, #0x209
    0x183a58d98 <+4>:  svc    #0x80
->  0x183a58d9c <+8>:  b.lo   0x183a58db4               ; <+32>
    0x183a58da0 <+12>: stp    x29, x30, [sp, #-16]!
    0x183a58da4 <+16>: mov    x29, sp
    0x183a58da8 <+20>: bl     0x183a3d7dc               ; cerror_nocancel
    0x183a58dac <+24>: mov    sp, x29
    0x183a58db0 <+28>: ldp    x29, x30, [sp], #16
    0x183a58db4 <+32>: ret  

また、 Info.plistに Privacy-Health Update Usage Description と Privacy-Health Share Usage Description を含めるようにしました。iPhone 6 Plusでもテストされているため、問題が何であるかはよくわかりません. 不足しているものはありますか?

4

3 に答える 3

14

iOS 10 では、プライバシー ポリシーが更新され、新しいプライバシー ルールが実装されました。承認を求めて、この次のフィールドで Info.plist アプリを更新する必要があります。

承認が求められると、説明テキストが表示されます。

<!--  Photo Library -->
<key>NSPhotoLibraryUsageDescription</key>
<string><Your description goes here></string>

<!--  Camera -->
<key>NSCameraUsageDescription</key>
<string><Your description goes here></string>

<!--  Microphone -->
<key>NSMicrophoneUsageDescription</key>
<string><Your description goes here></string>

<!--  Location -->
<key>NSLocationUsageDescription</key>
<string><Your description goes here></string>

<!--  Location When In Use -->
<key>NSLocationWhenInUseUsageDescription</key>
<string><Your description goes here></string>

<!--  Location Always -->
<key>NSLocationAlwaysUsageDescription</key>
<string><Your description goes here></string>

<!--  Calendars -->
<key>NSCalendarsUsageDescription</key>
<string><Your description goes here></string>

<!-- ⏰ Reminders -->
<key>NSRemindersUsageDescription</key>
<string><Your description goes here></string>

<!--  Motion -->
<key>NSMotionUsageDescription</key>
<string><Your description goes here></string>

<!--  Health Update -->
<key>NSHealthUpdateUsageDescription</key>
<string><Your description goes here></string>

<!--  Health Share -->
<key>NSHealthShareUsageDescription</key>
<string><Your description goes here></string>

<!-- ᛒ Bluetooth Peripheral -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string><Your description goes here></string>

<!--  Media Library -->
<key>NSAppleMusicUsageDescription</key>
<string><Your description goes here></string>
于 2016-09-27T10:56:13.480 に答える
11

Apple Engineering は、バグ レポートを提出した後、次のようなフィードバックをくれました。

このアプリは、使用法の説明なしでプライバシーに配慮したデータにアクセスしようとしたため、クラッシュしました。アプリの Info.plist には、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つ NSMotionUsageDescription キーが含まれている必要があります。

于 2016-08-08T00:19:10.480 に答える
2

同じエラーが発生したと言うためにここに来ましたがNSContactsUsageDescription、私の場合は欠落していました。より良いエラーメッセージがあればいいのにと思います。

于 2016-09-22T17:35:23.870 に答える