Чи можливо компілювати та запускати проект Xcode на пристрої з обмеженим доступом без платного сертифіката розробника?


9

Як для ударів, так і з бюджетних причин, я хотів би взяти пакет, який, як правило, вимагає облікового запису розробника, і створити додаток для роботи на пристрої iOS з розірваним джейлбрейком.

У мене є iPod Touch 5-го покоління, з джейлбрейком за допомогою evasi0n, під управлінням iOS 6.1.

Я використовую Xcode 4.6 з Lion OS X (10.8.2).

Відповіді:


6

Наступні інструкційні кроки для досягнення цієї мети зроблені з: 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.

Я підозрюю, що програма дійсно недійсна, але уважно дотримуючись інструкцій, я не знаю, чому.

Хтось може сказати мені, чому моя програма недійсна, і що я можу зробити, щоб виправити це, окрім кашлю грошей?


Хоча це було цікаве читання.
Текафремо

Ні - радий, що прочитав його і, мабуть, повернеться до нього в майбутньому. Дякуємо, що поділилися цим.
Роберт

Це було дуже корисно мені під час роботи над Xcode 4.2 та iOS 4, сподіваюся, хтось може оновити процедуру до Xcode 4.6
rraallvv

Після завантаження ldid потрібно змінити його дозволи на 755 за допомогою chmod 755 ldid. Це викликало у мене помилку виходу 1.

0

Ви можете підключити свій пристрій і вибрати пристрій iOS як Запуск цілі. при запуску програма автоматично встановлюється на ваш пристрій. Або ви можете вибрати свій iOS Device, тоді не потрібно запускати лише збирати та архівувати його. Після цього розповсюдіть ... виберіть Зберегти для корпоративного чи спеціального розгортання. Ви отримаєте файл .ipa. Сподіваюся, це може вам допомогти ..


0

продовження відповіді @joncom .. Ви можете додавати .app файли на свій iPhone безпосередньо, лише виконавши кілька додаткових кроків.

  • скопіюйте .appфайл на робочий стіл, а потім скопіюйте його
  • перейменувати [yourappname].zipв[yourappname].ipa
  • потім продовжуйте і завантажуйте AppSync з cydia
  • завантажте та встановіть на свій пристрій файл .ipa

ПРИМІТКА:

Ви також можете зробити це безпосередньо, не проходячи всю модифікацію коду python, згадану @joncom .. докладніше читайте тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.