Как распространять iOS-приложение напрямую клиентам в обход App Store
Как распространять iOS-приложение напрямую клиентам в обход App Store

Я делаю очень много приложения на Adobe AIR для клиентов. Платформа - только iOS. Распространяем по ссылке (лично на почту).

Лицензия - Enterprise за 299 в год. С ней в AppStore нельзя (нет такой опции), зато можно ставить на любой девайс без запроса его UDID.

Установка возможно по ссылке. Впрочем, для этого и не нужна Enterprise лицуха. Но в обычной dev лицухе надо узнавать UDID.

Начиная с iOS8 у Apple чешутся яйца на тему "как еще трахнуть разработчика" и они запретили установку приложений "по ссылке" с доментов, где нет https протокола. Т.е. раньше достаточно было иметь http. Потом они скуржопились, что-то промычали про безопасность и разрешили установку только через https. Тут для меня возника любопытный вопрос. Если Enterprise дает возможность ставить кому угодно, а в оферте на Apple Dev написано, что только своим сотрудником за исключением (бла-бла, какие-то там исключения все же есть)... то зачем запрещать установку по http? Выходит, что раздавать аппу через Enterprise как бы нельзя, но можно? :)

Если нет своего https - я советую делать это через dropbox. https бесплатно с возможностью давать на установку прямые ссылки и потерать руки от удовлетворя работающего продукта.

1) идем на dropbox, кидаем туда index.html, iTunesArtwork.png (512x512), x72.png (72x72), myApplication.plist, myApplication.ipa

2) к каждому файлу получаем share ссылку вида https://www.dropbox.com/s/v7ds0asd78ds/myApplication.plist?dl=0

3) в кажой ссылке меняем https://www.dropbox.com на https://dl.dropboxusercontent.com и в конце убираем ?dl=0

Такой хак позволяет получать файл именно файлов, а не дибильным интерфейсом "нажмите скачать".

4) Создаем в нашем myApplication.plist контент как у меня по ссылке https://gist.github.com/therabbitwindfall/4a522a480ab2c5f97d33

5) прописываем в нем правильные ссылки, которые мы получили в шаге 2 и 3

6) где-то на удобном нашем сервере мы создаем myApp.html и в нем делаем редирект на наш index.html из шага 2

7) клиентам раздаем ссылку с шага 6. Можно и с шага 2, но ссылка вида myapp.com/myApp.html куда круче, чем https://dl.dropboxusercontent.com/s/sdf87sd78fsdff/index.html

Клиент открывает её прямо в браузере мобильного iOS устройства и всем хорошо :) А главное, что такая схема у меня работает уже года 3.5 точно.

Apple конечно же знает, что, где и как запускалось. Но это в любом случае случается, т.к. при подключении iOS устройства через прокси - мы видим, что даже при запуске апловских прог встроенных девайс что-то пуляет к ним на сервер.

1

Забыл главное дописать!

8) В index.html с дропбокса (хотя можно и со своего домена) прописываем a href ссылку вида

itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/vbc89brzlgh/myApplication.plist

iOS именно такую ссылку подсасывает и начинает установку. Но, сначала, спросит доверяет ли девайс этому производителю ПО :)

1

Resign + база айдишников устройств + скрипт + рассылка. Но это мутно както на эпле колхозом заниматься. Тестфлайт решает

1

А что именно он решает? Ведь у пользователей он должен быть загружен, не так ли?

Pgyer.com
Шах и мат.

1

Можешь поподробнее рассказать? Какие там есть ограничения, с какими проблемами можно столкнуться?

Можете добавить в TestFlight ваших клиентов в качестве тестеров. Ограничение количества тестеров: 1000 людей с apple аккаунтами.

1

Ну это моветон какой-то: собрать с пользователей данные их учеток, а потом заставить установить testflight. Выглядит так себе, если честно. Хочется отправить ссылку, нажав на которую им предлагается установить приложение. Собирать перед этим базу данных udid или учеток просто нет не только возможности но и желания - хочется все сделать удобно для пользователя

На этом примере можно чётко видеть какое гавно сотворил Стив Жлобс.
Меня реально выбешивает этот Аппстор и Эпл на который все дрочат.
Начиная с дизайна их девелопер консоли - разрабатывал видимо студент.
Вы не можете загрузить файл в этот гребаный Аппстор ни с какой операционки кроме как с Мака!!!!
Это ж писец полный!
Тестфлай говорите?
Там такие случаи - его можно установить только на 8 и выше, но много пользователей, которые купили "нищебродские айфоны" с 16гигами и они тупо не могут сделать апгрейд, который требует 1гига свободной памяти, т.е. в этом гребаном эпле надо постоянно снимать носки.

И это мы не говорим о том что этот сраный Эпл тупо запрещает платежи в приложениях не через них. Пейпал? Нет! Карта? Нет! Только через нас и бы будем брать за это 30%.
Этот гребанный эпл забирает 30%!!!

Я не могу спокойно говорить про Аппстор и Эпл, это просто пи..ц.

И это гавно творит самая дорогая компания в мире!!!!!

Мы со своим приложением прошли этот квест в Аппсторе и теперь мы там, но я всегда буду говорить - Аппстор и Эпл-гавно!

Их ждёт участь Нокии, если они не изменятся.

1

Ты ещё вспомни как геморойно регистрацию проходить)
А вообще - смирись, сходи перекури и всё устаканится.
Все через это прошли и живы здоровы и платим 30% )

Parse - удобно для тех, кто не хочет заморачиваться с сервереыми проблемами: где арендовать, какой мощности ставить сервакам, внедрение sharding, увеличение мощности серверов по мере необходимости, поддержка серверов и т.д. - все берет на себя Parse.
Ваша задача: сделать на нем свою БД и юзать. Есть API для обращения к базе, или можно сразу по SDK стучаться к БД. Есть CloudCode - для операций на стороне сервера.
В общем, просто попробуйте и сами решите, нужно ли вам и для вашего приложения.

1

А почему в какой-то приватный стор нельзя залить?

Можно по подробнее? А какие сертификаты прописывать в приложении, чтобы они нормально вставали на устройства, будучи загруженными не через appstore?

Ахаха) Это тебе не андроид 😂

Может кто-нибудь развеять опасения про enterprise - присвоив приложению этот сертификат, я могу его отправить кому угодно? Нет ограничений по количеству устройств или по количеству рассылаемых программ? И никто не проверяет их содержание, никто не может на них пожаловаться, что приведет к отзыву лицензии? Допустим, делаю фотоальбому для выпускников богатых школ Москвы - 10-ки приложений и у каждого по 50 пользователей. Для этого будет достаточно enterprise?

Popcorn так распростаняется, говорят мильон загрузок) может сертификаты меняют, может эплу всё равно.

Вопрос: Клиенты в вашем городе находятся? Или в вашей стране?
Если локально, то можете поднять им локальный сервак, с помощью которого и будет работать ваша программа.
И смело отправить приложение на общий стор. А если кто другой скачает, то у него не будет того сервака, и соответственно, не будет иметь доступа к всему фукнционалу приложения.
А чтобы прошла ревью Apple, мы на своем подобном сделали так: если приложение не нашел сервак, то включает демо версию, где есть только основные функции приложения, как триал.

Пока что остановились на том, чтобы загрузить в appstore "пустое" приложение, которое только при вводе определенного пароля на первой странице загружает контент. Да, придется для review дать этот пароль, но случайных пользователей это должно отбить. А потом, если приложение универсальное и будет заказываться разными клиентами (фк двор23, фк двор38,...) - давать клиентам новые пароли ( клиентам А давать пароль 111, который загружает контент А, а клиентам Б - пароль 222...). Хотя это усложняет разработку, потому что до этого никогда не занимался синхронизацией приложения с сервером. Может есть какие-нибудь сервисы, занимающиеся синхронизацией с приложением?

Сервисов много, например, Parse

Вот как раз про него и думал расспросить, потому что уже приглядывался. Пользовался? Удобно? На первый взгляд, как раз для тех, кто не привык синхронизировать с сервером.

Модеры, прикрутите кнопку "редактировать" к постам в течении 5 минут. Дочка разлила воду на клавиатуру и при нажатии кнопок печатаются другие :)