在 iOS 15.4 上使用 ARGeoTrackingConfiguration 时黑屏?

发布于 2025-01-18 19:05:37 字数 1142 浏览 3 评论 0原文

我正在尝试运行来自 Apple 的使用 ARGeoTrackingConfiguration 的示例项目: https://developer.apple.com/documentation/arkit/content_anchors/tracking_geographic_locations_in_ar

此示例应用程序是应该在屏幕顶部显示 AR 摄像头,在下部显示地图视图。但是,我没有看到摄像机的画面,它只是黑色的。 我怀疑这是 iOS 15.4 中发生的变化,因为我的同事能够在 iOS 15.3.1 的手机上成功运行该应用程序。

其他一些细节:

  • 我在 iPhone 12 Pro Max 和 iPhone 13 mini 上看到此问题。
  • 这两种设备都可以支持地理跟踪并连接到互联网。
  • 根据这些文档,我所在的位置具有地理跟踪支持: https://developer.apple .com/documentation/arkit/argeotrackingconfiguration
  • 我更新到了 iOS 15.4.1,但问题仍然存在。
  • 我尝试更新到 iOS 15.5 beta 1,问题仍然存在。

还有其他人注意到这个问题吗?我做错了什么吗?有解决方法吗?

我还提交了雷达票,以防万一。

编辑:我针对此问题提交了 TSI 请求,并得到回复称该问题没有解决方法。不过,该错误似乎已在 iOS 15.5 beta 2 中修复。

在此处输入图像描述

I am trying to run this sample project from Apple that uses ARGeoTrackingConfiguration: https://developer.apple.com/documentation/arkit/content_anchors/tracking_geographic_locations_in_ar

This sample app is supposed to show an AR camera feed in the top part of the screen, and a map view in the lower part. However, I am not seeing the camera feed, it's just black.
I suspect this is something that changed in iOS 15.4, since my colleague was able to run the app successfully on a phone with iOS 15.3.1.

Some other details:

  • I am seeing this issue on an iPhone 12 Pro Max and an iPhone 13 mini.
  • Both these devices can support geotracking and are connected to the internet.
  • I am in a location that has geotracking support, according to these docs: https://developer.apple.com/documentation/arkit/argeotrackingconfiguration
  • I updated to iOS 15.4.1 but the issue is still occurring.
  • I tried updating to the iOS 15.5 beta 1 and the issue is still occurring.

Has anyone else noticed this issue? Am I doing something wrong? Is there a workaround?

I filed a radar ticket as well, just in case.

EDIT: I filed a TSI request for this issue, and I got back a response saying that there is no workaround for the issue. However, it looks like the bug has been fixed in iOS 15.5 beta 2.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

污味仙女 2025-01-25 19:05:37
//  Class originalClass = NSClassFromString(@"NSXPCDecoder");
//  Class swizzledClass = NSClassFromString(@"SwizzledDecoder");

//  SEL originalSelector = @selector(_validateAllowedClass:forKey:allowingInvocations:);
//  SEL swizzledSelector = @selector(__validateAllowedClass:forKey:allowingInvocations:);

@interface SwizzledDecoder : NSObject

- (void)__validateAllowedClass:(Class)arg1 forKey:(id)arg2 allowingInvocations:(bool)arg3;

@end

@implementation SwizzledDecoder

- (void)__validateAllowedClass:(Class)arg1 forKey:(id)arg2 allowingInvocations:(bool)arg3 {
  if ([arg2 isEqualToString: @"collaborationData"]) {
    return;
  }
  return [self __validateAllowedClass: arg1 forKey: arg2 allowingInvocations: arg3];
}

@end

https://developer.apple.com/forums/thread/703735? answerId=711909022#711909022

我可以想到几个选项使用私有(Apple)API“修复”此问题。这种方法并不是非常糟糕,至少可以让您在 15.4.x 设备上进行测试(我确认这适用于 Xcode 13.3.1 和 iOS 15.4.1)。

至于苹果是否会在 App Store 审核中批准这样的 #YOLO #FIDLAR 代码?那里我帮不了你。

真正的修复(我们希望)是 Xcode 的下一个版本附带了一个 SDK,该 SDK 可以使用 15.4.x 的追溯修复来构建和编译。

//  Class originalClass = NSClassFromString(@"NSXPCDecoder");
//  Class swizzledClass = NSClassFromString(@"SwizzledDecoder");

//  SEL originalSelector = @selector(_validateAllowedClass:forKey:allowingInvocations:);
//  SEL swizzledSelector = @selector(__validateAllowedClass:forKey:allowingInvocations:);

@interface SwizzledDecoder : NSObject

- (void)__validateAllowedClass:(Class)arg1 forKey:(id)arg2 allowingInvocations:(bool)arg3;

@end

@implementation SwizzledDecoder

- (void)__validateAllowedClass:(Class)arg1 forKey:(id)arg2 allowingInvocations:(bool)arg3 {
  if ([arg2 isEqualToString: @"collaborationData"]) {
    return;
  }
  return [self __validateAllowedClass: arg1 forKey: arg2 allowingInvocations: arg3];
}

@end

https://developer.apple.com/forums/thread/703735?answerId=711909022#711909022

I could think of a few options to "fix" this using Private (Apple) APIs. This approach is not super terrible and at least would unblock you from testing on a 15.4.x device (I confirmed this works on Xcode 13.3.1 and iOS 15.4.1).

As far as whether or not Apple would approve #YOLO #FIDLAR code like this in an App Store review? I can't help you there.

The real fix (we can hope for) is the next version of Xcode ships with an SDK that builds and compiles with a retroactive fix for 15.4.x.

肥爪爪 2025-01-25 19:05:37

此问题已在 iOS 15.5 中修复

This issue has been fixed in iOS 15.5

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文