iPhone App Minus App Store?


199

Якщо я створюю додаток на своєму Mac, чи є якийсь спосіб змусити його працювати на iPhone, не переходячи через магазин додатків?

Не має значення, чи має iPhone бути безвідривним, доки я все ще можу запустити додаток, створене за допомогою офіційного SDK. Через те, що я не потрапляю, я не можу, щоб ця програма проходила через магазин додатків.


1
Станом на Xcode 7, тепер можна запустити додаток на підключеному пристрої, не підписуючись на обліковий запис розробника або не змінюючи пристрою. Детальну інформацію див. У цьому посібнику .
Сурагч

Ви можете використовувати AppBox , програму mac, яка використовує ваш обліковий запис Drobox , щоб розповсюджувати спеціальні та корпоративні програми. Спробуйте тут github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/…
Vineet Choudhary

Відповіді:


187

Офіційна програма для розробників

За звичайний iPhone вам потрібно буде заплатити 99 доларів США / рік, щоб стати учасником програми для розробників. Потім можна використовувати систему adhoc для встановлення програми на до 100 пристроїв. Програма розробника містить деталі, але вона передбачає додавання UUID для кожного з пристроїв до пакету додатків. UUID можна найпростіше отримати за допомогою Ad Hoc Helper, доступного в App Store. Детальніше про цей метод див. У бета- тесті Крейга Хокенберрі на iPhone 2.0 статті

Jailbroken iPhone

Для вбудованих iPhone в яєчко, ви можете використовувати наступний метод, який я особисто перевірив, використовуючи зразок програми AccelerometerGraph на iPhone OS 3.0.

Створіть самопідписаний сертифікат

Спершу вам потрібно створити сертифікат, який підписав самостійно, і наклеїти свій SDK на iPhone, щоб дозволити використовувати цей сертифікат:

  1. Запустіть Keychain Access.app. Якщо не вибрано жодних елементів, у меню Keychain виберіть Помічник сертифіката, а потім Створіть сертифікат.

    Ім'я:
    Тип сертифіката для розробника iPhone : Підписання коду
    Дозвольте мені змінити значення за замовчуванням: Так

  2. Клацніть Продовжити

    Термін дії: 3650 днів

  3. Клацніть Продовжити

  4. Видаліть поле адреси електронної пошти.

  5. Клацніть Продовжити до завершення.

    Ви повинні побачити "Цей кореневий сертифікат не довіряється". Це очікується.

  6. Встановіть iPhone SDK для дозволу використовувати самопідписаний сертифікат:

    sudo / usr / bin / sed -i .bak 's / XCiPhoneOSCodeSignContext / XCCodeSignContext /' /Developer/Platforms/iPhoneOS.platform/Info.plist

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

Ручне розгортання через WiFi

Наступні кроки вимагають openssh, і uikittoolsїх потрібно встановити спочатку. Замініть jasoniphone.localім'я хоста цільового пристрою. Не забудьте встановити свій власний пароль як для користувачів, так mobileі для rootкористувачів після встановлення SSH.

Щоб вручну компілювати та встановлювати свою програму на телефон як системний додаток (в обхід інсталяційної системи Apple):

  1. Проект, встановити активний SDK, пристрій та встановити активну конфігурацію збірки, випуск.

  2. Складіть свій проект зазвичай (використовуючи Build, а не Build & Go).

  3. У build/Release-iphoneosкаталозі у вас буде додаток. Використовуйте бажаний метод, щоб перенести це в / Програми на пристрої.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. Повідомте SpringBoard, що нова програма встановлена:

    ssh mobile@jasoniphone.local uicache

    Це потрібно зробити лише під час додавання або видалення програм. Оновлені програми просто потрібно перезапустити.

Щоб полегшити життя під час розробки, ви можете встановити автентифікацію ключів SSH та додати ці додаткові кроки як спеціальний крок збирання у своєму проекті.

Зауважте, що якщо ви хочете видалити програму пізніше, ви не можете це зробити через стандартний інтерфейс SpringBoard, і вам потрібно буде використовувати SSH та оновити SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache

2
Шахта не будуватиметься - Xcode негайно видає помилку підпису коду, як тільки я намагаюся створити ...
Присвячено

1
@ Rev316 uicacheмає бути там, якщо у вас встановлений uikittoolsпакет.
Джейсон вивітрював

Я піду за тобою , але зустрів цю помилку: stackoverflow.com/questions/2161877 / ...
hungbm06

Також ви хочете створити приватну / відкриту пару ключів над ssh, щоб зробити речі парольними
conradev

2
Що з профілем резервування? Чи є спосіб отримати його без підписки на програму розробника?
Теодор Костов

18

Так, після того, як ви приєдналися до програми для розробників iPhone і заплатили Apple $ 99, ви можете надати свої додатки на до 100 пристроях iOS.


2
Чому існує обмеження 100 встановити?
Маркус Леон

25
Тож люди не можуть використовувати це як спосіб повністю обійти магазин додатків.
willc2

2
А обмеження 100 зараховується як кількість пристроїв, які ви зареєстрували в тому році на порталі надання iOS, а не поточне число, яке ви маєте. Отже, якщо ви додасте 5 пристроїв, а потім видалите всі 5, ви можете додати ще 95 (не 100) пристроїв.
Скотт C Вілсон

1
Однак кількість оновлених пристроїв скидається після оновлення програми для розробників.
dgund

1
А термін дії спеціальних профілів забезпечення закінчується через 3 місяці, тому ви не можете постійно поширювати програми навіть на обмеженому (100) наборі зареєстрованих вами пристроїв.
Богатир

14
  • Створіть свій додаток
  • Завантажте на тріщину сайт
  • (Якщо у вас додаток досить хороший) версія тріщини буде розміщена хвилин пізніше і готова для завантаження для всіх ;-)

8

За допомогою цієї публікації я створив сценарій, який буде встановлено через додаток Installous для швидкого розгортання:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

Те, що не вистачає у публікації, на яку згадувалося вище, - це iTunesMetadata. Без цього Installous не буде правильно встановлювати програми. Ось приклад iTunesMetadata:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

Очевидно, замініть всі екземпляри MyApp на ім’я вашої програми, а MyCompany на назву вашої компанії.

В основному це буде встановлено на будь-якому джейлбрейк-пристрої з встановленою програмою Instalous. Після його налаштування це призводить до дуже швидкого розгортання, оскільки його можна встановити з будь-якого місця, просто завантажте його на веб-сайт вашої компанії та завантажте файл безпосередньо на пристрій та скопіюйте / перенесіть на нього ~/Documents/Installous/Downloads.


@ToolmakerSteve я сумніваюся в цьому, але, бачачи, що тепер ви можете безкоштовно завантажувати додатки для iOS з будь-яким яблучним ідентифікатором, я не бачу в цьому потреби.
Річард Дж. Росс III

7

З майбутнім Xcode 7 тепер можна встановлювати додатки на свої пристрої без ліцензії розробника яблук, тож тепер можна пропустити магазин додатків, і вам не доведеться джейлбрейк вашого пристрою.

Тепер кожен може отримати свою програму на своєму пристрої Apple.

Xcode 7 і Swift тепер полегшують усім створювати додатки та запускати їх безпосередньо на своїх пристроях Apple. Просто ввійдіть у свій обліковий запис за допомогою Apple ID і перетворіть свою ідею в додаток, який ви можете торкнутися на iPad, iPhone або Apple Watch. Завантажте бета-версію Xcode 7 та спробуйте самі сьогодні. Членство в програмі не потрібно.

Цитується з: https://developer.apple.com/xcode/

Оновлення:

Тепер випущено XCode 7:

Безкоштовна розробка на пристрої Тепер кожен може запустити і протестувати власну програму на пристрої - безкоштовно. Ви можете запускати та налагоджувати власні твори на Mac, iPhone, iPad, iPod touch або Apple Watch без будь-яких комісій, і жодних програм не приєднуйтесь. Все, що вам потрібно зробити - це ввести свій безкоштовний Apple ID в Xcode. Ви навіть можете використовувати той самий Apple ID, який ви вже використовуєте для App Store або iTunes. Коли ви вдосконалили додаток, програма для розробників Apple допоможе вам отримати його в App Store.

Детальну інформацію про встановлення та запуск на пристроях див. У розділі Запуск програми на пристроях.


4

Варто відзначити, що якщо ви йдете по маршруту джейлбрейка, можливо (ймовірно?) Оновлення ОС iPhone вб'є вашу здатність запускати ці програми. Я б поїхав офіційним маршрутом і заплатив 99 доларів, щоб отримати дозвіл. Окрім того, що вам не доведеться турбуватися про те, що ваші додатки будуть халопними, ви також отримаєте можливість (якщо виберете) випустити свої програми в магазині.


2

Після копіювання програми на iPhone у спосіб, описаний @Jason Werated, переконайтесь, що "chmod + x" програми, інакше він не запуститься.


1

* Зміни / примітки, щоб зробити цю роботу для Xcode 3.2.1 та iPhone SDK 3.1.2

Ручне розгортання через WiFi

2) Обов’язково перезавантажте Xcode після зміни Info.plist

3) Команда "uicache" не знайдена, використовуючи killall -HUP SpringBoard для мене добре працював.

Крім того, я можу підтвердити, що це працює чудово.

Користувачі Mac, використовуючи PwnageTool 3.1.4, відмінно працювали на Jailbreaking (DL через торрент).


Ага. Дякую, Джейсон, вдячний добре задокументованому посту! Можна згадати про встановлення пакету UIKit Tools Cydia для язиків Jailbreak, як я.
Rev316

1

Якщо ви виконаєте виправлення, /Developer/Platforms/iPhoneOS.platform/Info.plistа потім спробуєте налагодити додаток, що працює на пристрої, використовуючи реальний профіль від Apple, він, ймовірно, не вийде. Симптоми - це дивні повідомлення про помилки, com.apple.debugserverі ви можете використовувати будь-який ідентифікатор пакета, не отримуючи помилки під час створення в Xcode. Рішення - відновити Info.plist.


0

Ви можете використовувати AppBox , Mac-додаток, який використовує ваш обліковий запис Drobox , щоб розповсюджувати спеціальні та корпоративні програми, якщо ви хочете встановити будь-який інший браузер.

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases


Параметри

Архів і завантаження IPA

  • Просто виберіть Project / Workspace для архіву -> make ipa -> upload ipa -> send mail -> та mac shutdown

Завантажити лише IPA

  • Просто виберіть IPA-файл для завантаження ipa -> надіслати пошту -> та mac-вимкнення

Особливість

  • Тримайте те ж посилання
    • Ця функція зберігатиме однакову коротку URL-адресу для всіх майбутніх ipa, завантажених із тим самим ідентифікатором пакету.
    • Якщо цей параметр увімкнено, ви також можете завантажити попередню збірку з тим же URL-адресом.
  • Посилання для поширення додатків автоматичної електронної пошти
  • Автоматичне відключення Mac після розповсюдження
  • Максимальний розмір завантаження => Дорівнює пам’яті вашого облікового запису Dropbox
  • Термін дії завантаженого додатка => Доки ви не видалите його з Dropbox
  • Установки на додаток => Не обмежено
  • Панель приладів*

    * Буде доступний у наступній версії


AppBox проти Diawi

Знімок екрана

Завантажте IPA

Архів і завантаження IPA

Завантаження IPA

Спробуйте тут https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

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