Поделиться через


Развертывание и тестирование Xamarin.iOS — устранение неполадок

Подписывание и подготовка кода

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

  • Большим командам не следует использовать показанную ниже кнопку "Исправить ошибки" в Xcode:

    The Fix Issues dialog

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

  • Поддерживайте порядок в связке ключей, удаляйте просроченные профили и сертификаты. Корпоративные сертификаты действуют три года, другие — только один год. Сертификаты не продлеваются, так что нужно будет создавать новые сертификаты незадолго до истечения срока действия старых. Не забывайте отменять и удалять старые сертификаты и назначать приложениям новые.

  • Удаляйте старые профили подготовки сразу после установки новых. В этом случае Visual Studio для Mac не придется самостоятельно решать, какой профиль нужно использовать. Чтобы добиться этого, сначала удалите профиль в Центре разработчиков Apple, а затем перейдите к параметрам > просмотра сведений о вашей учетной записи>.... Выберите профиль подготовки и нажмите кнопку "Показать" в Finder. Это покажет расположение профиля в файловой системе Mac, откуда вы сможете удалить его с помощью Finder.

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

  • После установки нового сертификата или профиля подготовки перезапустите Xcode и Visual Studio/Visual Studio для Mac.

TestFlight

Бывает, что тестирование проходит не так гладко, как предполагалось. Описанные ниже действия помогут устранить проблемы с помощью TestFlight:

  • Сервис TestFlight доступен только для приложений, нацеленных на iOS 8 и более поздние версии.

  • У вас должен быть профиль распространения App Store с разрешением бета-версии.

  • Окно New iOS App submission (Отправка нового приложения iOS) должно отображать ровно ту же информацию, что содержится в файле Info.plist приложения, и в нем должны быть заполнены все разделы. Перед отправкой в TestFlight необходимо указать для приложения значки.

  • Новая сборка появляется в iTunes Connect через 1–5 минут после отправки.

  • Для каждой версии вашего приложения должен быть включен переключатель бета-тестирования TestFlight Beta Testing.

  • Для каждого члена команды разработчиков, который также является внутренним тестировщиком, должен быть включен переключатель Internal Tester (Внутренний тестировщик).

  • Пользователи, которые относятся к другой учетной записи iTunes Connect или являются ее владельцами, не могут быть внутренними тестировщиками. Их можно добавлять только как внешних тестировщиков.

  • Внутренние и внешние пользователи добавляются, выбираются и приглашаются по отдельности. Каждый список обрабатывается отдельно.

  • Корпорация Apple должна утвердить каждую сборку, которая будет предоставляться внешним тестировщикам. При изменении версии сборки требуется повторная проверка бета-версии со стороны Apple. При изменении номера сборки проверка необязательна.

  • В сборки, предоставляемые внешним тестировщикам, необходимо добавлять метаданные. К этому можно получить доступ, щелкнув номер сборки в Мои приложения > предварительной версии.

  • На рассмотрение можно предоставлять только две сборки в день. Поскольку изменение версии требует повторной проверки, номера версий можно менять только два раза в день.

Автоматическое обратное копирование пакетов приложений в Windows

При создании приложений iOS в Visual Studio и агенте сборки Mac пакет APP не копируется обратно на компьютер Windows. В инструменты Xamarin для Visual Studio 7.4 добавлено новое свойство CopyAppBundle, позволяющее сборкам CI копировать пакеты APP обратно в Windows.

Чтобы использовать эту функцию, добавьте свойство CopyAppBundle в CSPROJ-файл в группе свойств, к которой следует применить эту функцию. Например, в приведенном ниже примере показано копирование пакета APP обратно на компьютер Windows для сборки Отладка, предназначенной для iPhoneSimulator:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <CopyAppBundle>true</CopyAppBundle>
</PropertyGroup>