Recently, some Unity customers who have been very anxious to get their iPhone game approved by Apple, have received a rejection notice because they use something that was no longer approved by the Apple rules.
We have been working hard on this issue as it stalls and affects our iPhone developer customers. We were able to correct the issue 2 days after we first heard about it and delivered that fix to those who had reported the problem. Many of them have been already resubmitted their application to Apple. The first Unity game to completely pass the App Store Submission Process is "Star Wars: Trench Run".
We will be releasing this new version, Unity iPhone 1.5.1, publicly on our website sometime next week. In the meantime, if you have an urgent need or concern, please contact firstname.lastname@example.org and request an iPhone build with this issue fixed.
Note that Unity games already on the app store are not affected by this.
For those who are interested here are the technical details:
What do those functions actually do?
_NSGetEnviron is used by the Mono runtime to provide an implementation of the .NET core API method: Environment.GetEnvironmentVariable(). On UNIX environment variables are often used to pass arguments to applications. Due to how the function is exposed, it does not let developers do any data collection.
exc_server is used by the Mono runtime to provide graceful NULL reference exception handling. This is useful for developers, when they dereference a null pointer, we can avoid a crash and instead throw an exception and continue the game.
While those functions are useful for debugging purposes, Apple now rejects Apps that use them.
In order for us to solve this problem we simply removed any calls to _NSGetEnviron and exc_server. Update Unity iPhone 1.5.1 was sent out to developers days ago. Most of them have already resubmitted their Apps to the AppStore with the functions removed. Unity iPhone 1.5.1 will go live this week. The first Unity game to completely pass the App Store Submission Process is "Star Wars: Trench Run".