Проблемы с получением TestFlight для работы с приложением Monotouch - PullRequest
2 голосов
/ 23 октября 2011

Я пытаюсь заставить TestFlight работать с моим приложением MonoTouch (Monotouch 5, IOS5) и не нашел никакой документации MonoTouch для TestFlight.

Вот что я попробовал до сих пор.

  1. Загруженные привязки TestFlight из https://github.com/mono/monotouch-bindings/tree/master/TestFlight - после добавления этого в качестве ссылки казалось, что методы TestFlight на самом деле вообще не были выставлены, поэтому я искал другой набор привязок.

  2. Загрузил привязки TestFlight от ayoung из https://github.com/ayoung/monotouch-testflight. Построил monotouch-testflight.dll с Make, скопировал его в проект и добавил в References - на этот раз все методы TestFlight были видны.

  3. Добавлен libTestFlight.a в папку Lib в моем проекте MonoTouch с установленным для BuildAction значением Nothing. (У меня также есть RedLaser).

  4. В течение года я включил компилятор LLVM (с ARMv7); ayoung заявляет, что это необходимо. В опциях проекта -> iPhone Build мои дополнительные аргументы mtouch:

    -cxx -nosymbolstrip -nostrip -gcc_flags "-lgcc_eh -framework SystemConfiguration

Примечание: приложение работало с RedLaser до того, как TestFlight был добавлен в проект.

Здесь -lgcc_eh, как в течение года - я не смог выяснить, что это такое и для чего оно. Возможно, у меня должен быть gcc_eh.dll (?), Но я не AFAIK, и я не знаю, где я мог найти такую ​​вещь.

  1. В Main.cs я добавил

    с использованием TestFlightSdk;

и в FinishedLaunching я добавил

TestFlight.TakeOff( "(downloaded team token is here)" );
  1. Скомпилировано и установлено без ошибок (Release | iPhone).

  2. Когда я сейчас запускаю приложение на устройстве, оно немедленно завершает работу без какой-либо диагностики, которую я могу обнаружить.

  3. Приложение также немедленно закрывается, если оно скомпилировано в Debug | iPhone. В этом случае, однако, если я выключаю LLVM, несмотря на ограничения в течение года, то в выходных данных приложения я вижу следующее:

    TestFlight: начался сеанс TestFlight: установлены обработчики сбоев Тема начата: Тема начата: TestFlight: командный токен распознан TestFlight: конец сессии TestFlight: связь с TestFlight в настоящее время отключена, проверьте подробности в своем журнале ранее

Это может быть потому, что я еще не загрузил .ipa файл приложения в TestFlight ?? (Однако в этом случае приложение запускается.)

  1. Я пытаюсь выяснить, как сгенерировать файл .ipa. Документация по TestFlight показывает, как это сделать из XCode, но мое приложение предназначено только для кода без .xib, так что эта опция, кажется, отсутствует? В документации TestFlight также показано, как создать файл .ipa из файла .app. Вот моя проблема, как я возлагаю руки на файл .app для сборки устройства?

Любая помощь по этим вопросам была бы очень признательна.

Ответы [ 4 ]

5 голосов
/ 23 октября 2011

-lgcc_eh требуется для включения библиотеки GCC обработки исключений, которая часто требуется, если вы связываетесь с библиотеками C ++.

У вас также есть множество -рамок , которые не выглядят необходимыми (MonoTouch уже добавляет их) - , но это не будет причиной вашей проблемы . Если вам интересно, что mtouch использует / предоставляет во время компиляции, вы можете добавить «-v -v -v» к «дополнительным аргументам касания» в опциях вашего проекта (и посмотреть на результаты сборки ).

Что касается основной проблемы, я думаю, что это связано с тем фактом, что обработчики TestFlight несовместимы (в настоящее время) с MonoTouch (5.0). Обработка исключений MonoTouch уже предоставляет свои собственные обработчики сбоев (например, для NullReferenceException), и добавление других обработчиков должно выполняться с осторожностью (как и когда это делать, очень важно). Вероятно, поэтому текущие привязки в привязках monotouch не включают все функции, доступные в testflight.

Я предлагаю вам открыть отчет об ошибке на bugzilla.xamarin.com, и вы будете получать по электронной почте обновления о ходе работы (и точно знать, когда эта функция станет доступной).

p.s. попытайтесь разбить свои проблемы на несколько вопросов (переполнение стека), вы, скорее всего, получите ответы таким образом, поскольку не все знают все ответы на все ваши вопросы: -)

2 голосов
/ 13 ноября 2011

Распространение через testflightapp - это не то же самое, что использование testflightsdk в вашем приложении.

Первый - щелкнуть кнопку загрузки в testflight в меню.

Во-вторых, включая фактический SDK. В последние несколько дней они (xamarin) выпустили новые привязки testflight sdk. Это не требует от вас изменения параметров mtouch. Так что включить его будет намного проще.

Лично мне очень нравится testflight sdk ... Помогает мне лучше (пусть) тестирует мои приложения.

2 голосов
/ 24 октября 2011

Я шел по неправильному пути полностью. Наконец нашел документацию MonoTouch, в которой описана встроенная поддержка TestFlight:

http://docs.xamarin.com/ios/tutorials/TestFlight_Support

Попробую это, это должно решить проблему.

0 голосов
/ 25 апреля 2012

Судя по звуку этого отчета об ошибке Xamarin , создается впечатление, что даже если вы получаете встроенную библиотеку TestFlight SDK, работающую с привязками MonoTouch или , связывающими ее Вы сами по-прежнему будете испытывать проблему, заключающуюся в том, что TestFlight не собирается должным образом обрабатывать какие-либо исключения NullReference и просто собирается завершить работу приложения при его обнаружении.Это делает весь смысл TestFlight SDK бессмысленным до тех пор, пока а) MonoTouch не будет переопределен для работы с ним, или б) TestFlight не выпустит управляемую библиотеку Mono.

Не поймите меня неправильно, Я ДЕЙСТВИТЕЛЬНОхотите иметь возможность использовать TestFlight SDK с MonoTouch.Я бился головой о стену, пытаясь заставить ее работать весь день.Что-то не работает, когда я вызываю метод TestFlight.TakeOff ("MyKey").Контроль возвращается из метода, но затем происходит сбой вскоре после этого ... примерно через 1 секунду после вызова.Странно.

Если бы кто-то еще сработал, я бы хотел услышать о вашем опыте.Спасибо.

...