تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يوضّح هذا الدليل كيفية إعداد XCTest للاختبار في
Firebase Test Lab.
الخطوة 1: ضبط موقع "البيانات المشتقة" في مشروعك
يضع Xcode عناصر iOS المجمّعة، بما في ذلك أي اختبارات تنشئها، في دليل Derived Data. يمكنك الاحتفاظ بالموقع الجغرافي التلقائي لهذا الدليل،
إذا أردت ذلك، ولكن من المفيد غالبًا اختيار مكان يسهل الوصول إليه
للملفات، خاصةً إذا كنت ستجري اختبارات باستخدام Test Lab
بشكل متكرر:
افتح مشروعك في Xcode.
في شريط القوائم على جهاز macOS، انقر على
ملف (File) > إعدادات المشروع (Project Settings...).
غيِّر القائمة المنسدلة البيانات المشتقة من الموقع الجغرافي التلقائي إلى الموقع الجغرافي المخصّص.
في الحقل أسفل القائمة المنسدلة، اختَر موقعًا جغرافيًا ليتم فيه إخراج اختباراتك في Xcode. (هذا هو
FOLDER_WITH_TEST_OUTPUT)
الخطوة 2: إنشاء ملف اختبار عام
تُشغّل Test Lab اختبارات الوحدات واختبارات واجهة المستخدم باستخدام إطار عمل XCTest.
لتشغيل اختبارات XCTest الخاصة بتطبيقك على أجهزة Test Lab، أنشئ التطبيق لاختباره على جهاز iOS عام باتّباع الخطوات التالية:
من القائمة المنسدلة للأجهزة في أعلى نافذة مساحة عمل Xcode، اختَر
جهاز iOS عام.
في شريط القوائم على جهاز macOS، اختَر
المنتج (Product) > إنشاء إصدار > الاختبار (Testing).
بدلاً من ذلك، يمكنك إنشاء 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_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun، ثم اضغطهما.
الخطوة 5: (اختيارية) تشغيل الاختبار على جهازك
قبل إجراء الاختبار باستخدام Test Lab، يمكنك إجراؤه على جهازك باستخدام كابل USB للتحقّق من جودة سلوكه:
تاريخ التعديل الأخير: 2025-08-16 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-16 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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)."]]