2017-07-12 21 views
3

使用測試版的iOS 11即使使用應與舊設備兼容的3DOF,ARKit Apps也會崩潰?如果ARKit不受支持,我該如何防止應用程序崩潰?如何在舊設備上使用Apple ARKit?

+0

您正在使用哪種設備?它很難幫助你沒有一些代碼示例和崩潰日誌 – Guig

+1

請參閱https://stackoverflow.com/questions/44567920/testing-arkit-without-iphone6s-or-newer和https://stackoverflow.com/questions/ 44590817/arkit-demo-crashing-on-iphone-6-iphone-6-plus?rq = 1 – rmaddy

回答

7

支持的設備

由於iOS的11,你can't使用ARKit舊設備:

重要

ARKit需要與A9或更高版本處理器的iOS設備。

要使您的應用僅在支持ARKit的設備上可用,請在您的應用 Info.plist的UIRequiredDeviceCapabilities部分使用 arkit密鑰。如果增強現實是您的應用的輔助功能,則 將使用isSupported屬性來確定當前設備 是否支持您要使用的會話配置。

設備應該有A9或更高版本的處理器。您只能使用:

  • iPhone SE,
  • iPhone 6S和更高版本(7,8,X),
  • 的iPad(2017年)或更高版本,
  • 的iPad Pro的(任何)。

防止崩潰

爲了防止應用程序崩潰,您可以使用ARConfigurationisSupported財產。並且不要忘記檢查當前的iOS版本。

import ARKit 

func isARSupported() -> Bool { 
    guard #available(iOS 11.0, *) else { 
     return false 
    } 
    return ARConfiguration.isSupported 
} 

if isARSupported() { 
    // ARKit is supported. Do what you need. 
} else { 
    // ARKit is not supported. 
} 

之前試圖創建一個AR配置,驗證 用戶的設備支持計劃通過檢查 相應的配置類的isSupported屬性使用的配置。如果 此屬性的值爲false,則當前設備不支持 請求的配置。

+0

一個很好的答案至少可以說哪個iPhone有A9處理器。 – HAS

+0

這不是事實。所有蘋果設備都支持3DOF,我相信它在WWDC上的說法。 6DOF是A9及更高版本 – SomeUser

+1

@SomeUser這是蘋果在他們的文檔中說的:https://developer.apple.com/documentation/arkit –

1

爲了防止應用程序崩潰,您可以在運行時使用ARConfiguration的'isSupported`屬性以編程方式檢查ARKit支持。

ARConfiguration.isSupported

if (ARConfiguration.isSupported) { 
    // ARKit is supported. You can work with ARKit 
} else { 
    // ARKit is not supported. You cannot work with ARKit 
} 

繼iOS設備(與iOS安裝11)支撐ARKit:

  • iPhone X
  • iPhone 8,8加上
  • iPhone 6S和6S加
  • iPhone 7和7 Plus
  • iPhone SE
  • iPad Pro(9。7,10.5或12.9)
  • ipad公司(2017)

下面是有關ARKit支持& iOS裝置的配置的一些參考鏈接:

ARKit對蘋果A9 and A10 & A11 Bionic chip處理器上運行。
iPhone Models - (Chip)
iPad Models - (Chip)

ARKit需要與A9或更高處理器iOS設備。要使您的應用僅在支持ARKit的設備上可用,請在您應用的Info.plist的UIRequiredDeviceCapabilities部分中使用arkit密鑰 。 如果增強現實是您的應用的輔助功能,請使用isSupported屬性來確定當前設備是否支持您要使用的會話配置。

相關問題