Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Z tego przewodnika dowiesz się, jak przygotować test XCTest do testowania w Firebase Test Lab.
Krok 1. Skonfiguruj lokalizację danych pochodnych projektu
Xcode umieszcza skompilowane artefakty iOS, w tym wszystkie utworzone testy, w katalogu DerivedData. Możesz zachować domyślną lokalizację tego katalogu, ale często warto wybrać łatwiej dostępną lokalizację plików, zwłaszcza jeśli zamierzasz często przeprowadzać testy z użyciem Test Lab:
Otwórz projekt w Xcode.
Na pasku menu macOS kliknij Plik > Ustawienia projektu…
W menu Dane pochodne zmień opcję z Lokalizacja domyślna na Lokalizacja niestandardowa.
W polu pod menu wybierz lokalizację, w której Xcode ma zapisywać wyniki testów. (To Twój
FOLDER_WITH_TEST_OUTPUT)
Krok 2. Utwórz ogólny plik testowy
Test Lab uruchamia testy jednostkowe i testy interfejsu za pomocą platformy XCTest.
Aby uruchomić testy XCTest aplikacji na urządzeniach Test Lab, skompiluj ją do testowania na ogólnym urządzeniu z iOS:
W menu urządzenia u góry okna obszaru roboczego Xcode wybierz Generic iOS Device (Ogólne urządzenie z iOS).
Na pasku menu macOS kliknij Produkt > Kompilacja dla > Testowanie.
Możesz też utworzyć XCTest z poziomu wiersza poleceń.
W terminalu użyj tego polecenia:
Upewnij się, że wszystkie artefakty w aplikacji i teście są podpisane. Możesz to zrobić na przykład w Xcode, określając ustawienia podpisywania, takie jak profil administracyjny i tożsamość. Więcej informacji znajdziesz w artykule Podpisywanie kodu Apple.
Sprawdź podpis aplikacji, uruchamiając polecenie
codesign --verify --deep --verbose /path/to/MyApp.app, gdzie „MyApp” to nazwa aplikacji w rozpakowanym folderze. Zależy to od projektu.
Oczekiwane dane wyjściowe to MyApp.app: valid on disk.
Jeśli uruchamiasz test XCUITest, musisz zweryfikować test i uruchamiający go program, wpisując codesign --verify --deep --verbose /path/to/MyTest-Runner.app, gdzie „MyTest” to nazwa uruchamiającego program w rozpakowanym folderze. Zależy to od projektu. Oczekiwane dane wyjściowe to MyTest-Runner.app: valid on disk.
Krok 4. Spakuj aplikację i przetestuj ją pod kątem przesyłania
Po pomyślnym utworzeniu testu spakuj go w formacie ZIP, aby przesłać go na platformę Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Możesz też spakować test, ręcznie kompresując pliki testowe:
Otwórz Findera i przejdź do folderu FOLDER_WITH_TEST_OUTPUT.
Otwórz folder, którego nazwa zaczyna się od nazwy projektu, a następnie przejdź do folderu Build/Products.
Wybierz foldery Debug-iphoneos i YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun, a następnie je skompresuj.
Krok 5. (Opcjonalnie) Uruchom test lokalnie
Zanim przeprowadzisz test za pomocą Test Lab, możesz go uruchomić lokalnie na urządzeniu podłączonym przez USB, aby sprawdzić jego działanie:
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-09-05 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)."]]