Forum Mobile Warning: iOS 64bit Mandatory in June 2015 !

Anything specifically relating to droid or iOS development with Unity can go here.

Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » January 31st, 2015, 1:14 am

Hello everyone, hello Henrik if you see my post.

I would like to notify that iOS 64 bit compatibility will be mandatory to every new AppStore app on the 1st June 2015 !
As far as i know, it seem that PlayerIO API is not compatible with iOS 64 bit version, as the current build don't have 64bit slice.

Can you please recompile the iOS and Unity/iOS soon ? PlayerIO doesn't had any update since October 2014, and i was totally fine with that as everything is working like a charm. But this 64 bit thing will be a problem shortly. I also read that we cannot submit new apps or update that are not 64 bit compatible on the 1st February...So...Tomorrow :p !

Here are some informations about this for Unity if it can help you:

http://docs.unity3d.com/Manual/iphone-64bit.html

I really appreciate your work and your service, PlayerIO/YGN backend rocks !

Cordially,
Guillaume
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 3rd, 2015, 12:37 am

Hello,

Can i, please, have an ETA about this ?
We are talking about business.

Thanks in advance.
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 3rd, 2015, 8:55 pm

A little update:

I can't actually compile and test on ARM64 for iOS 8 with IL2CPP in Unity, because of a dependancy with Application.ExternalEval on PlayerIO dll.

Of course, i doubt it's your fault, because IL2CPP is relatively new, and i think it's a bug from Unity release. Juste in case, i copy/paste my error code from UnityEditor. I will post this error on Unity forum too, if they need to correct something about that !

Code: Select all
stdout;
Fatal error in Mono CIL Linker
System.Exception: Error processing method: 'System.Void PlayerIOClient.Internal.identifier974::javascriptDialog(System.String,System.Collections.Generic.Dictionary`2<System.String,System.String>,System.String,System.Action`1<System.Collections.Generic.Dictionary`2<System.String,System.String>>)' in assembly: 'PlayerIOUnity3DClient.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void UnityEngine.Application::ExternalEval(System.String)
  at Mono.Linker.Steps.MarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.Instruction instruction) [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.MarkMethodBody (Mono.Cecil.Cil.MethodBody body) [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.Process () [0x00000] in <filename unknown>:0
  at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x00000] in <filename unknown>:0

  at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00000] in <filename unknown>:0
  at Mono.Linker.Driver.Run () [0x00000] in <filename unknown>:0
  at Mono.Linker.Driver.RunDriver (Mono.Linker.Driver driver) [0x00000] in <filename unknown>:0
stderr:

UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase)
UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable`1, String&, String&, String, String)
UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.AssemblyStripper:Strip(String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.AssemblyStripper:Strip(String[], String[], String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.IL2CPPBuilder:RunAssemblyStripper(IEnumerable, String, String[], String[], String)
UnityEditorInternal.IL2CPPBuilder:StripAssemblies(String[], String)
UnityEditorInternal.IL2CPPBuilder:Run()
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry)
UnityEditor.HostView:OnGUI()
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Henrik » February 5th, 2015, 8:52 pm

Hey Guillaume,

There's a new SDK available for download today which has 64-bit support in both the iOS client library and the Unity3D iOS extension. Please try it out and let us know if you run into any problems.
Henrik
.IO
 
Posts: 1880
Joined: January 4th, 2010, 1:53 pm

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 5th, 2015, 11:20 pm

Hi Henrik,

This is wonderful, thanks for this fast reaction !
I will give a try tomorrow because my computer power supply just crashed !

I will try with Unity in ARM64 mode, however if i can't compile due to some IL2CPP issue at the moment, i will try on a iOS test project instead (not Unity at all). At the moment, Unity doesn't have implemented ExternalEval when we build, it's normal for an iOS scenario but they don't have thought about cases like a common implementation in a DLL for Unity.

But someone has reported the same problem on page 1 of the iOS 64 bit beta thread on Unity Forums so...well...In the worst case, we will have to wait maybe some weeks to being able to compile in a full IL2CPP mode in Unity.

Thanks again Henrik, PlayerIO is an amazing backend.
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 7th, 2015, 6:54 pm

I can't compile the game for the moment because of the Unity "ExternalEval" missing method implementation on iOS (even if we know that your build will never really use it).

I oppened a Bug Ticket to Unity: http://fogbugz.unity3d.com/default.asp? ... 7kf534lpdg

So...Wait and see ! I will keep you updated about this !
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Henrik » February 8th, 2015, 7:06 am

Which version of Unity3D are you using?
Henrik
.IO
 
Posts: 1880
Joined: January 4th, 2010, 1:53 pm

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 8th, 2015, 2:30 pm

I tested with the official last, and the last patch.

So:

- Unity Pro 4.6.2 / iOS Pro
- Unity Pro 4.6.2p1 / iOS Pro

Also don't forget that everything will build fine if you are in Mono 2.x mode. This is the original build mode for every Unity project before, but Mono 2.x mode is not 64 bit compatible. If you test, make sure you are in IL2CPP, as you can see on the first picture of this Unity documentation.

But as i said, in my opinion it's not PlayerIO/YGN fault, only 2 move are possible, that you remove any Webplayer only API in the PlayerIOClient.dll, or that we wait that Unity team implement at least a dummy implementation for the missing methods, as it's the subject of my ticket on their bug report platform.
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Henrik » February 8th, 2015, 10:47 pm

Have you tried Unity's 5.0 beta?
Henrik
.IO
 
Posts: 1880
Joined: January 4th, 2010, 1:53 pm

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 9th, 2015, 12:36 am

Not yet, but i will take a look if my Unity 5 Beta version include IL2CPP, because my version it's from several months.
Otherwise, i will wait for an update on my bug report from Unity !
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 9th, 2015, 7:43 pm

Funny thing, i just received today a key from Unity for Unity 5 RC1 haha.
So i will be able to test !
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 9th, 2015, 10:50 pm

I just installed Unity 5 and done the upgrading process etc...
And the bad news, PlayerIOClient does not work on Unity 5, because Unity changed some behaviors on the WWW class.

So when PlayerIO.Authenticate is called, it say me that this overload is deprecated.

I understand now why Unity is giving temporary key for Unity 5 Beta to Asset Store publishers (like me), it's for updating their Asset for the new version, as some behavior must be totally redone and are not compatible at all between Unity 4 and Unity 5.

I guess that you will be forced to some conditionnals builds in order to give two UnityPackages in your ZIP file, one for Unity 4, the actual one, and one compatible for Unity 5.

So at the moment its not usable at all on Unity 5. But i will see if the ExternalEval error is still here.
I just wish that they will update the actual compilation problems on Unity 4.6 for IL2CPP, because Unity 5 has a lot of changes, and i doubt that my Unity Flash project (on Unity 4.6.1) will be able to open anymore when opened on Unity 5 one time :-/ !

Anyway, here is the error stack i had:

Code: Select all
This overload is deprecated. Use the one with Dictionary argument.
UnityEngine.WWW:.ctor(String, Byte[], Hashtable)
PlayerIOClient.Internal.identifier797:getRequest(Int32, identifier1034)
PlayerIOClient.Internal.identifier799:MoveNext()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PlayerIOClient.Internal.identifier49:Enqueue(IEnumerator)
PlayerIOClient.Internal.identifier797:Call(Int32, identifier143, Callback`1, Callback`1)
PlayerIOClient.Internal.identifier115:Authenticate(String, String, Dictionary`2, List`1, String, Dictionary`2, List`1, Callback`1, Callback`1)
PlayerIOClient.<>c__DisplayClass15:<Authenticate>b__10()
PlayerIOClient.PlayerIO:ensureInitialized(Callback)
PlayerIOClient.PlayerIO:Authenticate(String, String, Dictionary`2, String[], Callback`1, Callback`1)


EDIT: Not better on Unity 5 for IL2CPP :p sorry ! Here the stack just for info:

Code: Select all
Exception: /Applications/Unity/Unity.app/Contents/Frameworks/Tools/UnusedByteCodeStripper2/UnusedBytecodeStripper2.exe did not run properly!
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:68)
UnityEditorInternal.AssemblyStripper.RunAssemblyLinker (IEnumerable`1 args, System.String& out, System.String& err, System.String linkerPath, System.String workingDirectory) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:192)
UnityEditorInternal.AssemblyStripper.StripAssembliesTo (System.String outputFolder, System.String workingDirectory, System.String& output, System.String& error, System.String linkerPath, System.String descriptorsFolder, IEnumerable`1 additionalBlacklist) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:185)
UnityEditorInternal.AssemblyStripper.Strip (System.String outputFolder, System.String workingDirectory, System.String& output, System.String& error, System.String monoLinkerPath, System.String descriptorsFolder, IEnumerable`1 additionalBlacklist) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:136)
UnityEditorInternal.AssemblyStripper.Strip (System.String[] assemblies, System.String[] searchDirs, System.String outputFolder, System.String workingDirectory, System.String& output, System.String& error, System.String monoLinkerPath, System.String descriptorsFolder, IEnumerable`1 additionalBlacklist) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:121)
UnityEditorInternal.IL2CPPBuilder.RunAssemblyStripper (IEnumerable assemblies, System.String managedAssemblyFolderPath, System.String[] assembliesToStrip, System.String[] searchDirs, System.String monoLinkerPath) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:431)
UnityEditorInternal.IL2CPPBuilder.StripAssemblies (System.String[] assemblies, System.String managedAssemblyFolderPath) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:419)
UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:273)
UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211)
UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String stagingAreaDataManaged, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
UnityEditor.HostView:OnGUI()


Anyway, Unity 5 is not out yet...
I think the best is to wait for the next patch...
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France

Re: Warning: iOS 64bit Mandatory in June 2015 !

Postby Guillaume » February 17th, 2015, 11:40 pm

Hi !

Just updating. No really news, but this from Unity team:

http://forum.unity3d.com/threads/4-6-io ... st-1965536

"It looks like we are working on this one, but we don't have a resolution yet."

Still waiting so !
Guillaume
 
Posts: 277
Joined: March 28th, 2014, 1:59 am
Location: France


Return to Mobile