Поддержка iPhone 3G - PullRequest
       49

Поддержка iPhone 3G

3 голосов
/ 10 ноября 2011

Я отправил одно приложение для 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.

Я провел несколько тестов с одним iPhone 3GS, работающим на iOS 4.0: у меня не было проблем и вариантов для добавления в настройки проекта.


Спасибо за ваш ответ. Проблема может быть в версии моего XCode.

Как я уже сказал, я уже добавил архитектуру armv6. Но с моим iPhone 3G iOS 3.X этого недостаточно.

Вы успешно протестировали только этот параметр на одном iPhone 3G?

Я должен сделать:

  1. Добавить архитектуру arm6
  2. Установить базовый SDK с помощью «Последняя версия iOS» (iOS 5.0)
  3. Установите целевой показатель развертывания iOS с минимальным значением

--- Это то, что вы советуете ----

  1. Удалите в info.plist параметр «Необходимые возможности устройства» (armv6 и armv7)
  2. Добавить SystemConfiguration.framework в качестве необязательного (для создания слабой ссылки)

С этими настройками мое приложение вылетает: "dyld: Символ не найден: __NSConcreteGlobalBlock"
Поэтому я должен также добавить в флаг "Другие флаги компоновщика", - weak_library /usr/lib/libSystem.B.dylib

Это один из моих вопросов:
Если я отправлю свое приложение с этими опциями «специальный 3G», будут ли эти опции учтены, и поддержка вернется?

1 Ответ

2 голосов
/ 11 ноября 2011

По умолчанию Xcode 4.2 не включает поддержку iPhone 3G, но вы можете добавить его обратно. Просто выберите цель вашего приложения и выберите «Настройки сборки». Вверху измените перечисленные Архитектуры со «Стандарт (armv7)» на «Другие». Во всплывающем окне выберите существующий параметр и нажмите кнопку «минус», затем нажмите кнопку «плюс» и добавьте «armv7», затем снова нажмите «плюс» и добавьте «armv6». armv7 будет поддерживать новые чипы, в то время как armv6 добавит поддержку iPhone 3G ... при условии, что вы установите iOS Deployment Target на iOS 4.2 или более раннюю версию ... ваша настройка на 3.x должна быть просто отличной - это просто ограничивает Вы, очевидно, не используете новые функции iOS.

Возможно, вам также понадобится добавить «-mno-thumb» в разделе «Другие флаги C» в настройках сборки, хотя, если моя память мне не изменяет, это могло произойти, только если вы хотите использовать автоматический подсчет ссылок на старом архитектура - и даже тогда только потому, что это обходной путь для известной ошибки.

...