Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
В этом руководстве описывается, как подготовить XCTest для тестирования в Firebase Test Lab .
Шаг 1 : Настройте расположение производных данных вашего проекта
Xcode помещает скомпилированные артефакты iOS, включая все созданные вами тесты, в каталог Derived Data. При желании можно сохранить расположение этого каталога по умолчанию, но часто бывает полезно выбрать более доступное место для файлов, особенно если вы планируете часто запускать тесты в Test Lab :
Откройте свой проект в Xcode.
В строке меню macOS выберите Файл > Настройки проекта...
Измените значение раскрывающегося списка «Производные данные» с «Расположение по умолчанию» на «Пользовательское расположение» .
В поле под раскрывающимся списком выберите место, куда Xcode будет выводить ваши тесты. (Это ваша FOLDER_WITH_TEST_OUTPUT )
Шаг 2 : Создание универсального тестового файла
Test Lab запускает модульные и UI-тесты с помощью фреймворка XCTest . Чтобы запустить XCTest-тесты вашего приложения на устройствах Test Lab , скомпилируйте его для тестирования на универсальном устройстве iOS:
В раскрывающемся списке устройств в верхней части рабочего пространства Xcode выберите Generic iOS Device .
В строке меню macOS выберите Продукт > Сборка для > Тестирование .
В качестве альтернативы вы можете собрать XCTest из командной строки. Для этого выполните следующую команду в терминале:
Убедитесь, что все артефакты в приложении и тесте подписаны. Например, это можно сделать через Xcode, указав параметры подписи, такие как профиль подготовки и идентификатор. Подробнее см. в статье «Подписание кода Apple» .
Проверьте подпись приложения, выполнив codesign --verify --deep --verbose /path/to/MyApp.app , где «MyApp» — имя приложения в распакованной папке. Это имя может отличаться для каждого проекта. Ожидаемый результат: MyApp.app: valid on disk .
Если вы используете XCUITest, вам необходимо проверить тест и средство запуска, выполнив codesign --verify --deep --verbose /path/to/MyTest-Runner.app , где «MyTest» — имя средства запуска в распакованной папке. Это имя может отличаться для каждого проекта. Ожидаемый результат MyTest-Runner.app: valid on disk .
Шаг 4 : Упакуйте свое приложение и протестируйте его для загрузки
После успешного завершения теста заархивируйте его для загрузки в Test Lab :
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Вы также можете упаковать свой тест, сжав тестовые файлы вручную:
Откройте Finder и перейдите в папку FOLDER_WITH_TEST_OUTPUT .
Откройте папку, в которой в качестве префикса указано имя вашего проекта, затем перейдите в папку Build/Products .
Выберите папки Debug-iphoneos и YOUR_SCHEME _iphoneos DEPLOYMENT_TARGET -arm64.xctestrun , а затем сожмите их.
Шаг 5 : (Необязательно) Запустите тест локально.
Перед запуском теста с помощью Test Lab вы можете запустить его локально с помощью подключенного по USB устройства, чтобы качественно проверить его поведение:
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-09-04 UTC."],[],[],null,["\u003cbr /\u003e\n\nThis guide describes how to prepare an XCTest for testing in\nFirebase Test Lab.\n\n**Step 1**: Configure your project's Derived Data location\n\nXcode places compiled iOS artifacts, including any tests you build, in a Derived\nData directory. It is possible to keep the default location for that directory,\nif you'd like, but it's often helpful to choose a more easily-accessible place\nfor the files, especially if you're going to be running tests with Test Lab\noften:\n\n1. Open your project in Xcode.\n2. In the macOS menu bar, select **File** \\\u003e **Project Settings...**\n3. Change the **Derived Data** drop-down from **Default Location** to **Custom Location**.\n4. In the field below the drop-down, select a location for Xcode to output your tests to. (This is your \u003cvar class=\"edit\" scope=\"FOLDER_WITH_TEST_OUTPUT\" translate=\"no\"\u003eFOLDER_WITH_TEST_OUTPUT\u003c/var\u003e)\n\n**Step 2**: Build a generic test file\n\nTest Lab runs unit tests and UI tests using the\n[XCTest](https://developer.apple.com/documentation/xctest) framework.\nTo run your app's XCTests on Test Lab devices, build it for testing on a\nGeneric iOS Device:\n\n1. From the device drop-down at the top of your Xcode workspace window, select **Generic iOS Device**.\n2. In the macOS menu bar, select **Product** \\\u003e **Build For** \\\u003e **Testing**.\n\nAs an alternative, you can build your XCTest from the command line.\nUse the following command in a terminal: \n\nproject \n\n```\nxcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \\\n -scheme YOUR_SCHEME \\\n -derivedDataPath FOLDER_WITH_TEST_OUTPUT \\\n -sdk iphoneos build-for-testing\n```\n\nworkspace \n\n```\nxcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \\\n -scheme YOUR_SCHEME \\\n -derivedDataPath FOLDER_WITH_TEST_OUTPUT \\\n -sdk iphoneos build-for-testing\n```\n\n**Step 3**: Sign your test and verify\n\n1. Make sure all artifacts in the app and test are signed. For example, you can\n do this through Xcode by specifying signing settings like provisioning profile\n and identity. For more information, see\n [Apple Code Signing](https://developer.apple.com/support/code-signing/).\n\n | **Note** : Test Lab re-signs your app with its own provisioning profile and certificate.\n2. Verify app signature by running\n `codesign --verify --deep --verbose /path/to/MyApp.app` where \"MyApp\" is the\n name of the app inside the unzipped folder. This varies for each project.\n Expected output is `MyApp.app: valid on disk`.\n\n3. If you are running an XCUITest, then you need to verify the test and runner\n by running `codesign --verify --deep --verbose /path/to/MyTest-Runner.app` where\n \"MyTest\" is the name of the runner inside the unzipped folder. This varies for\n each project. Expected output is `MyTest-Runner.app: valid on disk`.\n\n**Step 4**: Package your app and test for uploading\n\n1. After your test successfully builds, zip it for upload to Test Lab:\n\n ```\n cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \\\n zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun\n ```\n\nYou can also package up your test by compressing the test files manually:\n\n1. Open Finder and navigate to\n \u003cvar class=\"edit\" scope=\"FOLDER_WITH_TEST_OUTPUT\" translate=\"no\"\u003eFOLDER_WITH_TEST_OUTPUT\u003c/var\u003e.\n\n2. Open the folder that has your project name as a prefix, then navigate to\n `Build/Products` folder inside.\n\n3. Select the folders `Debug-iphoneos` and\n \u003cvar class=\"edit\" scope=\"YOUR_SCHEME\" translate=\"no\"\u003eYOUR_SCHEME\u003c/var\u003e`_iphoneos`\u003cvar class=\"edit\" scope=\"DEPLOYMENT_TARGET\" translate=\"no\"\u003eDEPLOYMENT_TARGET\u003c/var\u003e`-arm64.xctestrun`\n and then compress them.\n\n**Step 5**: (Optional) Run your test locally\n\nBefore running your test with Test Lab, you can run it locally with\na USB-connected device to quality check its behavior: \n\n```\nxcodebuild test-without-building \\\n -xctestrun \"Derived Data/Build/Products/YOUR_SCHEME.xctestrun\" \\\n -destination id=your-phone-id\n```\n\nNext steps\n\nUpload and run your test in the [Firebase console](/docs/test-lab/ios/firebase-console)\nor the [gcloud CLI](/docs/test-lab/ios/command-line)."]]