Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Este guia descreve como preparar um XCTest para testes em
Firebase Test Lab.
Etapa 1: configurar o local dos dados derivados de seu projeto
O Xcode coloca os elementos do iOS compilados, incluindo todos os testes que você cria, em um
diretório de dados derivados. É possível manter o local padrão para esse diretório,
mas é útil escolher um local mais acessível para os
arquivos, especialmente se você pensa em executar testes pelo Test Lab
com frequência:
Abra seu projeto no Xcode.
Selecione File > Project Settings… na barra de menus do macOS.
Altere o menu suspenso Derived Data de Default Location para Custom Location.
No campo abaixo do menu suspenso, selecione um local onde o Xcode possa guardar os testes. Esta é sua pasta FOLDER_WITH_TEST_OUTPUT.
Etapa 2: criar um arquivo de teste genérico
O Test Lab executa testes de unidade e de interface usando o
framework de XCTest.
Para executar os XCTests do seu app em dispositivos do Test Lab, crie-os para que sejam testados em um
dispositivo iOS genérico:
No menu suspenso do dispositivo, na parte de cima da janela do espaço de trabalho do Xcode, selecione Generic iOS Device.
Na barra de menu do macOS, selecione Product > Build For > Testing.
Como alternativa, você pode criar o XCTest na linha de comando.
Use o seguinte comando em um terminal:
Verifique se todos os artefatos no app e teste estão assinados. Por exemplo, é possível fazer isso pelo Xcode especificando configurações de assinatura, como provisionamento de perfil e identidade. Para mais informações, consulte Assinatura de código da Apple.
Verifique a assinatura do app executando codesign --verify --deep --verbose /path/to/MyApp.app, em que "MyApp" é o nome do app dentro da pasta descompactada. Isso varia de acordo com o projeto.
A saída esperada é MyApp.app: valid on disk.
Se você estiver executando um XCUITest, será necessário verificar o teste e o executor executando codesign --verify --deep --verbose /path/to/MyTest-Runner.app, em que "MyTest" é o nome do executor dentro da pasta descompactada. Isso varia de acordo com o projeto. A saída esperada é MyTest-Runner.app: valid on disk.
Etapa 4: criar um pacote do app e testar o upload
Depois de criar o teste, coloque em uma pasta zipada e faça upload para o Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Também é possível criar um pacote do teste compactando os arquivos de teste manualmente:
Abra o Finder e navegue até FOLDER_WITH_TEST_OUTPUT.
Abra a pasta que tem o nome do projeto como prefixo e navegue até a pasta Build/Products.
Selecione as pastas Debug-iphoneos e YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun e compacte-as.
Etapa 5: executar o teste no local (opcional)
Antes de executar seu teste com o Test Lab, é possível executá-lo localmente com um dispositivo conectado via USB para verificar a qualidade do comportamento:
[null,null,["Última atualização 2025-08-16 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)."]]