Привет, Хабр!
Полагаю, большинству, кто сталкивался с разработкой под iOS, известно, что без сертификата разработчика невозможно тестировать и отлаживать приложение на реальном устройстве. Стоит он $99 в год. Конечно, можно обойтись встроенным симулятором, но его функционал сильно урезан. К тому же тестирование и отладка на девайсе гораздо удобнее в плане наглядности.
Но стоит ли платить эти деньги, если Вы, например, только учитесь или ваше приложение служит для личного «домашнего» использования, т.е. ваши приложения не несут никакой финансовой выгоды? Думаю, что нет.
Есть способ обойти этот запрет. Однако, он служит только для установки собственных приложений, в то время как отладка остается недоступной.
Если, несмотря на ограничения, Вы заинтересовались — добро пожаловать под кат.
Начнем с того, что все манипуляции проводились на Macbook Pro с OS X 10.8.3 и Xcode 4.6.1 на борту, а в качестве девайса был взят iPhone 5 c iOS 6.1. Таким образом, на данный момент способ является актуальным и рабочим.
Первым делом нужно произвести jailbreak устройства, на котором Вы собираетесь тестировать приложения, благо утилита evasi0n поддерживает все девайсы на последней прошивке.
После этого в Cydia нужно установить AppSync для 6.х. например, AppSync 5.0+ из репозитория cydia.xsellize.com (как это делается подскажет гугл).
Теперь создадим собственный сертификат подписи кода.
Для этого запускаем Связка ключей -> Ассистент сертификации -> создать сертификат. Откроется окно ассистента сертификации. Вводите имя (например iOS developer) и выбираете тип сертификата «подпись кода». Не забудьте поставить галочку напротив «Заменить настройки по умолчанию».
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/825/d9b/5ec/825d9b5ec7833e84c384c3d3d4b203bf.png)
Далее выбираем срок действия. В информации о сертификате поле «адрес e-mail» оставляем пустым. И нажимаем «продолжить», пока сертификат не будет создан.
В итоге связка ключей должна выглядеть так.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/c1f/066/ab8/c1f066ab897701f8c91901eab4fd2346.png)
Переходим в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform, копируем Info.plist на рабочий стол и открываем.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/7ff/0a3/8d9/7ff0a38d921e1f53697cfc54a12d356a.png)
Заменяем значение XCiPhoneOSCodeSignContext на XCCodeSignContext. Оно встречается в файле 3 раза: DefaultProperties, RuntimeRequirements и OverrideProperties.
Копируем измененный файл обратно в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ и заменяем исходный, не забыв сделать его бекап.
Закрываем и перезапускаем Xcode. Теперь создаем новый или открываем существующий проект. В Targets выбираем Build Settings и во вкладке Code Signing выбираем созданный сертификат.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/89d/8c9/8bf/89d8c98bffde3b5ba21b746cbb230cb4.png)
Наконец можно собрать приложение (Product -> Build). И в папке Products появится заветная сборка.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/877/ac5/7b6/877ac57b6967d69dfe92c26cddfc9e65.png)
Выбираем нашу сборку и правым кликом «показать в Finder». Создаем папку Payload и копируем
[название приложения].app в эту папку (по умолчанию все файлы сохраняется по пути
/Users/[имя пользователя]/Library/Developer/Xcode/DerivedData/[название приложения]/Build/Products/Debug-iphoneos/).
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/77d/f11/e4e/77df11e4edd3ca078e784f600e73d6a3.png)
Архивируем и полученный Payload.zip переименовываем в [название приложения].ipa и получаем приложение, готовое к установке.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/a0c/585/164/a0c585164f1f11daf187e47bef513aff.png)
Такое приложение можно установить через iTunes либо скинуть на устройство и установить например, через AppCake.
UPD.: Спасибо за альтернативный, а главное автоматический вариант kjuby. Для этого нужно скачать утилиту jailcoder и следуя инструкциям добавить 2 сертификата, пропатчить Хcode и пропатчить проект. После чего, будет доступен режим тестирования и отладки.
Полагаю, большинству, кто сталкивался с разработкой под iOS, известно, что без сертификата разработчика невозможно тестировать и отлаживать приложение на реальном устройстве. Стоит он $99 в год. Конечно, можно обойтись встроенным симулятором, но его функционал сильно урезан. К тому же тестирование и отладка на девайсе гораздо удобнее в плане наглядности.
Но стоит ли платить эти деньги, если Вы, например, только учитесь или ваше приложение служит для личного «домашнего» использования, т.е. ваши приложения не несут никакой финансовой выгоды? Думаю, что нет.
Есть способ обойти этот запрет. Однако, он служит только для установки собственных приложений, в то время как отладка остается недоступной.
Если, несмотря на ограничения, Вы заинтересовались — добро пожаловать под кат.
ВМЕСТО НАПУТСТВИЯ
Начнем с того, что все манипуляции проводились на Macbook Pro с OS X 10.8.3 и Xcode 4.6.1 на борту, а в качестве девайса был взят iPhone 5 c iOS 6.1. Таким образом, на данный момент способ является актуальным и рабочим.
ШАГ ПЕРВЫЙ
Первым делом нужно произвести jailbreak устройства, на котором Вы собираетесь тестировать приложения, благо утилита evasi0n поддерживает все девайсы на последней прошивке.
После этого в Cydia нужно установить AppSync для 6.х. например, AppSync 5.0+ из репозитория cydia.xsellize.com (как это делается подскажет гугл).
ШАГ ВТОРОЙ
Теперь создадим собственный сертификат подписи кода.
Для этого запускаем Связка ключей -> Ассистент сертификации -> создать сертификат. Откроется окно ассистента сертификации. Вводите имя (например iOS developer) и выбираете тип сертификата «подпись кода». Не забудьте поставить галочку напротив «Заменить настройки по умолчанию».
![image](https://habrastorage.org/getpro/habr/post_images/825/d9b/5ec/825d9b5ec7833e84c384c3d3d4b203bf.png)
Далее выбираем срок действия. В информации о сертификате поле «адрес e-mail» оставляем пустым. И нажимаем «продолжить», пока сертификат не будет создан.
В итоге связка ключей должна выглядеть так.
![image](https://habrastorage.org/getpro/habr/post_images/c1f/066/ab8/c1f066ab897701f8c91901eab4fd2346.png)
ШАГ ТРЕТИЙ
Переходим в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform, копируем Info.plist на рабочий стол и открываем.
![image](https://habrastorage.org/getpro/habr/post_images/7ff/0a3/8d9/7ff0a38d921e1f53697cfc54a12d356a.png)
Заменяем значение XCiPhoneOSCodeSignContext на XCCodeSignContext. Оно встречается в файле 3 раза: DefaultProperties, RuntimeRequirements и OverrideProperties.
Копируем измененный файл обратно в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ и заменяем исходный, не забыв сделать его бекап.
ШАГ ЧЕТВЕРТЫЙ
Закрываем и перезапускаем Xcode. Теперь создаем новый или открываем существующий проект. В Targets выбираем Build Settings и во вкладке Code Signing выбираем созданный сертификат.
![image](https://habrastorage.org/getpro/habr/post_images/89d/8c9/8bf/89d8c98bffde3b5ba21b746cbb230cb4.png)
ШАГ ПЯТЫЙ
Наконец можно собрать приложение (Product -> Build). И в папке Products появится заветная сборка.
![image](https://habrastorage.org/getpro/habr/post_images/877/ac5/7b6/877ac57b6967d69dfe92c26cddfc9e65.png)
ШАГ ШЕСТОЙ
Выбираем нашу сборку и правым кликом «показать в Finder». Создаем папку Payload и копируем
[название приложения].app в эту папку (по умолчанию все файлы сохраняется по пути
/Users/[имя пользователя]/Library/Developer/Xcode/DerivedData/[название приложения]/Build/Products/Debug-iphoneos/).
![image](https://habrastorage.org/getpro/habr/post_images/77d/f11/e4e/77df11e4edd3ca078e784f600e73d6a3.png)
ШАГ СЕДЬМОЙ
Архивируем и полученный Payload.zip переименовываем в [название приложения].ipa и получаем приложение, готовое к установке.
![image](https://habrastorage.org/getpro/habr/post_images/a0c/585/164/a0c585164f1f11daf187e47bef513aff.png)
Такое приложение можно установить через iTunes либо скинуть на устройство и установить например, через AppCake.
И напоследок фото приложения![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/31f/2d6/de3/31f2d6de343d7f168d4ed81932b0e100.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/bfb/753/5bd/bfb7535bd7a59b0209be3c101204199a.png)
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/03d/faa/637/03dfaa6374934dfe09305ad0aa737a2c.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/31f/2d6/de3/31f2d6de343d7f168d4ed81932b0e100.png)
![image](https://habrastorage.org/getpro/habr/post_images/bfb/753/5bd/bfb7535bd7a59b0209be3c101204199a.png)
![image](https://habrastorage.org/getpro/habr/post_images/03d/faa/637/03dfaa6374934dfe09305ad0aa737a2c.jpg)
UPD.: Спасибо за альтернативный, а главное автоматический вариант kjuby. Для этого нужно скачать утилиту jailcoder и следуя инструкциям добавить 2 сертификата, пропатчить Хcode и пропатчить проект. После чего, будет доступен режим тестирования и отладки.