קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
במדריך הזה מוסבר איך להכין XCTest לבדיקה ב-Firebase Test Lab.
שלב 1: הגדרת המיקום של הנתונים הנגזרים בפרויקט
Xcode ממקם פריטי מידע שנוצרו בתהליך פיתוח (Artifact) של iOS שעברו קומפילציה, כולל כל הבדיקות שאתם יוצרים, בספרייה Derived
Data. אפשר להשאיר את מיקום ברירת המחדל של הספרייה, אבל בדרך כלל כדאי לבחור מיקום נגיש יותר לקבצים, במיוחד אם אתם מתכננים להריץ בדיקות עם Test Lab לעיתים קרובות:
פותחים את הפרויקט ב-Xcode.
בסרגל התפריטים של macOS, בוחרים באפשרות
קובץ > הגדרות הפרויקט...
משנים את התפריט הנפתח נתונים נגזרים ממיקום ברירת מחדל למיקום מותאם אישית.
בשדה שמתחת לתפריט הנפתח, בוחרים מיקום שבו Xcode יוציא את תוצאות הבדיקות. (זהו FOLDER_WITH_TEST_OUTPUT שלך)
שלב 2: בניית קובץ בדיקה כללי
Test Lab מריץ בדיקות יחידה ובדיקות ממשק משתמש באמצעות
המסגרת XCTest.
כדי להריץ את בדיקות ה-XCTest של האפליקציה במכשירי Test Lab, צריך לבנות אותה לבדיקה במכשיר iOS כללי:
בתפריט הנפתח של המכשיר בחלק העליון של חלון סביבת העבודה של Xcode, בוחרים באפשרות Generic iOS Device (מכשיר iOS כללי).
בסרגל התפריטים של macOS, בוחרים באפשרות מוצר > Build For > בדיקה.
אפשרות נוספת היא ליצור את XCTest משורת הפקודה.
משתמשים בפקודה הבאה בטרמינל:
מוודאים שכל הארטיפקטים באפליקציה ובבדיקה חתומים. לדוגמה, אפשר לעשות את זה דרך Xcode על ידי ציון הגדרות חתימה כמו פרופיל הקצאת הרשאות וזהות. מידע נוסף זמין במאמר בנושא חתימת קוד של אפל.
מריצים את הפקודה 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 הוא שם קובץ ההרצה בתוך התיקייה שלאחר פתיחת ה-zip. המספר הזה משתנה מפרויקט לפרויקט. הפלט הצפוי הוא 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_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun ודוחסים אותן.
שלב 5: (אופציונלי) הפעלת הבדיקה באופן מקומי
לפני שמריצים את הבדיקה באמצעות Test Lab, אפשר להריץ אותה באופן מקומי באמצעות מכשיר שמחובר ב-USB כדי לבדוק את ההתנהגות שלו:
[null,null,["עדכון אחרון: 2025-08-16 (שעון UTC)."],[],[],null,["# Run an XCTest\n\n\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----------------------------------------------------------\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-------------------------------------\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\n#### project\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\n#### workspace\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-------------------------------------\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---------------------------------------------------\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--------------------------------------------\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----------\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)."]]