iPhone App Минус App Store?

199

Если я создаю приложение на своем Mac, могу ли я заставить его работать на iPhone, не заходя в магазин приложений?

Неважно, что iPhone должен быть взломан, пока я могу запустить приложение, созданное с использованием официального SDK. По причинам, в которые я не пойду, я не могу позволить этой программе пройти через магазин приложений.

Дэн Уокер
источник
1
Начиная с Xcode 7, теперь можно запускать приложение на подключенном устройстве без регистрации учетной записи разработчика или взлома устройства. Смотрите это руководство для деталей.
Сурагч
Вы можете использовать AppBox , Mac-приложение, которое использует вашу учетную запись Dropbox для распространения ваших специальных и корпоративных приложений. Попробуйте здесь github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/…
Vineet Choudhary

Ответы:

187

Официальная программа разработчика

За стандартный iPhone вам нужно будет заплатить 99 долларов США в год, чтобы стать участником программы для разработчиков. Затем вы можете использовать систему adhoc для установки приложения на 100 устройств. В программе разработчика есть детали, но она включает добавление UUID для каждого из устройств в ваш пакет приложений. UUID можно получить с помощью Ad Hoc Helper, доступного в App Store. Более подробной информации об этом методе см Крэйга Хокенберри в бета - тестирование на iPhone 2.0 статьи

Взломанный iPhone

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

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

Сначала вам нужно создать самозаверяющий сертификат и установить патч на свой iPhone SDK, чтобы разрешить использование этого сертификата:

  1. Запустите Keychain Access.app. Если элементы не выбраны, в меню «Связка ключей» выберите «Ассистент сертификатов», затем «Создать сертификат».

    Имя: iPhone Developer
    Certificate Тип: Code Signing
    Позвольте мне изменить значения по умолчанию: Да

  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каталоге у вас будет комплект приложений. Используйте предпочитаемый метод для передачи этого в / Applications на устройстве.

    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) больше устройств, которые вы можете добавить.
Скотт С. Уилсон
1
Но количество используемых устройств сбрасывается, как только вы обновляете свою программу разработчика.
dgund
1
А специальные профили предоставления доступа истекают через 3 месяца, поэтому вы не можете постоянно распространять приложения даже на ограниченный (100) набор устройств, которые вы зарегистрировали.
Богатырь
14
  • Создайте свое приложение
  • Загрузить на взломанный сайт
  • (Если ваше приложение достаточно хорошее), крэк версия будет опубликована через несколько минут и готова для скачивания всеми ;-)
ohho
источник
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 - названием вашей компании.

По сути, он будет установлен на любое взломанное устройство с установленным Installous. После настройки это приводит к очень быстрому развертыванию, так как его можно установить из любого места, просто загрузите его на веб-сайт своей компании, загрузите файл прямо на устройство и скопируйте / переместите на него ~/Documents/Installous/Downloads.

Ричард Дж. Росс III
источник
@ToolmakerSteve Я сомневаюсь в этом, но, поскольку теперь вы можете бесплатно загружать приложения iOS с любым Apple ID, я не вижу в этом необходимости.
Ричард Дж. Росс III
7

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

Теперь каждый может получить свое приложение на своем устройстве 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 Developer Program может помочь вам получить его в App Store.

См. Запуск приложения на устройствах для получения подробной информации об установке и запуске на устройствах.

qqbenq
источник
4

Стоит отметить, что если вы пойдете по джейлбрейкнутому пути, возможно (вероятно?), Что обновление iPhone OS убьет вашу способность запускать эти приложения. Я бы пошел по официальному маршруту и ​​заплатил бы 99 долларов, чтобы получить разрешение. Помимо того, что вам не нужно беспокоиться о том, что ваши приложения забиты, у вас также есть возможность (по вашему выбору) выпустить свои приложения в магазине.

августейший
источник
2

После копирования приложения на iPhone способом, описанным @Jason Wegetarian, убедитесь, что приложение «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 через торрент).

Rev316
источник
Ах. Спасибо Джейсон, цените хорошо документированный пост! Возможно, стоит упомянуть об установке пакета Cydia UIKit Tools для джейлбрейка, как я.
Rev316
1

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

Маттиас Вадман
источник
0

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

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


Параметры

Архивировать и загружать IPA

  • Просто выберите Project / Workspace для архивации -> сделать ipa -> загрузить ipa -> отправить почту -> и выключить Mac

Загрузить только IPA

  • Просто выберите файл IPA для загрузки ipa -> отправить почту -> и выключите Mac

Характерная черта

  • Держите ту же ссылку
    • Эта функция будет сохранять тот же короткий URL для всех будущих IPA, загруженных с идентичным идентификатором пакета.
    • Если эта опция включена, вы также можете загрузить предыдущую сборку с тем же URL-адресом.
  • Авто Распределение E-Mail App Ссылка
  • Автоматическое отключение Mac после распространения
  • Максимальный размер загрузки => равно хранилищу вашей учетной записи Dropbox
  • Срок действия загруженного приложения => Пока вы не удалите из Dropbox
  • Установки в приложении => Неограниченно
  • Панель приборов*

    * Будет доступно в следующей версии


AppBox против Diawi

Скриншот

Загрузить IPA

Архивировать и загружать IPA

Загрузка IPA

Попробуйте здесь https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

Винет Чоудхари
источник