应用程序的 Info.plist 必须包含 NSMotionUsageDescription 键

thu*_*hus 4 objective-c ios

我在运行时收到以下错误:

此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSMotionUsageDescription 键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。

我已将密钥添加到 plist 文件中:

<!--  Motion -->
<key>NSMotionUsageDescription</key>
<string>This app needs to be able to access your motion use</string>
Run Code Online (Sandbox Code Playgroud)

这是 AppDelegate 中的代码:

if ([CMMotionActivityManager isActivityAvailable])
{
    CMMotionActivityManager *motionManager = [[CMMotionActivityManager alloc] init];
    NSOperationQueue *motionActivityQueue = [[NSOperationQueue alloc] init];

    [motionManager queryActivityStartingFromDate:[NSDate distantPast] toDate:[NSDate date] toQueue:motionActivityQueue withHandler:^(NSArray *activities, NSError *error) {
        if (error && (error.domain == CMErrorDomain) && (error.code == CMErrorMotionActivityNotAuthorized)) {

        } else if (activities || !error) {

        }

        dispatch_async(dispatch_get_main_queue(), ^{

        });
    }];        
}
Run Code Online (Sandbox Code Playgroud)

为什么我总是遇到这种崩溃?我删除了所有派生文件夹,清理了项目。但还是问我钥匙!这是苹果的错误吗?

thu*_*hus 5

我发现了问题。我希望有一天它会对某人有所帮助。转到项目设置 -> 信息 -> 在自定义 iOS 目标属性部分下找到所需的背景模式并在此处添加您的密钥。我不知道为什么我的所有 plist 文件密钥都不在这里。