iOS 4.2.1发布模式下的可视错误,但不是调试模式或iOS 5

时间:2011-12-09 20:32:55

标签: ios ios-4.2 ipod-touch

在编译iOS应用程序时,在以下情况下一切看起来都很棒:

  • iOS 5.0.1,调试模式
  • iOS 5.0.1,发布模式
  • iOS 4.2.1,调试模式

当我在发布模式下构建存档并在iOS 4.2.1上运行时,存在大量的视觉问题。在大多数情况下,这些由屏幕上的文本位置(大部分为UILabel)组成。我正在测试物理设备上的4.2.1 Release版本; iPod touch第二代。使用Xcode构建版本4.2.1(4D502)。

该项目包含许多第三方图书馆。

我尝试了以下方法来解决这些问题而没有任何积极影响:

  • 删除/修改了特定于Release版本的所有构建设置,以匹配Debug构建,包括代码优化级别,链接器标志,调试符号,其他C / C ++标志和所有预处理器宏。
  • 在可用的编译器之间切换:LLVM GCC 4.2和Apple LLVM Compiler 3.0
  • 在构建阶段和构建规则中检查了任何与众不同的内容
  • 删除了“管理方案”窗口中已应用于Debug版本的所有Arguments和Diagnostics。

我不确定构建过程的其他方面是否会以这种方式干扰应用程序,特别是在此时构建设置几乎相同时。有什么想法吗?

更新

我发现该项目使用最新的Xcode测试版没有任何问题。我认为这指向了一个特定于Xcode 4.2.1中包含的Clang版本的问题。由于Apple不允许提交使用Xcode测试版编译的应用程序,我仍然在4.2.1内搜索解决方案。

3 个答案:

答案 0 :(得分:2)

根据Apple开发者论坛收到的反馈意见可能是Clang的问题,我尝试在Xcode 4.2.1中切换回LLVM GCC 4.2。

这次在切换编译器之后,我退出了Xcode并删除了〜/ Library / Developer / Xcode / DerivedData中的所有文件,以确保没有留下中间体。

从那时起,该应用程序在iOS 4.2.1上的发布模式下正常工作。

答案 1 :(得分:1)

这意味着您的应用无法支持armv6架构。除了armv7之外,确保所有库都支持armv6。视觉问题的确切性质可能指向特定的库。

答案 2 :(得分:0)

我遇到了同样的问题,并且不想切换回GCC(这确实消除了问题)。经过一些进一步的研究,我发现了这个解决方案:https://stackoverflow.com/a/8391405/1273518这对我来说非常有效!