Search Issue Tracker

Won't Fix

Votes

0

Found in

2018.1.0b12

Issue ID

1021350

Regression

No

[tvOS] APIUpdater fails when changing platform to tvOS

Scripting

-

When switching platforms to tvOS, the required API updater fails and then building for tvOS is impossible

To reproduce:

1. Download attached project "Source.zip" and open in Unity
2. Open Build Settings and switch platform to tvOS

Expected result: Platform will be sucesfully switched
Actual result: Console will throw The Error:

APIUpdater encountered some issues and was not able to finish.


System.ArgumentException: preprocessorSymbols
at Microsoft.CodeAnalysis.CSharp.CSharpParseOptions..ctor (Microsoft.CodeAnalysis.CSharp.LanguageVersion languageVersion, Microsoft.CodeAnalysis.DocumentationMode documentationMode, Microsoft.CodeAnalysis.SourceCodeKind kind, System.Collections.Generic.IEnumerable`1[T] preprocessorSymbols) [0x00051] in <8d5a2b6695c6475bb1cb5b9a9f9c8dd7>:0
at CSharpUpdater.CSharpUpdater.ParseSyntaxTrees (APIUpdater.Framework.Core.SourceFile[] inputs, APIUpdater.Framework.Core.UpdaterParameters parameters) [0x00018] in <a746af91eb4946abb01fd402ed659b74>:0
at CSharpUpdater.CSharpUpdater.RunUpdater (APIUpdater.Framework.Core.SourceFile[] inputs, APIUpdater.Framework.Core.UpdaterParameters parameters) [0x00013] in <a746af91eb4946abb01fd402ed659b74>:0
at APIUpdater.Framework.Core.APIUpdaterBase.Update (APIUpdater.Framework.Core.SourceFile[] inputs, APIUpdater.Framework.Core.UpdaterParameters parameters) [0x0002a] in <3aa0dc9631894fbf9d7fb1f0bec9753b>:0
at ScriptUpdater.Program.UpdateLanguage (APIUpdater.Framework.Core.IScriptUpdater updater, APIUpdater.Framework.Configuration.CompilerResponseFile responseFile, System.String unityDataPath, System.String outputPath) [0x00083] in <5fbd3d45536c4995a0f985f31cf4fb54>:0
at ScriptUpdater.Program.Main (System.String[] args) [0x000c4] in <5fbd3d45536c4995a0f985f31cf4fb54>:0

Notes:
- This issue appears on Windows and OSX
- iOS and other platform API updater works with no issues

Reproduced on Unity 2017.1.3p3, 2017.2.2p3, 2017.3.2f1, 2017.4.1f1 and 2018.1.0f1
Could not reproduce issue on Unity 2018.2.0b1

  1. Resolution Note:

    The real problem is that for 'tvOS' there is a symbol defined as '69' and that is not valid. To fix this, simply go to Player Settings/tvOS and remove the offending symbol. The updater relies on a version of a library (Roslyn) that throws an exception instead of reporting an error. The newer versions of this library fixed this (and correctly reports an error instead of throwing an exception).

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.