با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این راهنما نحوه آماده سازی XCTest برای آزمایش در Firebase Test Lab را شرح می دهد.
مرحله 1 : مکان داده های مشتق شده پروژه خود را پیکربندی کنید
Xcode مصنوعات iOS کامپایل شده را، از جمله هر آزمایشی که میسازید، در فهرستی از دادههای مشتق شده قرار میدهد. در صورت تمایل میتوان مکان پیشفرض را برای آن دایرکتوری نگه داشت، اما اغلب اوقات انتخاب مکانی با دسترسی آسانتر برای فایلها مفید است، به خصوص اگر قرار است اغلب آزمایشهایی را با Test Lab انجام دهید:
پروژه خود را در Xcode باز کنید.
در نوار منوی macOS، File > Project Settings را انتخاب کنید...
منوی کشویی داده های مشتق شده را از محل پیش فرض به مکان سفارشی تغییر دهید.
در قسمت زیر کشویی، مکانی را برای Xcode انتخاب کنید تا آزمایشهای شما در آن خروجی باشد. (این FOLDER_WITH_TEST_OUTPUT شماست)
مرحله 2 : یک فایل آزمایشی عمومی بسازید
Test Lab تست های واحد و تست های UI را با استفاده از چارچوب XCTest اجرا می کند. برای اجرای XCTests برنامه خود در دستگاههای Test Lab ، آن را برای آزمایش بر روی یک دستگاه iOS عمومی بسازید:
از منوی کشویی دستگاه در بالای پنجره فضای کاری Xcode خود، Generic iOS Device را انتخاب کنید.
در نوار منوی macOS، Product > Build For > Testing را انتخاب کنید.
به عنوان یک جایگزین، می توانید XCTest خود را از خط فرمان بسازید. از دستور زیر در ترمینال استفاده کنید:
مطمئن شوید که تمام مصنوعات موجود در برنامه و تست امضا شده اند. به عنوان مثال، میتوانید این کار را از طریق Xcode با تعیین تنظیمات امضا مانند تهیه نمایه و هویت انجام دهید. برای اطلاعات بیشتر، Apple Code Signing را ببینید.
امضای برنامه را با اجرای codesign --verify --deep --verbose /path/to/MyApp.app تأیید کنید که در آن "MyApp" نام برنامه داخل پوشه زیپ نشده است. این برای هر پروژه متفاوت است. خروجی مورد انتظار MyApp.app: valid on disk .
اگر XCUITest را اجرا می کنید، باید تست و runner را با اجرای 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 اجرا کنید تا کیفیت رفتار آن را بررسی کنید:
تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی."],[],[],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)."]]