LIBRARY REJECTED: Unity3D (for private APIs. Again!)

Oops. Looks like Unity isn’t doing enough regression testing / unit testing on their codebase. The same piece of .NET that got Unity rejected – temporarily – almost a year ago has resurfaced in the Unity 3.0 Beta:

cannot be posted to the App Store because it is using private or undocumented APIs:

Spi Symbols
proc_name
_NSGetEnviron
As you know, as outlined in the iPhone Developer Program License Agreement section 3.3.1, the use of non-public APIs is not permitted. Before your application can be reviewed by the App Review Team, please resolve this issue and upload a new binary to iTunes Connect.

Sincerely,

iPhone Developer Program

Obviously, this is just a temporary blip (again), and I’m sure it’ll be fixed even sooner than last time; just wait for the next build.

But it highlights a modern risk with 3rd party libs on iPhone that’s probably never going to go away: no matter how diligent and well-resourced your provider, there will probably be times when you will be barred from releasing your apps due to Apple rejecting *their* code. Aside from the frustration, there’s always the risk that the provider *isn’t* fast enough, or skilled enough, to release a fix – and that you (as the developer) are sat around waiting to launch, possibly for weeks. With the current Apple process, you can’t even know whether the library is fixed yet – you have to keep re-submitting and waiting a week or so to find out.

There’s an excellent solution to that problem, of course – one that other platform owners have been using for years: a Partnership Program that allows providers to get Apple to individually bless each particular version of their lib. That way, there would be a lot less risk for developers.

Post to Twitter

This entry was posted on Wednesday, July 21st, 2010 at 9:42 am and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 Responses to “LIBRARY REJECTED: Unity3D (for private APIs. Again!)”

  1. Jens Fursund Says:

    Hi,

    Just wanted to let you know that the most recent version of the Unity beta (beta 4), has this issue fixed, so you can freely resubmit your application. Mind you that we are still working hard to make the Unity 3 an awesome release, and beta releases like beta 3 is bound to have problems.

    - Jens

  2. Jill Says:

    You signed a legal agreement *NOT* to use ‘private APIs’ in your code.

    And you are not happy… because *YOU* did anyway????

    Huh?

  3. Gabriel Says:

    Jill clearly didn’t read the article, or doesn’t understand what she read.

    Too true on the risks of using third party engines. But it’s worth the risk since duplicating the functionality of something like unity would take a large team of people. The cost of developing games from scratch is too high for the smaller developer and only getting more expensive.

    The best case is to go with a popular engine. Unity was used for nearly a thousand apps, so it’s in their interest to try an get issues fixed as quickly as possible. A smaller engine may not have the resources to make the changes as quickly as possible.

Leave a Reply