Содержание
Тестируем iOS приложения без Apple Developer Program Membership / Хабр
mefikru
Objective C *Xcode *
Мне было интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не очень то и хотелось. Не отчаивайтесь, для таких как мы есть способы и запустить приложение и отладить его на целевом устройстве.
После курения доков и разного рода экспериментов у меня получилось. К счастью однажды я сохранил туториал с одной странички, но откуда, уже вряд ли найду, поэтому это можно считать переводом. Ну и плюс дополнил от себя.
Итак, версии софта, которые я использовал:
- OS X Mavericks 10.9.2
- Xcode 5.1.1
- iOS 6.1.2 iPhone 4
- iOS 7.0. iPad mini
Итак, что же потребуется для «любознательности»? Всего то:
- Заджейлить наше iOS устройство
- Подготовить iOS к установке само-подписанных приложений
- Подсоединить iOS к Xcode и настроить девайс для разработки
- Создать свой сертификат
- Настроить Xcode для использования само-подписанного сертификата
- Настроить Xcode для отладки на целевом устройстве
Джейлим iOS
Тут в общем всё просто. На данный момент прошивка, поддающаяся взлому 7.0.6. Все остальное можно почерпнуть с сайта evasi0n.
Если нет взломанного устройства — то закрываем данный туториал и платим 99USD Apple.
Подготавливаем наше iOS устройство к установке само-подписанных приложений
Довольно известный факт, что того чтобы ставить само-подписанный приложения (суть взломанные) необходимо установить в Cydia так называемый AppSync. Я ставил AppSync из нашенского русского репозитория smolk — http://smolk.myrepospace.com. Насколько я наблюдал за этим репозиторием, Smolk сам пишет/тырит AppSync и выкладывает его одним из первых, поэтому и рекомендую воспользоваться его трудами.
Если же ничего не получилось, то Xcode выдаст примерно следующее:
Подключаем и настраиваем наше iOS устройство к Xcode
- Запускаем Xcode
- Цепляем iOS устройство к USB
- Открываем Organizer (Window\Organizer)
- Выбираем подключенное устройство
- Жмем «Use for development»
- Скорее всего Xcode попытается подключиться к серверу Apple и проверить наличие аккаунта разработчика, если так — жмем Cancel
Всё, наше устройство теперь при подключении всегда будет распознаваться как использующееся для разработки.
Создаем сертификат разработчика
- Запускаем приложение «Keychain Access»
- Меню «Certification Assistant > Create a Certificate»
- На первой страничке заполним данные и жмем «Continue».
- Name: iOS Developer
- Identify Type: Self Signed Root
- Certification Type: Code Signing
- Отмечаем галочку «Let me override defaults»
- Жмем «Continue» для создания сертификата.
- Изменяем «Validity Period» например на 3650 — это 10 лет срока действия, жмем «Continue».
- Оставляем поле «Email address» пустым и жмем «Continue».
- Оставляем значения по умолчанию в полях «Key Size» и «Algorithm», жмем «Continue».
- Жмем «Continue» на всех следующих страницах, пока не появится окошко с кнопкой «Create».
- Жмем «Create» и «Done» соответственно.
Настраиваем Xcode для использования само-подписанного сертификата
- Закрываем Xcode, если он открыт.
- Открываем Terminal
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform # create copy of Info.plist sudo cp -p Info.plist Info.plist.orig # convert to editable xml format sudo plutil -convert xml1 ./Info.plist # replace each occurrence of XCiPhoneOSCodeSignContext with XCCodeSignContext in Info.plist sudo sed -i .bkup 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/g' ./Info.plist
- Открываем Xcode
- Открываем или создаем проект и идем в настройки проекта, в закладку «Build settings». Выбираем в поле «Code Signing Identity» созданный сертификат:
- Около кнопки «Run» выбираем наше подключенное iOS устройство.
- Жмем «Run» и Xcode транслирует исходники в исполняемый файл и загружает его в устройство.
- Далее Xcode показывает нам следующую ошибку:
Так и должно быть, потому что отладчик мы еще не настроили, но само приложение можно уже запускать на устройстве.
Настраиваем Xcode для отладки приложения на целевом устройстве
Компилируем ldid
- Если не стоит GIT, устанавливаем отсюда
- Далее в терминале:
cd ~/Documents git clone git://git. saurik.com/ldid.git cd ldid git clone git://git.saurik.com/minimal.git ./make.sh sudo mkdir /usr/local/bin sudo cp ldid /usr/local/bin
- Создаём файл /usb/local/bin/ldid3.py с содержимым:
#!/usr/bin/env python from sys import argv from subprocess import check_call from os.path import basename, dirname, splitext, join from tempfile import NamedTemporaryFile app = argv[-1] ldid_path = join(dirname(__file__), 'ldid') obj_path = join(app, splitext(basename(app))[0]) if '-gta' not in argv: check_call([ldid_path, '-S', obj_path]) else: with NamedTemporaryFile('w+b', 0) as f: f.write(""" <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>get-task-allow</key> <true/> </dict> </plist> """) f.flush() check_call([ldid_path, '-S' + f.name, obj_path])
- Делаем ldid и ldid3.py запускаемыми:
sudo chmod +x /usr/local/bin/ldid sudo chmod +x /usr/local/bin/ldid3. py
Настраиваем Xcode
- Закрываем Xcode, если он открыт.
- Обновляем файл конфигурации iPhoneCodeSign.xcspec, для этого в терминале:
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications # create a backup copy of iPhoneCodeSign.xcspec sudo cp -p iPhoneCodeSign.xcspec iPhoneCodeSign.xcspec.orig # convert to editable xml format sudo plutil -convert xml1 iPhoneCodeSign.xcspec # replace codesign with /usr/local/bin/ldid3.py sudo sed -i .bkup 's/codesign/\/usr\/local\/bin\/ldid3.py/g' iPhoneCodeSign.xcspec
- Открываем Xcode
- Теперь, чтобы включить отладку, нам необходимо добавить ключик «-gta» в командную строку утилиты codesign, предыдущим шагом мы её заменили на наш ldid3.py
- Собираем приложение и запускаем н целевом iOS устройстве.
Надеюсь данное руководство поможет начинающим программистам iOS просто и незатейливо попробовать свои силы в написании программ для устройств Apple.
Теги:
- apple developer program
- ios without signature
Хабы:
- Objective C
- Xcode
Всего голосов 43: ↑29 и ↓14 +15
Просмотры
51K
Комментарии
34
Maxim Filippov
@mefikru
Пользователь
Комментарии
Комментарии 34
Apple выпустила бета-версию 11 для разработчиков iOS 12 для iPhone « iOS и iPhone :: Гаджеты
- Автор Джейк Петерсон
- Новости бета-версии iOS
Apple выпустила одиннадцатую бета-версию iOS 12 для разработчиков для зарегистрированных тестировщиков программного обеспечения в понедельник, 27 августа, всего через четыре дня после того, как компания неожиданно выпустила как dev beta 10, так и общедоступную бета-версию 8. В последнее время Apple увеличила график выпуска бета-версий. , предлагая небольшие обновления два раза в неделю в преддверии официального дебюта iOS 12 через несколько недель.
Dev beta 11, как и предшествующая версия dev beta 10, кажется незначительным обновлением для разработчиков, добавляющим в основном незначительные исправления ошибок и исправления безопасности. Однако отсутствие в его примечаниях к выпуску является проблемой, которая не позволяет Siri Shortcuts быть доступным с экрана блокировки. Вероятно, этот вопрос был решен.
Кроме того, существует известная ошибка, из-за которой появляется всплывающее окно с предложением обновить бета-версию iOS 12, что предположительно вызвано ошибкой с истечением срока действия бета-версии. В предупреждении будет сказано следующее:
Доступно новое обновление iOS. Пожалуйста, обновитесь с бета-версии iOS 12.
- Обновление: выпущена iOS 12 Dev Beta 12, исправлена ошибка обновления программного обеспечения . Если у вас включено новое «Автоматическое обновление» iOS 12, вы можете позволить обновлению программного обеспечения в одночасье. Однако, чтобы загрузить бета-версию прямо сейчас, запустите приложение «Настройки», выберите «Общие», затем «Обновление программного обеспечения». Нажмите «Загрузить и установить», затем следуйте инструкциям на экране, чтобы загрузить и установить бета-версию 11 для разработчиков.
Решенные проблемы
Согласно примечаниям к выпуску Apple, iOS 12 dev beta 11 не решает никаких проблем из dev beta 10.
Известные проблемы
Все проблемы, перенесенные в dev beta 11, перечислены ниже:
App Store . (42862150) — Обходной путь: в целях тестирования вызовы StoreKit, такие как совершение покупки и восстановление транзакций, будут получать новую квитанцию. Либо выйдите из рабочей учетной записи.
CoreGraphics:
- Различные вызовы CoreGraphics защищены от продолжения с недопустимыми параметрами. В бета-версии iOS 12 эти вызовы теперь могут возвращать NULL или возвращаться раньше. (38344690)
HomeKit:
- Приглашение пользователей iOS 11, у которых есть несколько адресов электронной почты, связанных с их Apple ID, в дом может не завершиться. (41033550) — Обходной путь: отправьте приглашение на другой адрес электронной почты или номер телефона, связанный с Apple ID пользователя iOS 11.
Карты:
- Данные о трафике могут не отображаться. (43254370) — Обходной путь: нажмите кнопку «i», чтобы открыть «Настройки карт», и включите переключатель «Пробки».
MediaPlayer Framework:
- Когда в applicationQueuePlayer выполняется транзакция очереди для изменения позиции песни, очередь возвращается без изменений. (39401344)
Телефон и FaceTime:
- Группа FaceTime была удалена из первоначального выпуска iOS 12 и появится в будущем обновлении программного обеспечения этой осенью.
- В бета-версии iOS 12 эффекты камеры в сообщениях доступны только на iPhone SE и iPhone 6s или новее и недоступны на iPad. Эффекты камеры в FaceTime доступны только на iPhone 7 или новее и недоступны на iPad.
- Вызовы Wi-Fi могут неожиданно завершиться при переходе с Wi-Fi на сотовую связь в сети T-Mobile. (39251828)
Экранное время:
- Время начала и окончания простоя может неожиданно измениться, если оно было настроено до установки iOS 12 бета 9. . (43393555) — Обходной путь: обновите все устройства, связанные с учетной записью iCloud, до iOS 12 beta 9 или более поздней версии и сбросьте время начала и окончания простоя.
- После обновления до iOS 12 beta 7 или более поздней версии родители должны изменить код доступа к экранному времени, чтобы дети не могли выйти из iCloud или изменить системное время. (42879250)
- Статистика «Поднятый телефон» может быть завышена из-за синхронизации данных с других устройств, зарегистрированных в той же учетной записи iCloud. (39917173)
Siri:
- При использовании INUIAddVoiceShortcutButton текст кнопок «Добавить в Siri» и «Добавлено в Siri» не локализован. (43251696) — Обходной путь: чтобы локализовать текст кнопок «Добавить в Siri» и «Добавлено в Siri», включите локализации для этого текста в файлы строк вашего пакета приложения.
- Если установлено несколько приложений для совместного использования, Siri может открыть приложение вместо предоставления ожидаемого времени прибытия или местоположения по запросу. (42324032) — Обходной путь: еще раз спросите Siri о времени прибытия или местоположении.
- Предложения Siri для ярлыков включены на iPhone 6s или новее, iPad Pro, iPad (5-го поколения
или новее), iPad Air 2 и iPad mini 4. (40669231)
UIKit:
- проблемы с systemLayoutSizeFitting(_:) при использовании подкласса UICollectionViewCell, для которого требуется updateConstraints(). (42138227) — Обходной путь: не вызывайте метод setNeedsUpdateConstraints() ячейки, если вам не нужно поддерживать изменения ограничений в реальном времени. Если вам нужно поддерживать изменения ограничений в реальном времени, вызовите updateConstraintsIfNeeded() перед вызовом systemLayoutSizeFitting(_:).
Xcode:
- При использовании сообщений в симуляторе iOS сообщение может не быть доставлено от пользователя A пользователю B. (40916530) — Обходной путь: отправить сообщение от пользователя B пользователю A.
Даже из-за разногласий вокруг ошибочной бета-версии 7 разработчики все согласны с тем, что iOS 12 является невероятным улучшением по сравнению с прошлогодней iOS 11. Общая стабильность и производительность являются ключом к этим похвалам, поскольку пользователи сообщают, что iOS 12 делает iPhone такими же старыми, как 5S. беги лучше, чем когда-либо.
Но пользователям следует ожидать не только повышения производительности. Новая iOS 12 поставляется с некоторыми замечательными функциями. Возможно, лучшей является обновленная система уведомлений, которая доводит уведомления на iOS до того же уровня качества, что и Android. Хотя за эти улучшения в значительной степени отвечает новый механизм группировки, это, безусловно, не единственное изменение, которое заметят пользователи.
Не пропустите: 6 причин, почему уведомления iPhone наконец-то работают в iOS 12
Обеспечьте безопасность соединения без ежемесячного счета . Получите пожизненную подписку на VPN Unlimited для всех ваших устройств, совершив разовую покупку в новом магазине гаджетов, и смотрите Hulu или Netflix без региональных ограничений, повышайте безопасность при просмотре в общедоступных сетях и многое другое.
Купить сейчас (скидка 80 %) >
Другие выгодные предложения:
- Скидка 41 % на домашний анализатор Wi-Fi
- Скидка 98 % на комплект обучения программированию
- Скидка 98 % на учебный курс по бухгалтерскому учету
- Скидка 59 % на редактор фонового видео XSplit VCam
Изображение на обложке: Jake Peterson/Gadget Hacks
Оставьте первый комментарий
- Горячий
- Последние
Как:
iOS 16.2 имеет 18 огромных изменений, о которых вам нужно знать перед обновлением вашего iPhoneКак:
Ваш iPhone может сканировать изображения, чтобы идентифицировать и отображать информацию об искусстве, насекомых, достопримечательностях, растениях и многом другомКак:
26 важных функций и улучшений iPhone в iOS 16.1
Как:
Загрузите и установите iOS 16.2 на свой iPhone, чтобы первыми опробовать новые функцииКак:
Загрузите и установите iPadOS 16.2 на свой iPad прямо сейчасПредупреждение:
Конфиденциальная информация, которую вы затемняете на изображениях, может быть раскрыта с помощью нескольких быстрых правок на вашем iPhoneКак:
Заставьте Siri говорить все, что вы хотите, каждый раз, когда вы подключаете свой iPhone к зарядному устройствуКак:
18 удивительно практичных применений Apple AirTagsКак:
Избавьтесь от часто посещаемых веб-сайтов в Safari на вашем iPhone, iPad или MacКак:
Превратите любой веб-сайт в полноэкранное приложение на вашем iPhoneКак:
Новый инструмент вырезания от Apple волшебным образом изолирует объекты и удаляет фон из изображений на вашем iPhoneКак:
Добавьте неподдерживаемые карты и карты в Apple Wallet для быстрого и удобного доступа на вашем iPhoneКак:
Наберите эти секретные коды, чтобы узнать, не перехватывает ли кто-то звонки и текстовые сообщения на вашем iPhoneКак:
Настройте экран блокировки вашего iPhone с помощью этих 27 потрясающих новых функций на iOS 16Как:
Смотрите пароли для всех сетей Wi-Fi, к которым вы подключили свой iPhoneКак:
Не можете найти приложение на главном экране вашего iPhone? Его значок, вероятно, прячется от васКак:
Сохраняйте резкость ночного видения с помощью скрытого красного экрана iPhoneКак:
Приложение «Файлы» на вашем iPhone стало крутым благодаря последнему обновлению производительностиКак:
Самый простой способ конвертировать видео в GIF на вашем iPhoneКак:
100+ секретных кодов набора номера для вашего iPhoneВсе функции
Как:
iOS 16.2 имеет 18 огромных изменений, о которых вам нужно знать перед обновлением вашего iPhone
Как:
Ваш iPhone может сканировать изображения, чтобы идентифицировать и отображать информацию об искусстве, насекомых, достопримечательностях, растениях и многом другомКак:
26 важных функций и улучшений iPhone в iOS 16.1Как:
Загрузите и установите iOS 16.2 на свой iPhone, чтобы первыми опробовать новые функции
Как:
Загрузите и установите iPadOS 16.2 на свой iPad прямо сейчасПредупреждение:
Конфиденциальная информация, которую вы затемняете на изображениях, может быть раскрыта с помощью нескольких быстрых правок на вашем iPhoneКак:
Заставьте Siri говорить все, что вы хотите, каждый раз, когда вы подключаете свой iPhone к зарядному устройствуКак:
18 удивительно практичных применений Apple AirTagsКак:
Избавьтесь от часто посещаемых веб-сайтов в Safari на вашем iPhone, iPad или MacКак:
Превратите любой веб-сайт в полноэкранное приложение на вашем iPhoneКак:
Новый инструмент вырезания от Apple волшебным образом изолирует объекты и удаляет фон из изображений на вашем iPhoneКак:
Добавьте неподдерживаемые карты и карты в Apple Wallet для быстрого и удобного доступа на вашем iPhoneКак:
Наберите эти секретные коды, чтобы узнать, не перехватывает ли кто-то звонки и текстовые сообщения на вашем iPhoneКак:
Настройте экран блокировки вашего iPhone с помощью этих 27 потрясающих новых функций на iOS 16Как:
Смотрите пароли для всех сетей Wi-Fi, к которым вы подключили свой iPhoneКак:
Не можете найти приложение на главном экране вашего iPhone? Его значок, вероятно, прячется от васКак:
Сохраняйте резкость ночного видения с помощью скрытого красного экрана iPhoneКак:
Приложение «Файлы» на вашем iPhone стало крутым благодаря последнему обновлению производительностиКак:
Самый простой способ конвертировать видео в GIF на вашем iPhoneКак:
100+ секретных кодов набора номера для вашего iPhoneВсе горячие сообщения
Apple выпускает четвертую сборку разработчика iOS 13.
1 для моделей iPhone 11 Pro
Изображение героя статьи
AppleInsider может получать партнерскую комиссию за покупки, сделанные по ссылкам на нашем сайте.
Одновременно с выпуском iOS 13 для широкой публики Apple сделала четвертую бета-версию iOS 13.1 для разработчиков доступной для участников пробной версии, использующих iPhone 11, iPhone 11 Pro или iPhone 11 Pro Max.
Apple выпустила четвертую бета-версию iOS 13.1 для тестирования разработчиков в среду, наряду с четвертой сборкой iPadOS 13.1 и 11-й бета-версией tvOS 13. Этот выпуск был предназначен для доступных в настоящее время iPhone, а не для новых моделей.
Выпуск iOS 13.1 и iPadOS 13 ожидается 24 сентября, на шесть дней раньше, чем было объявлено изначально.
Как AppleInsider , так и Apple настоятельно рекомендуют пользователям избегать установки бета-версий на «критически важные» или основные устройства из-за возможности потери данных или других проблем. Вместо этого рекомендуется устанавливать бета-версии на второстепенные или второстепенные устройства и обеспечивать достаточное количество резервных копий важных данных перед внесением каких-либо серьезных изменений.
Нашли какие-либо изменения в новых бета-версиях? Свяжитесь с нами в Твиттере по адресу @AppleInsider или @Andrew_OSU или отправьте Эндрю электронное письмо по адресу [email protected].
Похожие статьи
Сэкономьте до 150 долларов США на системах, 30 долларов США на AppleCare
Цены от $279
Сэкономьте до 150 долларов плюс скидка 40 долларов на AppleCare
Сроки изготовления моделей iPhone 14 Pro стабилизировались после увеличения из-за проблем с COVID на заводе в Чжэнчжоу, говорится в трекере доступности, в то время как спрос на модели iPhone 14 «скромный» по сравнению с ними.
Малкольм Оуэн |
Apple наконец подтвердила, что сборочное предприятие Foxconn в Чжэнчжоу, Китай, ответственное за производство iPhone 14 Pro, сократило производство после региональной вспышки COVID-19.
Малкольм Оуэн |
Док-станция Lightning Charging Dock 3-в-1 от LGear — это зарядное устройство для устройств Apple, которое может помочь сократить количество кабелей и зарядных устройств на любом рабочем столе.
Эндрю Орр |
iCloud от Apple может быть удобен для синхронизации ваших данных между устройствами, но иногда вы хотите отключить синхронизацию iCloud для определенных приложений. На iOS или iPadOS это относительно просто.
Чип Лодер |
В будущем вызов Siri может стать намного проще, поскольку инженеры Apple, как говорят, готовятся сократить триггерную фразу «Привет, Siri» до имени помощника.
Малкольм Оуэн |
Лучшие предложения воскресенья включают скидку 400 долларов на 14-дюймовый MacBook Pro M1 Pro, силиконовый чехол Apple за 10 долларов для iPhone 13 mini, скидку 15% на блок вопросительного знака Lego Super Mario 64 и многое другое.