支持iPhone 3G

发布于 2024-12-14 16:14:51 字数 1581 浏览 1 评论 0原文

我已经提交了一个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 帐户:我使用另一个帐户提交了我的应用程序。 也许有一些选项我没有看到。


编辑:我忘记了一个可能很重要的部分: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 没有问题

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

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


感谢您的回答。问题可能出在我的XCode版本上。

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

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

我应该这样做:

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

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

  1. 将参数“删除到info.plist”所需的设备功能”(armv6 和 armv7)
  2. 将 SystemConfiguration.framework 添加为可选(以建立弱链接)

使用此设置,我的应用程序崩溃:“dyld:未找到符号: __NSConcreteGlobalBlock”
所以我还应该添加标志“其他链接器标志”,-weak_library /usr/lib/libSystem.B.dylib

这是我的问题之一:
如果我提交带有“特殊 3G”这些选项的应用程序,是否会考虑这些选项并恢复支持?

I have submitted one iPhone app 6 times, and in the requirement of the last/ current version, iPhone 3G is not supported anymore.

My question: Why do I lose this model?

I have some remarks:

  1. Now, apps don't support the iPhone 3G anymore.
    I made some searches, and I didn't find any news about it.

  2. Before I submitted this version, I updated my XCode from version 4.0.2 (iOS SDK 4.3) to version 4.2 (iOS SDK 5).
    Maybe during the submission, "Apple" checked the binary in order to check the version of my tools (which I built my app with).
    And as the iOS 5 cannot be installed on iPhone 3G, I have lost this support.

  3. I own an iPhone 3G in order to make compatibility tests.
    And with XCode 4.2, I had trouble to debug my App with my iPhone 3G.
    But, i found the solution: Add the architecture armv6 is not enough I need to put some weak links.

    If I submit my app with these options "special 3G", will these options be take into account and the support will be back?

    (see the edit)

  4. "What's new" is I changed my Apple Account: I submitted my app with another account.
    Maybe there are some options somewhere that I didn't see.


Edit: I forget a part maybe important: the version of iOS.

The minimum version of iOS for running my app is iOS 3.1.
And my iPhone 3G runs on iOS 3.X

And all troubles I had with XCode 4.2 and my iPhone 3G seem to be the version of iOS (3.X).

Maybe my app lost the support of iPhone 3G to be sure there is no problem with iOS SDK 5 and iOS 3.X

But, there are users with an iPhone 3GS running on iOS 3.X.

I made some tests with one iPhone 3GS running on iOS 4.0: I had no issues and no options to add in my project settings.


Thanks for your answer. The problem may be the version of my XCode.

Like I said, I have already added the architecture armv6. But with my iPhone 3G iOS 3.X, this is not enough.

Did you test only this setting with one iPhone 3G with success?

I should do:

  1. Add the architecture arm6
  2. Set the Base SDK with "Latest iOS" (iOS 5.0)
  3. Set the iOS Deployment Target with the minimum value

--- It's what you advice ----

  1. Remove into the info.plist the parameter "Required device capabilities" (armv6 and armv7)
  2. Add SystemConfiguration.framework as Optional (to make a weak link)

With this settings, my app crashes: "dyld: Symbol not found: __NSConcreteGlobalBlock"
So I should also add in the flag "Other Linker Flags", - weak_library /usr/lib/libSystem.B.dylib

This is one of my questions:
If I submit my app with these options "special 3G", will these options be take into account and the support will be back?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高速公鹿 2024-12-21 16:14:53

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

您可能还需要在构建设置中的“其他 C 标志”下添加“-mno-thumb”,但如果我没记错的话,可能只有当您想在旧架构上使用自动引用计数时才需要添加“-mno-thumb”,并且即便如此,只是因为这是针对已知错误的解决方法。

By default, Xcode 4.2 does not include support for the iPhone 3G, but you can add it back. Just select your app target and select "Build Settings". At the top, change the Architectures listed from "Standard (armv7)" to "Other". In the pop-up box, select the existing option and click the minus button, then click the plus button and add "armv7", then again click plus and add "armv6". armv7 will support the newer chips, while armv6 will add back in support for the iPhone 3G... providing you set your iOS Deployment Target to iOS 4.2 or earlier... your setting at 3.x should be just fine—that merely limits you to not using newer features of iOS obviously.

You may also need to add "-mno-thumb" under "Other C Flags" in the Build Settings, though if my memory serves me correctly that may only have been if you are wanting to use Automatic Reference Counting on the old architecture—and even then only because this is a work-around for a known bug.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文