2012-06-05 4 views
4

Я пытаюсь установить ad-hoc-приложение через testflight, поэтому я создаю ad-hoc-обеспечение с портала apple, я создаю .ipa, а затем отправляю его в testflight.приложение testflight закрывается при запуске

Проблема в том, что я могу установить приложение из testflight (я не получаю никаких ошибок), но когда он запускает приложение, он закрывается без предупреждения или сообщений.

После некоторого теста я подключил устройство к xcode, а затем нажал кнопку «Настроить для разработки» (или что-то вроде этого, я не помню правильно, потому что я не могу снова увидеть эту опцию). После этого приложение не закрылось при запуске, и оно работает хорошо.

Проблема в том, что я не могу распространять приложение через testflight, если мне нужно включить разработку с помощью xcode для любого устройства!

Почему у меня такое поведение? Я делаю что-то неправильно?

Спасибо

+0

У меня такая же проблема. Но я создаю свой файл ipa с профилем подготовки приложений. –

ответ

1

Если вы можете установить приложение из TestFlight без ошибок, то устройство было правильно перечисленных в профиле инициализации. Ваша проблема - это что-то другое.

Попытайтесь посмотреть журналы сбоев с устройства, чтобы узнать, что пошло не так. вы можете их извлечь и символизировать в Xcode.

Коррекция ответа MusiGenesis: Это не нормально для специальных сборок, чтобы не работать с push-уведомлениями! Вам просто нужно настроить и использовать систему правильно.

Общие источники ошибок, когда ваш одноранговые сборки не получающие уведомлений толчка:

  • Вы не генерируют новый профиль обеспечения после включения толчка для вашего приложения. Это приводит к тому, что принятый токен ввода равен нулю.
  • Вы используете сертификаты разработки для подключения к серверам APNS. Специальные сборки считаются сборками дистрибутивов, поэтому вы должны использовать свои производственные ключи.
  • Вы отправляете соединение токенов разработки (от разработчиков) и производственных токенов (от специальных сборок) до службы APNS. Это приводит к тому, что вся серия push-уведомлений будет отбрасываться сервером без пауз. Храните базы данных разработки, adhoc и производственного токена полностью отдельно, чтобы этого избежать. Невозможно определить, какие токены отравляют вашу партию, поэтому вам нужно очистить их и убедиться, что вставлен только правильный тип токена.

Я всегда держу 3 экземпляра backend для приложения, которое необходимо зарегистрировать для нажатия. Один для разработки, один для специальных сборок и один для сборки в App Store. Например, вы можете сохранить отдельные конечные точки API в сети по адресу dev.mybackend.com, staging.mybackend.com и production.mybackend.com, поддерживаемых различными экземплярами баз данных, чтобы их изолировать.

В проекте Xcode у меня тогда есть отдельные конфигурации компоновки для этих типов сборок и свопинг правильного бэкэнда при использовании макросов препроцессора. Отдельные конфигурации сборки также удобны, если вы хотите, чтобы ваши сборки разработчиков не сообщали о неправильной аналитике в производственную учетную запись, что автоматически используются профили подготовки и т. Д. И т. Д.

+0

Благодарим вас за ответ. У меня есть два экземпляра отдельно: один на моей локальной машине для разработки и один на другой машине (общедоступный) для adhoc/production. В сети Я использую файл .pem в сочетании с aps_production.cer и личным ключом, используемым для распределения ресурсов ad-hoc. Я задал еще один вопрос для проблемы APNS (я не знаю, является ли та же проблема): http://stackoverflow.com/questions/10900992/apple-push-notification-not-working-with-ad-hoc- build –

+0

Это может быть вашей проблемой. Ваш .pem-файл должен содержать сертификат aps_production.cer и закрытый ключ, на котором был основан запрос подписи сертификата. Если вы не указали ключ вручную, когда вы запросили сертификат push, он бы сгенерировал новый ключ для вас. Таким образом, ключ, используемый для подписи кода (ваш ключ разработчика), может отличаться от ключа, используемого для push. На самом деле вы, вероятно, хотите, чтобы они были разными, поэтому у вас нет личного ключа для идентификации разработчика, лежащего на каком-то случайном сервере в дикой природе. – Heiberg

+0

Проблема APNS была неправильным портом (я использовал порт обратной связи!), Теперь он работает корректно (APNS), но все еще остается ошибкой с testflight –

1

Это старый вопрос с 2012 года, но В последнее время у меня была такая же проблема. И я понял, что это создало проблему.Я использовал фреймворк OCMock, и когда я обновил его до версии 3.0, у меня возникла такая проблема. Я вернул его обратно, и он отлично работает. Я не знаю, что в OCMock 3.0 делает эту проблему еще. Если я это выясню, я напишу здесь еще раз.

http://ocmock.org/ocmock3/

Смежные вопросы