Как я могу развернуть приложение iPhone из Xcode на реальном устройстве iPhone? - PullRequest
155 голосов
/ 29 октября 2008

Как я могу развернуть приложение iPhone с XCode на реальное устройство iPhone, не имея сертификата Apple за 99 долларов США?

Ответы [ 12 ]

91 голосов
/ 15 ноября 2010

Я использовал смесь из двух Howto: Jason's и alex's . Со вторым у нас есть преимущество возможности отладки. Я в основном просто скопирую оба ниже (и упросту Алекс):

Обновление от января 2012 года: это все еще работает на SDK 4.2.1 и iOS 5.0.1 - я только что проверил все это на новом компьютере и устройстве!


1. Создать самоподписанный сертификат

Обновите свой iPhone SDK, чтобы разрешить использование этого сертификата:

  1. Запустить связку ключей Access.app. Если элементы не выбраны, в меню «Связка ключей» выберите «Ассистент сертификатов», затем «Создать сертификат».

    • Имя: Разработчик iPhone
    • Тип сертификата: Кодовое обозначение
    • Позвольте мне изменить настройки по умолчанию: Да
  2. Нажмите Продолжить

    • Срок действия: 3650 дней
  3. Нажмите Продолжить

  4. Пробел Электронная почта поле адреса.

  5. Нажмите Продолжить до завершения .

    Вы должны увидеть «Этот корневой сертификат не является доверенным» . Это ожидается.

  6. Установите в iPhone SDK разрешение на использование самозаверяющего сертификата:

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
    

    Если у вас открыт Xcode, перезапустите его, чтобы изменения вступили в силу.

А если вы на iOS 5, то все! Попробуй это сейчас! Это может не разрешить отладку, но приложение будет там!

Я был очень удивлен этим, потому что, как вы должны знать , я понятия не имею, о чем все эти взломы! Все, что я сделал, немного улучшило то, что я нашел в другом месте, как я указал.

Так что да, весь метод больше не работает так же, и я не мог найти новый ... За исключением этого, который использует инструмент под названием Theos , но я не смог пройти весь процесс.

Наконец, если вам нужно удалить его по какой-либо причине, проверьте конец этого поста. В моем случае мне пришлось это сделать, потому что я не мог понять, почему весь этот метод перестал работать, и мне было все равно, так как мы уже получили долгожданную лицензию. (Сумасшедший номер DUNS занимает столько времени ...)

.

.


.

.

.

2. Разрешить Xcode для сборки на взломанном устройстве

  1. На ваш взломанный iPhone установите приложение AppSync , добавив источник ** http://repo.hackyouriphone.org**

  2. Удалите требования SDK для знака кода и прав (я люблю sed !):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
    
  3. Обратите внимание на часть 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
    
  4. Завершить требование об удалении через исправление 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, перезапустите его, чтобы изменения (и последние) вступили в силу.

  5. Открыть «Проект> Редактировать настройки проекта» (из меню). Нажмите на вкладку "Build" . Найдите «Идентификатор подписи кода» и его дочерний элемент «Любое устройство iPhoneOS» в списке и задайте для обеих записей «Не кодировать знак»

    alt text

    После этого не стесняйтесь отменить шаг 3. По крайней мере, в моем случае все прошло хорошо.

  6. Установка кода 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
56 голосов
/ 31 октября 2008

Похоже, приложение не подписано. Загрузите ldid с Cydia, а затем используйте его так: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

Также убедитесь, что двоичный файл помечен как исполняемый: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph

42 голосов
/ 26 ноября 2015

Бесплатная инициализация после Xcode 7

Чтобы протестировать свое приложение на реальном устройстве, а не платить Apple Developer (или сделать джейлбрейк своего устройства), вы можете использовать новую бесплатную инициализацию, поддерживаемую Xcode 7 и iOS 9.

Вот шаги, более или менее взятые из документации (что очень хорошо, так что прочитайте ее):

1. Добавьте свой Apple ID в Xcode

Перейдите в XCode> Настройки> вкладка Аккаунты> Кнопка добавления (+)> Добавить Apple ID. См. документы для получения дополнительной помощи.

enter image description here

2. Перейдите на вкладку «Общие» в Навигаторе проекта

enter image description here

3. Выберите свой Apple ID из всплывающего меню «Команда».

enter image description here

4. Подключите свое устройство и выберите его в меню схемы.

enter image description here

5. Нажмите кнопку «Исправить проблемы»

enter image description here

Если вы получили сообщение о том, что имя пакета неверно, измените его на что-то уникальное.

6. Запустите ваше приложение

В Xcode нажмите кнопку Build and run.

enter image description here

7. Доверьтесь разработчику приложения в настройках устройства

После запуска вашего приложения вы получите ошибку безопасности, потому что приложение, которое вы хотите запустить, не из App Store.

enter image description here

На вашем устройстве перейдите в «Настройки»> «Основные»> «Профиль»> ваше-Apple-ID-имя > Доверие ваше-Apple-ID-имя > Trust.

8. Запустите приложение на своем устройстве снова.

Вот и все. Теперь вы можете запускать свои собственные (или любые другие приложения, для которых у вас есть исходный код) без необходимости тратить 99 долларов. Спасибо, Apple, за то, что наконец позволил это.

9 голосов
/ 30 октября 2008

Вы не можете, если вы говорите о приложениях, созданных с использованием официального SDK и развертываемых прямо из xcode.

8 голосов
/ 29 октября 2008

Вам придется сделать джейлбрейк вашего устройства.

6 голосов
/ 11 сентября 2010

Существует способ развертывания приложений для iPhone, не платя Apple Вам придется сделать джейлбрейк вашего устройства и следовать инструкциям в http://www.alexwhittemore.com/?p=398

5 голосов
/ 14 ноября 2009

Ничто из того, что я видел нигде, не указывает на возможность специального развертывания на реальном iPhone без (платного) сертификата.

4 голосов
/ 08 февраля 2011

Прошлой ночью я проходил через Apple Developer и там в сертификате обеспечения я обнаружил что-то вроде - «Подписывание членов команды». Я думаю, что есть способ добавить членов команды в платный профиль. Вы можете просто попросить владельца идентификатора приложения (платного) добавить вас в качестве члена команды. Я не уверен. Все еще ищу это.

3 голосов
/ 15 мая 2009

Нет, это легко сделать. В XCode установите Активную Конфигурацию к Выпуску. Измените устройство с Симулятора на Устройство - независимо от SDK. Если вы хотите напрямую экспортировать на свой iPhone, подключите его к компьютеру. Нажмите Build и Go. Если ваш iPhone не подключен к компьютеру, появится сообщение о том, что ваш iPhone не подключен.

Если это относится к вам: (iPhone не был подключен)

Перейдите в папку ваших проектов, а затем в папку сборки внутри. Перейдите в папку Release-iphoneos и возьмите приложение внутрь, перетащите на значок iTunes. Когда вы синхронизируете ваше устройство iTouch, оно скопирует его на ваше устройство. Он также будет отображаться в iTunes как приложение для iPhone.

Надеюсь, это поможет!

PS: Если он говорит о том, что сертификат недействителен, просто нажмите на проект в Xcode, маленький значок проекта в стеке файлов слева и нажмите Apple + I, или выполните команду «Получить информацию» из строки меню. , Нажмите на Build наверху. В разделе «Подписывание кода» измените идентификацию подписи кода - любое устройство iPhone OS должно быть не подписанным.

2 голосов
/ 22 мая 2011

Решение, опубликованное Cawas, прекрасно работает и с XCode4. Однако в пользовательском интерфейсе IDE есть некоторые изменения, поэтому вам нужно провести некоторое исследование, чтобы найти Run Script:)

В представлении Project Navigator щелкните корневой элемент проекта, затем в среднем окне выберите Target, затем перейдите на вкладку Build Phases и в нижней части вы увидите кнопку Add Build Phase, нажмите и выберите Add Run Script, затем вставить скрипт "codesign", опубликованный Cawas.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...