PlayMaker Help & Tips > iOS Help

IOS publishing notes

(1/5) > >>

jeanfabre:
Hi Everyone,

Publishing for IOS can be tricky sometimes. This is especially true if you are using "Get Property" and "Set Property" as it uses reflections and this cause problems depending on your IOS publish settings.

General IOS publishing settings:

Script call optimization
IN ALL CASES: do check the publish option "Script call optimization" to  "Slow and Safe" when you tests your games, because if you get an error, the app will less likely crash, and you will be able to have more logs to pin point the problem in xCode console. Only select the option "Fast but no Exception" when you have a game that runs without any errors in Xcode console.

Symlink
Check "SymLink" on. This feature is not very well documented, so I am not sure myself what it exactly do, but if I don't check it, all attempt fails when I use "Get Property" and "Set Property" actions.

Stripping
Stripping is a one way to optimize your final application size:
http://docs.unity3d.com/Documentation/Manual/iphone-playerSizeOptimization.html

And depending on your stripping option you may not be able to compile or have errors when you play leading to crash or bugs.

DO NOT select the "micro mscorlib", it's too optimized when using "Get property" and "Set property" actions.

link.xml
There is way to explicitly define what class not to strip so that reflection work, but so far I failed to find proper documentation as to how to fill that link.xml for a monobehaviour. There is a Wizard that will help you setup this link.xml without any effort on your end.


This post is very much a work in progress. Don't hesitate to share your knowledge, expertise, findings and thoughts to make this guideline as accurate and helpful as possible.

Bye,

 Jean

julius:
Just a few things,

Symlink Unity libraries means that Xcode project generated by Unity will directly reference Unity iOS runtime library from Unity Editor install location. It saves your disk space (runtime lib is ~300 MB) and Unity Editor can faster generate Xcode project, because it does not need to copy additional 300 MB.

You should not use it when:
a) you are exporting Xcode project which you are going to share with somebody else
b) you are exporting Xcode project to make final build and you want to archive it for backup purposes.

As for why you are getting errors with useing "Get Property" and "Set Property" actions when its unchecked is quite strange, re-install unity perhaps to get a clean  iOS runtime library.


As for the micro mscorlib what do you mean by it's too optimized? Does it generate errors or cause actions/scripts to be run out of order?

jeanfabre:
Hi,

 Yes, this is very odd. People are also helping me on UnityAnswers, but I fear this issue is twisted...

http://answers.unity3d.com/questions/397136/linkxml-for-a-monobehaviour.html

yes, Simlink  is odd. The problem is no one seems to host a definite clear answer, and I seem to have to trial and error all this, where really some definite step should be there. On UnityAnswer they seem to say link.xml is not required, but without simlink, it just doesn't even compile to begin with...

I really doubt reinstalling Unity would solve the problem. but I will upgrade anyway, so we'll see.

Hopefully, this is just because of my ignorance. Have you tried to compile the photon demo yourself?


bye,

 Jean

julius:

--- Quote ---Have you tried to compile the photon demo yourself?
--- End quote ---

Nope I haven't yet but I'll grab it and let you know my findings.

Tochas:
Hi

Any considerations for performance under iOS? may be something like:
limit the number of active FSMs?
limit the number of states within a FSM?
limit the number of actions within a state?
use InvokeMethod instead of a series of actions? insted of SendMessage?

Navigation

[0] Message Index

[#] Next page

Go to full version