Unity-Technologies / arfoundation-samples

Example content for Unity projects based on AR Foundation
Other
3.05k stars 1.14k forks source link

Black camera view on iPhone 6 #38

Closed bitfabrikken closed 6 years ago

bitfabrikken commented 6 years ago

I've got an app in production that was approved without a hitch by Apple. Now, two separate people have reported the camera-view is black on iPhone 6 devices (not 6s). All other devices seem to have no issues.

I've ordered an iPhone 6 to reproduce, but thought I'd share this anyway. Will report my findings once I get the device.

I've also submitted a TSI to Apple, but haven't heard from them yet (sent 5 days ago).

To get LWRP working with the camera, I did apply the fix mentioned here: https://nolanscobie.com/2018/07/unity-mobile-ar-with-lwrp/ - without that fix, the camera is black on all devices. So maybe that could be causing it - that fix not being applied somehow. It's just weird it only happens on one specific device.

The app in question can be installed from App Store or Google Play, in case you want to reproduce/see it.

Build info: Unity: Unity 2018.2.3f1, Lightweight Render Pipeline, AR Foundation, ShaderGraph iOS: macOS High Sierra 10.13.6, Mac mini Late 2014, Xcode 9.4.1 (9F2000) Android: Windows 10.0.17134, min API level 24, target API 27, .NET 3.5 eq. runtime, Mono and .NET 2.0 subset, ARMv7 manifest.json:

{
  "dependencies": {
    "com.unity.package-manager-ui": "1.9.11",
    "com.unity.render-pipelines.core": "3.0.0-preview",
    "com.unity.render-pipelines.lightweight": "3.0.0-preview",
    "com.unity.shadergraph": "3.0.0-preview",
    "com.unity.textmeshpro": "1.2.4",
    "com.unity.xr.arcore": "1.0.0-preview.18",
    "com.unity.xr.arfoundation": "1.0.0-preview.17",
    "com.unity.xr.arkit": "1.0.0-preview.14",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.vr": "1.0.0",
    "com.unity.modules.xr": "1.0.0"
  }
} 
bitfabrikken commented 6 years ago

It would seem it's because only 6s and up are supported. Oops.

tdmowrer commented 6 years ago

The ARSubsystemManager.systemState should report whether the device is supported. There's also an event you can subscribe to when it changes.

bitfabrikken commented 6 years ago

@tdmowrer thankee sir. I assumed the app wouldn't be installable on unsupported devices on App Store, but I guess I have to make a check for it. Maybe something for the documentation? :) It does work like that for Play, where you can't even see the app if you search for it, if your phone doesn't support ARCore.

tdmowrer commented 6 years ago

I assumed the app wouldn't be installable on unsupported devices on App Store, but I guess I have to make a check for it. Maybe something for the documentation?

This one is actually built into Unity (not part of the ARKit package). It's one of the iOS Player Settings:

Property: Function:
... ...
Requires ARKit support Restricts the app to iPhone 6s/iOS 11 or newer devices when publishing to the App Store.

Though, I agree we should make a mention of it in the package docs too.

bitfabrikken commented 6 years ago

Can't believe I missed that, thanks!