in case you have to ship your app within couple of next weeks please keep using Xcode 7.3 for that. At the moment it provides smoother experience.
in case you have to use Xcode 8 here couple of advises, which should help you:
if your application depends camera (WebCamTexture API) you have to specify reason why this feature is being used in Info.plist located in Xcode project Unity generates. Add there NSCameraUsageDescription key with string value containing the description. (This will be exposed in Player Settings for Unity 5.4.1p1, expected to ship on 14th of September).
if your application doesnât use WebCamTexture API you need to disable camera code in Xcode project Unity generates. This is temporary measure until we ship automatic fix next week (~21st of September). Open Classes/Unity/CameraCapture.mm in generated Xcode project, go to the first line and replace â#if !UNITY_TVOSâ and with â#if 0â. This will effectively remove camera capture code and you should pass automatic submission check.
Quick summary on other iOS 10.0 and Xcode 8 compatibility aspects
latest Unity 5.3 and 5.4 patches (like 5.3.6p4 and 5.4.0p4) should work just fine for development.
older Unity versions will mostly work, but some inconveniences might be expected.
More detailed overview
Xcode 8 Build & Run works in 5.3 and 5.4 Unity versions since middle of July. Though there is inconvenience that by default Xcode project doesnât have your team selected and thus it would fail to sign project. Selecting it once and then appending project makes it work. We are working to allow you specify team id in Player Settings. This improvement should land in Sep 14 patches. We aim to make it more automatic in the future.
Xcode 8 Simulator builds should work with latest 5.3 and 5.4, but might crash with older Unity versions.
iOS 10.0 now requires to specify reason for camera, microphone and location access. We added fields for that in Unity 5.4 and later. (Will ship in patch release on Sep 14). For older Unity versions postprocessing script that updates Info.plist is advised.
iPhone 7 and 7+ device enum entries were added. Will ship in Sep 14 patches.
target OS version enum was also updated to include latest iOS versions. Will ship in Sep 14 patches.
ReplayKit broadcasting API is in the works, will ship bit later. (Unity 5.5 and probably to be included into 5.4 patch too).
In Unity 5.4.0 and 5.4.1 deviceToken is not received after calling RegisterForNotifications and there is no registrationError. Please fix this problem cause remote notifications is not working after upgrade from version 5.3.6
Iâm using everyplay. I guess that is why i saw two new entries in the info.plist, and why a friend of mine had a pop up saying that the Everyplay SDK is expired on his iOS 10 device. (I compiled it with the older SDK than the current one.)
There is a discussion going on here about the push notification regression. The information Omar provided might work in a pinch (I created my own custom PostProcessor to handle the change, but his hacky solution seems less hacky than mine so I might switch to that for the time being).
There is an open bug for this issue but your guess is as good as mine regarding if/when itâll be fixed.
Setting Application.targetFrameRate = 60; throws this error upon app launch on device : "invalid mode âkCFRunLoopCommonModesâ provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. "
Xcode 8, Unity 5.3.6p4 on both iphone 6s plus and ipad air 2 with iOS 10.
Repoducable with empty project, leaving project at 30 fps seems ok.
Donât know if itâs related to this subject, if not, sorry. Whatâs the current status of http links, do we have to use https link in game? If we use http, will it be rejected?