Наступні інструкційні кроки для досягнення цієї мети зроблені з:
http://iphonedevwiki.net/index.php/Xcode
Мої висновки та дії подаються на кожному кроці.
1. Створіть сертифікат самопідписання коду з назвою “iPhone Developer” на брелоку “login” (за замовчуванням) за допомогою Keychain Access.
- Я робив знімки екрана, дотримуючись вищезазначеної інструкції.
- Я залишив більшість полів порожніми або за замовчуванням.
2. Відкрити /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2 або нижче /Developer/Platforms/iPhoneOS.platform/Info.plist
:). Можливо, вам знадобиться дозвіл кореня.
- Я використовую Xcode 4.6, тому я відкрив колишній
.plist
файл.
3. Замініть всі події XCiPhoneOSCodeSignContext
на XCCodeSignContext
. Їх три (XCode Версія 3.2.4+).
- Я вніс три модифікації, як показують скріншоти.
4. Збережіть файл і перезапустіть Xcode.
5. Переконайтеся, що у вас на комп'ютері Mac ldid. Помістіть копію десь, наприклад, в /usr/local/bin
.
6. Створіть скрипт Python ldid3.py біля програми ldid. Зробіть його виконуваним. Заповніть його:
#!/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>
""")
check_call([ldid_path, '-S' + f.name, obj_path])
- Я створив новий звичайний текстовий файл і скопіював вищевказаний код у нього.
- Цей файл я зберегла як
ldid3.py
і зберегла у /usr/local/bin
каталозі.
- У терміналі побіг
chmod 777 /usr/local/bin/ldid3.py
.
7. Відкрити iPhoneCodeSign.xcspec
. Цей файл можна знайти в [Для Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
]:
8. Змініть запис у файлі з виклику codesign
на ldid3.py
.
- Згідно з офіційною інструкцією інструкції, конвертуйте файл специфікації у звичайний текст, ввівши в консоль:
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- Я відкрив файл з TextEdit.
- Замінено
<key>CommandLine</key><string>/usr/bin/codesign</string>
на <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.
9. Збережіть файл і перезапустіть Xcode.
- Я зберег файл і вийшов з TextEdit.
10. Створіть /var/mobile/tdmtanf
на пристрої файл , щоб включити Apple «обхід TDMTANF» в інсталяції (попередження: це також поставить вас у пісочний ігровий центр).
- Я створюю порожній текстовий файл у Windows, називав його
tdmtanf
, SSH'd у свій iPod, завантажував його /var/mobile/
та перезавантажував iPod.
Тепер, коли все, що закінчилося ...
Я відкриваю свій існуючий проект Xcode і натискаю Run. Він працює в iOS Simulator без проблем.
Я переконуюсь, що для підпису коду встановлено використання сертифіката, встановленого на кроці 1.
Я будую додаток (Project> Build). Наступне повідомлення про успіх.
Я хапаю папку програми TicTacToe.app
з /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
і передати його на моїй машині Windows , щоб встановити на айпод.
Спроби встановити додаток на свій iPod, я перетягнув TicTacToe.app
на розділ програм програми iPhone Configuration Utility, але мені надійшло повідомлення про помилку, що моє додаток "не є дійсним мобільним додатком".
Я також спробував встановити додаток вручну за допомогою iFunbox та додатка AppCake , знайденого в Cydia. Обидва провалюються.
Як цікавий факт, оскільки, коли я гуляв навколо, я помітив, що багато людей згадують про важливість цього: у мене встановлений AppSync. (Вибачте за величезний знімок екрана. Якщо мені слід зняти його, будь ласка, повідомте мене!)
Висновок
Тому, незважаючи на те, щоб уважно дотримуватися вказівок, кілька разів мій додаток не визнає програмою iPhone Configuration Utility як дійсну програму. Я не можу встановити додаток вручну за допомогою таких програм, як iFunbox або додатків Cydia, таких як AppCake.
Я підозрюю, що програма дійсно недійсна, але уважно дотримуючись інструкцій, я не знаю, чому.
Хтось може сказати мені, чому моя програма недійсна, і що я можу зробити, щоб виправити це, окрім кашлю грошей?