2011-11-10 102 views
3

我已经提交了一个iPhone应用6次,并且在最后/当前版本的要求中,iPhone 3G不再被支持。支持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. “新事物”是我改变了我的苹果账户:我提交了我的应用程序使用其他帐户。 也许有些选项我没有看到。


编辑:我忘了一部分,也许重要: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. 基本SDK设置iOS的部署目标与最小值

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

  1. 删除到的info.plist参数“所需的设备能力”(ARMv6的和ARMv7)
  2. 添加SystemConfiguration.framework作为可选(做一个薄弱环节)

有了这个设置,我的应用程序崩溃:“使dyld:找不到符号:__NSConcreteGlobalBlock”
所以我还要补充的标志“其他链接器标记” - weak_library /usr/lib/libSystem.B.dylib

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

+0

你解决了吗? – tipycalFlow

回答

2

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

您可能还需要在“生成设置”中的“其他C标志”下添加“-mno-thumb”,但是如果我的内存正确地服务了我,那可能只有在您想要使用自动引用计数旧的架构 - 甚至只是因为这是针对已知错误的解决方法。

+0

我发现了这个问题;这不是我的XCode或其他版本: 1.参数“必需的设备功能”(在plist文件中)必须删除。在其他项目中,我没有这个参数。 2.库SystemConfiguration.framework不起作用:我需要重写网络状态的检测。 – user1039584

+0

该框架的唯一不适用于iOS 3.x的方法是SCNetworkReachabilitySetDispatcQueue,因为Grand Central Dispatch是在iOS 4.0中引入的。换句话说,你基本上重构了你的应用程序,并且包含了该版本iOS中不支持的东西,但没有告诉我们。 –

+0

我的问题与库SystemConfiguration.framework是线程并发:CFRunLoopGetCurrent与CFRunLoopGetMain。有了这个问题和参数“必需的设备功能”,我无法用我的iPhone 3G进行调试:非常奇怪。所以,当你提交一个应用时,这是苹果的限制。所以问题是:我失去了所有我提交的应用程序对iphone 3G的支持,或者仅仅是对于使用iOS sdk 5构建的应用程序的支持? – user1039584