簡體   English   中英

在 iOS 15.4 上使用 ARGeoTrackingConfiguration 時黑屏?

[英]Black screen when using ARGeoTrackingConfiguration on iOS 15.4?

我正在嘗試從使用ARGeoTrackingConfiguration的 Apple 運行這個示例項目: https://developer.apple.com/documentation/arkit/content_anchors/tracking_geographic_locations_in_ar

這個示例應用程序應該在屏幕的頂部顯示一個 AR 相機提要,在下部顯示一個 map 視圖。 但是,我沒有看到攝像頭畫面,它只是黑色的。 我懷疑這是在 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 中修復。

在此處輸入圖像描述

//  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)。

至於 Apple 是否會在 App Store 審核中批准這樣的#YOLO #FIDLAR代碼? 我幫不了你。

真正的修復(我們希望)是 Xcode 的下一個版本附帶一個 SDK,它使用 15.4.x 的追溯修復構建和編譯。

此問題已在 iOS 15.5 中修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM