Unity 和 iOS SDK 4.3发布到AppStore的问题

很多人依旧苦恼提交因为SDK4.3编译的Unity iOS应用程序被商店驳回的事情.当时,这个问题显得很复杂,因为所有的问题都是在苹果那边的反馈,而开发者自己却看不到应用崩溃的重现.之后Unity公司给所有开发者发了封邮件,让使用Xcode3.2.5和iOS SDK 4.2来保证顺利通过AppStore的审核.并且提供了原始SDK下载链接.并且保证用上面版本SDK编译出来的应用程序可以很好的运行于当时所有iOS版本和设备上.

从那个时候起,Unity公司就花了很多时间在论坛上分析出现问题的报告,也尝试了一些想法.后来终于找到了问题所在,就是iOS SDK4.3中一个微小的有关AppStore代码保护系统的问题.

最近,官网论坛的一些用户反馈说有SDK4.3成功提交到AppStore的成功案例了.这使得解决方案出炉(同样感谢”susantio”和”ratrodstudio”).项目使用了特殊链接器的标志”all_load”,使用这个标志后,SDK4.3就可以正确的计算受保护的代码的大小,从而解决了头疼的拒绝上架的问题.

Unity 3.4发布指日可待,会默认修正这个标志问题,但是如果你现在基于使用新的SDK,那么可以手动添加这个标志.

使用Xcode3.2.6(SDK 4.3)添加标志的方法:

1:在Xcode打开你的项目.
2:在Xcode的菜单中选择”Project->Edit Active Target”.
3:在配置的下拉菜单中选择”Release”.
4:然后搜索”linker”.
5:找到一个名为”Other Linker Flags”,并双击它.

6:点选加号,添加”-all_load”.

7:选择清除原有的Build,就是菜单中找”Clean all targets”.

使用Xcode4/4.0.2(SDK 4.3)添加标志的方法:

1:在Xcode打开你的项目.
2:打开Project Navigator.
3:接下来选择”Unity-iPhone”里面的TARGETS.
4:接着选择”Build Settings”.
5:同样的搜索”linker”.
6:找到”Other Linker Flags”项,双击它附近的”Release”设置.

7:点选加号,添加”-all_load”.

8:选择清除原有的Build,就是菜单中找”Clean all targets”.
9:如果要发布的话就点击”Product” -> “Build For” -> “Build For Archiving”,不要使用Product -> Build,因为它是编译为”debug”的应用程序,默认不会包含”-all_load”标志).

原文:http://blogs.unity3d.com/2011/06/15/unity-and-ios-sdk-4-3/
转载请注明来自1Vr.Cn,否则MJJ!