【问题标题】:iOS app has changed behaviour after made available on appStoreiOS 应用在 appStore 上可用后改变了行为
【发布时间】:2012-04-07 20:31:05
【问题描述】:

我已经使用基本 SDK ios 5.0 创建了一个针对 ios 4.1 的应用程序,并使用 3G(ios 4.3.3) 3GS(5.1) 3GS(5.0) iPad(5.1) 对其进行了测试。我的应用在所有这些设备上都表现良好。但是,当苹果最终接受该应用程序并且我已将其下载到相同的设备上时,行为发生了变化。问题是显示的页面过大,但如果我移动它们,它们会正确开始适合屏幕。 当应用发布后改变其行为时,你们有没有遇到过类似的情况?

最重要的是。当在真实设备上从 mac 运行的同一个应用程序表现出色时,我该如何重现此错误? 我可能会补充说,基本 SDK 设置为最新(5.0),但应用程序是使用不支持 ios 5.1 的 XCode 4.2 存档的。

请善待我,这是我的第一个问题 :)

编辑: 在 hotpaw 的有用提示之后,我检查了问题是发布版本。在运行配置中更改目标后,我可以在设备上重现该错误。从调试到发布。

有趣和令人沮丧的是,我无法解决这个问题,但是,我已经在 xcode 4.3 上以发布模式测试了我的应用程序,它运行良好。我没有改变任何东西,但它有效。它无法打包构建(见问题Xcode 4.3.1 - Packaging operation failed),所以我坚持使用 xcode 4.2

有一段时间我怀疑这个错误是由编译器在为 thumb 编译时引起的,解决方案是将 -mno-thumb 添加到其他 c 标志。但是我没有强制使用该标志。见:iOS5 Xcode4.2 floating-point byte align error?

当我比较编译日志时,我可以看到 xcode 4.3 使用 -arch armv6 编译,而 xcode 4.2 使用 -arch armv6 编译。但它与我连接到计算机的设备相同。我没有发现其他差异,但它们可能存在。如果有帮助,我可以粘贴示例文件的编译日志。

【问题讨论】:

    标签: iphone ios app-store three20


    【解决方案1】:

    如果您只测试 Debug Builds,然后将 Release Build 提交到 App Store,就会发生这种情况。对于最终测试,您需要强制 Xcode 使用 Release 构建进行测试(可能通过编辑默认方案),然后提交此构建,除了代码签名之外,绝对不更改构建设置。

    您可能还希望通过 iTunes 在全新重置的设备上通过 Ad Hoc 安装对您的 Release 构建进行最终测试,该设备之前的所有应用构建都已从中删除。见Apple's directions for doing this

    【讨论】:

      【解决方案2】:

      问题出在错误的编译器上!

      将 -mno-thumb 应用于我的项目后,我没有注意到差异,因为我使用的库 (Three20) 设置为仅针对导致问题的 armv6 而不是我的项目进行编译。在 Three20 的所有项目中添加 -mno-thumb 后,这个 bug 就消失了!

      我会就这个问题通知 Three20 团队。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-11
        • 1970-01-01
        • 2016-10-29
        相关资源
        最近更新 更多