- PVSM.RU - https://www.pvsm.ru -
Мне было интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не очень то и хотелось. Не отчаивайтесь, для таких как мы есть способы и запустить приложение и отладить его на целевом устройстве.
После курения доков и разного рода экспериментов у меня получилось. К счастью однажы я сохранил туториал с одной странички, но откуда, уже вряд ли найду, поэтому это можно считать переводом. Ну и плюс дополнил от себя.
Итак, версии софта, которые я использовал:
Итак, что же потребуется для «любознательности»? Всего то:
Тут в общем всё просто. На данный момент прошивка, поддающаяся взлому 7.0.6. Все остальное можно почерпнуть с сайта evasi0n [1].
Если нет взломанного устройства — то закрываем данный туториал и платим 99USD Apple.
Довольно известный факт, что того чтобы ставить само-подписанный приложения (суть взломанные) необходимо установить в Cydia так называемый AppSync. Я ставил AppSync из нашенского русского репозитория smolk — http://smolk.myrepospace.com [2]. Насколько я наблюдал за этим репозиторем, Smolk сам пишет/тырит AppSync и выкладывает его одним из первых, поэтому и рекомендую воспользоваться его трудами.
Если же ничего не получилось, то Xcode выдаст примерно следующее:
Всё, наше устройство теперь при подключении всегда будет распознаваться как использующееся для разработки.
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
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
#!/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])
sudo chmod +x /usr/local/bin/ldid
sudo chmod +x /usr/local/bin/ldid3.py
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
Надеюсь данное руководство поможет начинающим программистам iOS просто и незатейливо попробовать свои силы в написании программ для устройств Apple.
Автор: mefikru
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mac-os-x/61024
Ссылки в тексте:
[1] evasi0n: http://www.evasi0n.com/
[2] http://smolk.myrepospace.com: http://smolk.myrepospace.com
[3] отсюда: http://sourceforge.net/projects/git-osx-installer/
[4] Источник: http://habrahabr.ru/post/223675/
Нажмите здесь для печати.