Добрый день! Я занимаюсь разработкой приложения, которое необходимо, ввиду его специфичности и сроков Review в iTunes Connect, распространять напрямую клиентам. На данный момент имеется Apple Developer Program.
Сначала подумал про Ad Hoc — но там при составлении Provisioning profile необходимо указать устройства, на которые потом это приложение встанет. Уже крайне неудобно — я не могу взять устройства клиентов и поочередно их регистрировать в Member Center. Там еще написано, что количество устройств ограничено: «Create a distribution provisioning profile to install your app on a limited number of registered devices», «Select the devices you wish to include in this provisioning profile. To install an app signed with this profile on a device, the device must be included».
Еще есть Enterprise Program. Цена не пугает, пугают отзывы, что таким образом можно распространять приложения только внутри организации (как определяется причастность устройства к организации, не знаю), и при распространении на «кого попало» может обернуться отзывом лицензии.
Пишут и про TestFlight.
Пишут много, но не знаю, что выбрать, да и не знаю, подходит ли мне хоть что-то.
Мне необходимо распространять приложения раз в 2–3 месяца человек на 80–100 (каждый раз пользователи новые). Также хотелось бы не напрягать пользователей скачиванием сторонних программ, регистрацией своих устройств и прочим.
Если все же идеальных вариантов для решения данной проблемы нет, то может кто поделится опытом публикации в App Store частных приложений? Заказчики не хотят, чтобы их приложения скачивали простые зеваки — я думал над выставлением цены $999 (или я не могу поставить такую высокую цену будучи простым Developer?) и рассылать промокоды только «нужным» пользователям. В таком случае, правда, есть ограничение на 100 промокодов, не так ли? И не отвергнут ли на Review приложения вроде «Семейный альбом Петровых» или «Официальное приложение ФК Двор № 4»?
Отвечает Анатолий Шарифулин, руководитель сервиса для мониторинга приложений конкурентов AppFollow
По-моему, все проблемы преувеличены. Выпускайте свое приложение и ждите, как все, семь-десять дней, и пользуйтесь TestFlight, скоро вы привыкнете как к этому, так и к тому, что вы можете нарушить App Store Review Guidelines.
По поводу цены — так не стоит делать, проще вести логин-пароль или вход по промокоду.
Если же вы используете в своем приложении что-то такое, что не совместимо c гайдлайнами и/или ваше приложение b2b и вам не нужен «случайный» пользователь, то Enterprise — это решение. Вам нужно будет всего лишь распространять ссылку на приложение потенциальным клиентам, но вам могут отказать в заявке, если у вас, например, нет DUNS-номера организации или вы не доказали, что вам действительно это необходимо.
Мы, например, в Ostrovok.ru в 2013 году легко получили Enterprise-аккаунт, но по факту его не стали использовать на полную мощь.
Я делаю очень много приложения на 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 устройства через прокси - мы видим, что даже при запуске апловских прог встроенных девайс что-то пуляет к ним на сервер.
Забыл главное дописать!
8) В index.html с дропбокса (хотя можно и со своего домена) прописываем a href ссылку вида
itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/vbc89brzlgh/myApplication.plist
iOS именно такую ссылку подсасывает и начинает установку. Но, сначала, спросит доверяет ли девайс этому производителю ПО :)
Спасибо за подробную инструкцию - это именно то, чего я ждал. Но осталось несколько вопросов:
1) Первый просто из любопытства: зачем загружать иконки на страницу? Разве браузер ее откроет до того, как выскочит alert типа "вы хотите установить это приложение"?
2) Насколько сложно получить enterprise? С ИП это возможно? Просто в рунете почти нет статей на этот счет, а иностранные, в данном случае, не совсем релевантны.
3) "Распространять для своих сотрудников" - это везде написано, но что в действительности за этим стоит? Или это можно пропустить мимо ушей и приравнять своих клиентов к своим сотрудникам? Или могут быть какие-то штрафы?
нчз )
1) иконки нужны в plist для того, чтоб юзер видел не белую иконку, а иконку продукта во время скачивания. Т.е. сначала скачивается иконка и потом начинает скачиваться приложение. Плюс всегда можно в index.html кинуть красиво кнопку с иконкой и подписью Press to Install. В разы повышает серьезность подхода в глазах клиентов
2) Enterprise мы получили за неделю. Для этого получили DUNS номер. Получили его совершенно бесплатно. Но получал его мой руководитель. Помню, что фигурировала эта ссылка http://www.dnb.ru/rbr.asp?rbr=25
3) Понятия не имею, что за этим стоит. За много лет небыло проблем еще. У нас в соглашении везде написано, что установив приложение Вы становитесь членом команды разработчиков данного ПО и обязуетесь сохранять конф. об его использовании :)
Да, я внимательнее посмотрел plist, и вопрос про иконки отпал.
Но вы как ООО получали? Только DUNS номер запросили или еще и кредитный рейтинг? Спрашиваю про получение программы, потому что не раз читал про то, как долго и муторно получать обычную dev programm для организаций.
Вы таким образом уже более 3 лет распространяете, и ни разу никаких сообщений от apple не было? А какой у вас, примерно, объем загрузок в год? Или я слишком парюсь, и количество загрузок (до миллиона) никогда не привлечет внимание? Я все опасаюсь, что придет письмо счастья, где будет говориться, что как-то подозрительно у меня много "сотрудников", и по этой причине принято решение приостановить действие enterprise. Просто это может сильно ударить, если не быть готовым к переустройству приложения для распространения другим способом.
И еще вопрос: а про какое соглашение с пользователями Вы говорите? Или оно стандартное и принимается пользователем, установившем приложение заархивированное как enterprise distribution?
Сегодня говорил с человеком, кто его получал (у нас). Сказал, что заполнил что-то на сайте (я давал его) и потом эти данные в программе Apple Enterprise ввели и все. Уверен, что всё очень просто.
Ничего от Apple не приходило и я сомневаюсь, что это изменится. В мире миллионы приложений. Как они их отслеживать будут? Даже при всем желании - как они узнают является ли запустивший приложение человек сотрудником компании или нет?
Коммерческая информация наверняка :)
Если доступ к установке будет у целевой аудитории лично, а не у всех, кто зарегался у Вас на сайте - опасаться нечего.
У нас не миллионы, конечно, но много. Один клиент, в среднем, на сотни планшетов ставит приложение.
Я Вам больше скажу. Есть такая CRM система как Veeva Systems и у них распространение приватной системы под айпад идет через их сайт.
Наверняка Apple про это знают и вот уже года 4 прошло с момента начала сотрудничества с ними - ничего не изменилось.
Соглашение - это то, мы суем пользователю перед скачиванием и первым запуском. Это исключительно наше соглашение и пользователя и его мы делаем по ряду причин, не связанных с Apple и их Enterprise программой. У нас просто обслуживаются клиенты известные и не очень хотелось бы, что две различные организации узнали, что мы для их конкуретнов делаем контент. Ничего опасного, просто будут тыкать носом "наверняка для Рога и Копыта Вы лучше сделали, чем для нас" :) Но на перестраховку мы написали, что человек стал членом компанды разработчиков и бла бла бла соглашается присылать отчеты с ошибками и т.д.
Думаю, что делайте и не парьтесь. Можете и меня подключать в качестве фриланса под планшеты что-то делать :) Но только не большое что-то...
Еще раз спасибо за информацию, которой в рунете нет. Понимаю, что уже мог утомить своими вопросами, но осталось еще несколько, связанных с регистрацией. Сколько раз и каким способом apple связывался с ООО? (с Вашим юрлицом)
Просто мы сейчас думаем над тем, что для быстрого запуска нам было бы удобнее получить DUNS для одного из ООО наших знакомых ( ОКВЕД ведь не должен стать преградой - все могут делать обучающие приложения для "сотрудников"), но встает вопрос - надо ли нам постоянно, во время регистрации в enterprise, быть доступным по заявленным контактам ООО наших знакомых? На американских сайтах пишут, что apple будет звонить по телефону из DUNS и спрашивать: понимаем ли мы для чего приобретается enterprise, и что мы будем распространять своим сотрудникам.
Ведь, по сути, нет разницы на кого регистрировать enterprise - главное иметь доступ к почте и знать пароль от apple id. Пусть хоть ООО"Заборы для дачи СПБ" будет. Или я не прав?
И требовал ли apple подтверждения личности при регистрации в enterprise?
Resign + база айдишников устройств + скрипт + рассылка. Но это мутно както на эпле колхозом заниматься. Тестфлайт решает
А что именно он решает? Ведь у пользователей он должен быть загружен, не так ли?
Можно подписать самому и отправить пользователю его личный Ipa. Нооо надо знать айди его айфона, что некошерно видимо при ваших условиях.
Pgyer.com
Шах и мат.
Можешь поподробнее рассказать? Какие там есть ограничения, с какими проблемами можно столкнуться?
Можете добавить в TestFlight ваших клиентов в качестве тестеров. Ограничение количества тестеров: 1000 людей с apple аккаунтами.
Ну это моветон какой-то: собрать с пользователей данные их учеток, а потом заставить установить testflight. Выглядит так себе, если честно. Хочется отправить ссылку, нажав на которую им предлагается установить приложение. Собирать перед этим базу данных udid или учеток просто нет не только возможности но и желания - хочется все сделать удобно для пользователя
На этом примере можно чётко видеть какое гавно сотворил Стив Жлобс.
Меня реально выбешивает этот Аппстор и Эпл на который все дрочат.
Начиная с дизайна их девелопер консоли - разрабатывал видимо студент.
Вы не можете загрузить файл в этот гребаный Аппстор ни с какой операционки кроме как с Мака!!!!
Это ж писец полный!
Тестфлай говорите?
Там такие случаи - его можно установить только на 8 и выше, но много пользователей, которые купили "нищебродские айфоны" с 16гигами и они тупо не могут сделать апгрейд, который требует 1гига свободной памяти, т.е. в этом гребаном эпле надо постоянно снимать носки.
И это мы не говорим о том что этот сраный Эпл тупо запрещает платежи в приложениях не через них. Пейпал? Нет! Карта? Нет! Только через нас и бы будем брать за это 30%.
Этот гребанный эпл забирает 30%!!!
Я не могу спокойно говорить про Аппстор и Эпл, это просто пи..ц.
И это гавно творит самая дорогая компания в мире!!!!!
Мы со своим приложением прошли этот квест в Аппсторе и теперь мы там, но я всегда буду говорить - Аппстор и Эпл-гавно!
Их ждёт участь Нокии, если они не изменятся.
Ты ещё вспомни как геморойно регистрацию проходить)
А вообще - смирись, сходи перекури и всё устаканится.
Все через это прошли и живы здоровы и платим 30% )
Parse - удобно для тех, кто не хочет заморачиваться с сервереыми проблемами: где арендовать, какой мощности ставить сервакам, внедрение sharding, увеличение мощности серверов по мере необходимости, поддержка серверов и т.д. - все берет на себя Parse.
Ваша задача: сделать на нем свою БД и юзать. Есть API для обращения к базе, или можно сразу по SDK стучаться к БД. Есть CloudCode - для операций на стороне сервера.
В общем, просто попробуйте и сами решите, нужно ли вам и для вашего приложения.
А почему в какой-то приватный стор нельзя залить?
Можно по подробнее? А какие сертификаты прописывать в приложении, чтобы они нормально вставали на устройства, будучи загруженными не через appstore?
Все так же, как для апп-стора, обычный провижн. Или я неверно понял вопрос?
Я не совсем правильно сформулировал. Архивировать под что: appstore, Adhoc, enterprise?
Немного поспешил - Distribution (последнему верить)
Правильно ли я понял:
1) в code signing приложения прописываем distribution
2) Архивируем для appstore
3) Выкладываем на свой сайт вместе с plist (или он и не нужен?)
4) Кидаем пользователю url
Непонятно: какая учетка должна быть у пользователя? Нужно ли где-то прописывать udid?
1. Да
2. Да
3. Ну условно свой, у нас он свой, например.
4. Да, линк для установки - он устанавливает и все. Трекаем установки через goo.gl :)
По сути, наш сервис - это корпоративный стор с плюшками. Вот :)
Все так хорошо описано, но остаются сомнения. А зачем тогда ad hoc и enterprise (по которому мне еще нужен ликбез) существуют? Я думал, что айфон просто откажется устанавливать приложение не из appstore без этих сертификатов
Вот вот... Я тоже что-то не пойму что к чему. Подробно распиши последовательность действий плиз. Простой чел по ссылке на *ipa фаил не сможет его установить 100%
Я не знаю, зачем они существуют :) я просто описал решение, которым пользуемся мы и с помощью которого дистрибютим приложения для своих клиентов. Можем попробовать так - пробуете демо-ипа собрать, подписанное distibution, а я пока попробую договориться эту аппу у нас разместить - заодно и проверим сомнения, если что.
Обещать не буду - но договориться попробую :)
Appstore
Ок. Заархивировал приложение для стора. Выложил на сайт вместе с plist и все? Любой сможет скачать?
Не любой. Либо тот кто знает url и имеет учетку, либо тот кому провайдер - отправит share-link - по которой будет доступен апп для скачивания.
Ахаха) Это тебе не андроид 😂
Хз, мы провайдим много приложений разного вида сложности, и давным-давно написали для себя сервис. Ему уже лет 5, вот чтоб не соврать :). Я че-т даже не думал, что это проблема для кого-то.
Для клиентов, для QA, что для Андроида, что для ОСи, а когда и свободное время было - прикрутили inappupdate и mdm для ОСи только, правда.
Может кто-нибудь развеять опасения про enterprise - присвоив приложению этот сертификат, я могу его отправить кому угодно? Нет ограничений по количеству устройств или по количеству рассылаемых программ? И никто не проверяет их содержание, никто не может на них пожаловаться, что приведет к отзыву лицензии? Допустим, делаю фотоальбому для выпускников богатых школ Москвы - 10-ки приложений и у каждого по 50 пользователей. Для этого будет достаточно enterprise?
Popcorn так распростаняется, говорят мильон загрузок) может сертификаты меняют, может эплу всё равно.
А знакомых с действующим enterprise нет? Очень хотелось бы обсудить возможности этой программы
Вопрос: Клиенты в вашем городе находятся? Или в вашей стране?
Если локально, то можете поднять им локальный сервак, с помощью которого и будет работать ваша программа.
И смело отправить приложение на общий стор. А если кто другой скачает, то у него не будет того сервака, и соответственно, не будет иметь доступа к всему фукнционалу приложения.
А чтобы прошла ревью Apple, мы на своем подобном сделали так: если приложение не нашел сервак, то включает демо версию, где есть только основные функции приложения, как триал.
Пока что остановились на том, чтобы загрузить в appstore "пустое" приложение, которое только при вводе определенного пароля на первой странице загружает контент. Да, придется для review дать этот пароль, но случайных пользователей это должно отбить. А потом, если приложение универсальное и будет заказываться разными клиентами (фк двор23, фк двор38,...) - давать клиентам новые пароли ( клиентам А давать пароль 111, который загружает контент А, а клиентам Б - пароль 222...). Хотя это усложняет разработку, потому что до этого никогда не занимался синхронизацией приложения с сервером. Может есть какие-нибудь сервисы, занимающиеся синхронизацией с приложением?
Сервисов много, например, Parse
Вот как раз про него и думал расспросить, потому что уже приглядывался. Пользовался? Удобно? На первый взгляд, как раз для тех, кто не привык синхронизировать с сервером.
Комментарий удален модератором
Комментарий удален модератором
Модеры, прикрутите кнопку "редактировать" к постам в течении 5 минут. Дочка разлила воду на клавиатуру и при нажатии кнопок печатаются другие :)