Я просто отлично провел субботний день в поисках решения той же проблемы. Это проблема подписи кода.
Вот что я использовал Xcode4 и iOS 4.3 SDK . Я собирал на тестовом устройстве iphone 3G под iOS 3.1.2 (взломан)
ПРИМЕЧАНИЕ : метод ldid не работал для меня и продолжал выдавать следующую ошибку ( Некоторые подробности о том, почему он не работает Я пытался использовать архитектуру armv6 через xcode4, но ldid все еще давал та же ошибка):
codesign_allocate: object: MyAppName.app/MyAppName malformed object (unknown load command 4)
util/ldid.cpp(582): _assert(0:WEXITSTATUS(status) == 0)
Вот что у меня сработало:
Шаг 1. Создайте самоподписанный сертификат .
1 - Запустить связку ключей Access.app. Если элементы не выбраны, в меню «Связка ключей» выберите «Ассистент сертификата», а затем «Создать сертификат».
Имя: iPhone Developer
Тип сертификата: Кодовая подпись
Позвольте мне изменить значения по умолчанию: Да
2- Нажмите Продолжить
Срок действия: 3650 дней
3- Нажмите Продолжить
4- Очистить поле адреса электронной почты.
5- Нажмите Продолжить до завершения.
Вы должны увидеть «Этот корневой сертификат не является доверенным». Это ожидается.
через (примечание: вам не нужно быть участником программы iphone dev, чтобы сделать эту работу, даже если название принятого ответа в ссылке может указывать на это)
Шаг 2. Установите xCode, чтобы разрешить использование самозаверяющего сертификата
Вы должны отредактировать файл Info.plist в /Developer/Platforms/iPhoneOS.platform/Info.plist
(я установил xcode в другом месте, чтобы путь для меня был xcode4 / Platforms / iPhoneOS.platform / Info.plist)
1 - Вы не сможете редактировать файл в его текущем местоположении, поэтому просто скопируйте его на рабочий стол и откройте в текстовом редакторе.
2 - Необходимо заменить весь экземпляр XCiPhoneOSCodeSignContext на XCCodeSignContext и сохранить файл.
3 - Затем перетащите отредактированный файл обратно в папку iPhoneOS.platform и замените старый файл. (Убедитесь, что xcode не запущен, если он есть, затем перезапустите его)
Шаг 3. Измените настройку идентификации подписи кода в вашем проекте
Измените идентификатор подписи кода для вашего проекта и вашей цели на iPhone Developer
1- В xcode4 вы должны выбрать свой проект (из левой панели навигатора) -> выберите свой проект из центра в разделе (ПРОЕКТЫ) -> Настройки сборки -> Подписание кода (разверните меню) и измените все параметры на iPhone Developer
2- В xcode4 с вашим проектом, выбранным на левой панели в центре экрана, вы увидите ПРОЕКТ и ЦЕЛИ. Теперь выберите цели и сделайте то же самое: Targets -> Build Settings -> Code Signing (разверните меню) и измените все параметры на iPhone Developer
Шаг 4. Сборка приложения и развертывание
1- Убедитесь, что в верхней части xcode рядом с кнопками запуска и останова в разделе Схема у вас выбрано Устройство iOS (имя вашего устройства) и НЕ симулятор (это как это делается в xcode4)
2- Откройте меню «Схема» и, выбрав «Схема устройства iOS», нажмите «Изменить схему». Выберите «Выполнить» в левом меню и на вкладке «Информация» установите для параметра «Конфигурация сборки» выпуск
.
3- Теперь убедитесь, что у вас подключено устройство iOS, выбрана его схема и нажмите «Выполнить» (примечание: вы получите несколько предупреждений, но по мере успешной сборки все в порядке)
если все пройдет хорошо, вы сможете увидеть YourApp.app в папке «Продукты» на левой стороне, затем выберите YourApp.app, откройте его в Finder. Ваше приложение должно находиться в папке с именем Release-iphoneos . Скопируйте его в каталог / Applications на вашем устройстве iOS и Respring или UICache, чтобы оно появилось. (примечание: вам не нужно использовать ldid сейчас)
Надеюсь, ваше приложение запустится нормально. Я только пробовал это с xcode4, поэтому не уверен, что он будет работать для более старых версий.