Как я могу развернуть приложение iPhone из XCode на реальном устройстве iPhone?
Как я могу развернуть приложение iPhone из XCode на реальном устройстве iPhone, не имея сертификата Apple за 99 долларов США?
12 ответов
Похоже, приложение не подписано. Скачайте ldid с Cydia и используйте его так: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Также убедитесь, что бинарный файл помечен как исполняемый: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Я использовал смесь из двух инструкций: Джейсона и Алекса. Со вторым у нас есть преимущество возможности отладки. Я в основном просто скопирую оба ниже (и упросту Алекс):
Обновление январь 2012: это все еще работает на SDK 4.2.1 и iOS 5.0.1 - я только что проверил все это на новом компьютере и устройстве!
1. Создайте самоподписанный сертификат
Обновите свой iPhone SDK, чтобы разрешить использование этого сертификата:
Запустите Keychain Access.app. Если элементы не выбраны, в меню "Связка ключей" выберите "Ассистент сертификатов", затем "Создать сертификат".
- Имя: Разработчик iPhone
- Тип сертификата: Кодовая подпись
- Позвольте мне переопределить значения по умолчанию: Да
Нажмите Продолжить
- Срок действия: 3650 дней
Нажмите Продолжить
Очистите поле адреса электронной почты.
Нажмите Продолжить до завершения.
Вы должны увидеть "Этот корневой сертификат не является доверенным". Это ожидается.
Настройте iPhone SDK, чтобы разрешить использование самозаверяющего сертификата:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Если у вас открыт Xcode, перезапустите его, чтобы изменения вступили в силу.
И если вы на iOS 5, это все! Попробуй это сейчас! Это может не позволить отладку, но приложение будет там!
Я был очень удивлен этим, потому что, как вы должны знать, я понятия не имею, о чем все эти взломы! Все, что я сделал, немного улучшило то, что я нашел в другом месте, как я указал.
Так что да, весь метод больше не работает так же, и я не мог найти новый... За исключением этого, который использует инструмент под названием Theos, но я не смог пройти весь процесс.
Наконец, если вам нужно удалить его по какой-либо причине, проверьте конец этого поста. В моем случае мне пришлось это сделать, потому что я не мог понять, почему весь этот метод перестал работать, и мне было все равно, так как мы уже получили долгожданную лицензию. (Сумасшедший номер DUNS занимает так много времени...)
,
,
,
,
,
2. Включите Xcode для сборки на взломанном устройстве
На своем взломанном iPhone установите приложение AppSync, добавив источник ** http://repo.hackyouriphone.org/ **
Удалите требования SDK для знака кода и прав (я люблю sed!):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Обратите внимание на
iPhoneOS5.0.sdk
часть. Если вы, например, используете iOS 4.2 SDK, просто замените его соответствующим образом:sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Завершите требование удаления через исправление Xcode. Это означает двоичное редактирование:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf "\xc3\x26\x00\x00" >> working /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support
Если у вас открыт Xcode, перезапустите его, чтобы изменения (и последние) вступили в силу.
Откройте "Проект> Изменить настройки проекта" (из меню). Нажмите на вкладку "Сборка". Найдите "Идентификатор подписи кода" и его дочернее "Любое устройство iPhoneOS" в списке и задайте для обеих записей "Не подписывать код":
После этого не стесняйтесь отменить шаг 3. По крайней мере, в моем случае все прошло хорошо.
Настройка XCode для подписи кода с нашим изготовленным на заказ самозаверяющим сертификатом (первое практическое руководство). Этот шаг, вероятно, можно пропустить, если вы не хотите иметь возможность отладки:
mkdir /Developer/iphoneentitlements401 cd /Developer/iphoneentitlements401 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py
Подключите свой iPhone и откройте Xcode. Откройте Окно> Органайзер. Выберите устройство из списка слева и нажмите "Использовать для разработки". Вам будет предложено ввести логин на сайте инициализации, нажмите "Отмена". Это делается для того, чтобы облегчить законную инициализацию, но не делает нелегитимную неработоспособность более сложной.
Теперь вы должны выполнить эту последнюю часть для каждого нового проекта, который вы делаете. Перейдите в меню "Проект"> "Новый этап сборки"> "Новый этап запуска сценария сборки". В окне скопируйте / вставьте это:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ]; then /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" fi
,
,
,
,
Удаление
Для 1-й части:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Для 2-й части:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
если вы сделали шаг 3 вместо 2, просто измените его соответствующим образом:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
в остальном, просто возвращаю то, что вы сделали на XCode, и удаляю /Developer/iphoneentitlements401/gen_entitlements.py
если ты хочешь:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
Бесплатная инициализация после Xcode 7
Чтобы протестировать свое приложение на реальном устройстве, а не платить Apple Developer (или сделать джейлбрейк своего устройства), вы можете использовать новую бесплатную инициализацию, поддерживаемую Xcode 7 и iOS 9.
Вот шаги, предпринятые более или менее из документации (что очень хорошо, так что прочитайте ее):
1. Добавьте свой Apple ID в Xcode
Перейдите в XCode > "Настройки"> "Аккаунты"> "Добавить" (+) > Добавить Apple ID. Смотрите документы для получения дополнительной помощи.
2. Откройте вкладку "Общие" в Навигаторе проекта.
3. Выберите свой Apple ID из всплывающего меню "Команда".
4. Подключите свое устройство и выберите его в меню схемы.
5. Нажмите кнопку Исправить проблемы
Если вы получили ошибку о том, что имя пакета неверно, измените его на что-то уникальное.
6. Запустите ваше приложение
В Xcode, нажмите кнопку Build and run.
7. Доверьтесь разработчику приложения в настройках устройства
После запуска приложения вы получите ошибку безопасности, потому что приложение, которое вы хотите запустить, не из App Store.
На устройстве перейдите в "Настройки"> "Основные"> "Профиль"> " ваше-Apple-ID-имя" > "Доверяйте своему-Apple-ID-имени" > "Доверять".
8. Запустите приложение на своем устройстве снова.
Вот и все. Теперь вы можете запускать свои собственные (или любые другие приложения, для которых у вас есть исходный код) без необходимости тратить 99 долларов. Спасибо, Apple, за то, что наконец позволил это.
Вы не можете, если вы говорите о приложениях, созданных с использованием официального SDK и развертываемых прямо из xcode.
Существует способ развертывания приложений iPhone без оплаты Apple. Вам придется сделать джейлбрейк своего устройства и следовать инструкциям на http://www.alexwhittemore.com/?p=398
Ничто из того, что я видел, не указывает на то, что вы можете выполнить специальное развертывание на реальном iPhone без (платного) сертификата.
Вчера вечером я проходил через Apple Developer и там в сертификате обеспечения я обнаружил что-то вроде - "Подписывание членов команды". Я думаю, что есть способ добавить членов команды в платный профиль. Вы можете просто попросить владельца идентификатора приложения (платного) добавить вас в качестве члена команды. Я не уверен. Все еще ищу это.
Нет, это легко сделать. В XCode установите Активную Конфигурацию к Выпуску. Измените устройство с Симулятора на Устройство - независимо от SDK. Если вы хотите напрямую экспортировать на свой iPhone, подключите его к компьютеру. Нажмите Build и Go. Если ваш iPhone не подключен к компьютеру, появится сообщение о том, что ваш iPhone не подключен.
Если это относится к вам: (iPhone не был подключен)
Перейдите в папку ваших проектов, а затем в папку сборки внутри. Перейдите в папку Release-iphoneos и возьмите приложение внутрь, перетащите на значок iTunes. Когда вы синхронизируете ваше устройство iTouch, оно скопирует его на ваше устройство. Он также будет отображаться в iTunes как приложение для iPhone.
Надеюсь это поможет!
PS: Если он говорит что-то о том, что сертификат недействителен, просто нажмите на проект в Xcode, маленький значок проекта в стеке файлов слева и нажмите Apple+I, или выполните команду "Получить информацию" в строке меню. Нажмите на Build наверху. В разделе "Подписывание кода" измените Идентификацию подписи кода - любое устройство iPhone OS должно быть не подписанным.
Это действительно все зависит от того, какую версию XCode вы используете, поскольку разные версии используют разные методы для развертывания на вашем iPhone без профиля обеспечения.
Xcode 3.2.1 - хорошая версия, и ее легко разобрать, но нам нужно знать, какую версию вы используете.
Решение, опубликованное Cawas, прекрасно работает и с XCode4. Однако в пользовательском интерфейсе IDE есть некоторые изменения, поэтому вам нужно провести некоторое исследование, чтобы найти Run Script:)
В представлении Project Navigator щелкните корневой элемент проекта, затем в среднем окне выберите "Target", затем перейдите на вкладку "Build Phases" и в нижней части вы увидите кнопку "Add Build Phase", нажмите и выберите Add Run Script, затем вставьте "codeign" "скрипт размещен Cawas.
Обходного пути нет. Развернуть приложения можно только в том случае, если они зарегистрированы на вашем устройстве. Это мешает вам создать свой собственный магазин приложений.