支持iPhone 3G

时间:2011-11-10 10:58:51

标签: iphone-3gs ios-3.x itunes-app

我已经提交了一个iPhone应用程序6次,并且在上一个/当前版本的要求中,不再支持iPhone 3G。

我的问题:为什么我会失去这个模型?

我有一些评论:

  1. 现在,应用程序不再支持iPhone 3G了。 我做了一些搜索,但没有找到任何关于它的消息。

  2. 在我提交此版本之前,我将XCode从版本4.0.2(iOS SDK 4.3)更新为版本4.2(iOS SDK 5)。
    也许在提交过程中,“Apple”检查了二进制文件,以便检查我的工具版本(我用它构建了我的应用程序)。 由于iOS 5无法安装在iPhone 3G上,我已经失去了这种支持。

  3. 我拥有iPhone 3G以进行兼容性测试 使用XCode 4.2,我无法使用iPhone 3G调试我的应用程序。 但是,我找到了解决方案:添加架构armv6是不够的我需要放置一些弱链接。

    如果我使用这些选项“特殊3G”提交我的应用程序,是否会考虑这些选项并且支持将会回来?

    (见编辑)

  4. “最新消息”是我更改了Apple帐户:我使用其他帐户提交了我的应用程序。 也许某些地方有一些我没看到的选择。


  5. 编辑:我忘了一个可能很重要的部分:iOS的版本。

    运行我的应用程序的iOS的最低版本是iOS 3.1。 我的iPhone 3G在iOS 3.X上运行

    我在XCode 4.2和iPhone 3G上遇到的所有麻烦似乎都是iOS(3.X)的版本。

    也许我的应用程序失去了iPhone 3G的支持,以确保iOS SDK 5和iOS 3.X没有问题

    但是,有些用户在iOS 3.X上运行iPhone 3GS。

    我在iOS 4.0上运行了一个iPhone 3GS进行了一些测试:我没有任何问题,也没有选项可以添加到我的项目设置中。


    感谢您的回答。问题可能是我的XCode版本。

    就像我说的,我已经添加了架构armv6。但是使用我的iPhone 3G iOS 3.X,这还不够。

    您是否仅使用一部iPhone 3G测试此设置是否成功?

    我应该这样做:

    1. 添加架构arm6
    2. 使用“最新iOS”(iOS 5.0)
    3. 设置Base SDK
    4. 使用最小值
    5. 设置iOS部署目标

      ---这是你的建议----

      1. 将参数“必需的设备功能”(armv6和armv7)移入info.plist
      2. 将SystemConfiguration.framework添加为Optional(以建立弱链接)
      3. 使用此设置,我的应用程序崩溃:“dyld:找不到符号:__ NSConcreteGlobalBlock”
        所以我还应该添加标志“Other Linker Flags”, - weak_library /usr/lib/libSystem.B.dylib

        这是我的一个问题:
        如果我使用这些选项“特殊3G”提交我的应用程序,是否会考虑这些选项并且支持将会回来?

1 个答案:

答案 0 :(得分:2)

默认情况下,Xcode 4.2不包含对iPhone 3G的支持,但您可以将其添加回来。只需选择您的应用目标,然后选择“构建设置”。在顶部,将列出的标准从“标准(armv7)”更改为“其他”。在弹出框中,选择现有选项并单击减号按钮,然后单击加号按钮并添加“armv7”,然后再次单击加号并添加“armv6”。 armv7将支持更新的芯片,而armv6将重新支持iPhone 3G ...提供你将iOS部署目标设置为iOS 4.2或更早版本...你在3.x的设置应该很好 - 这只是限制你显然没有使用iOS的新功能。

你可能还需要在Build Settings中的“Other C Flags”下添加“-mno-thumb”,不过如果我的内存正确地为我服务,那可能只是在你想要使用旧的自动引用计数时架构 - 甚至只是因为这是一个已知错误的解决办法。