แอป Apple และ Bazel

หน้านี้มีแหล่งข้อมูลที่จะช่วยคุณใช้ Bazel เพื่อสร้างโปรเจ็กต์ macOS และ iOS โดยจะลิงก์ไปยังบทแนะนำ กฎการสร้าง และข้อมูลอื่นๆ ที่เฉพาะเจาะจงสำหรับการใช้ Bazel เพื่อสร้างและทดสอบแพลตฟอร์มเหล่านั้น

การทำงานกับ Bazel

แหล่งข้อมูลต่อไปนี้จะช่วยคุณทำงานกับ Bazel ในโปรเจ็กต์ macOS และ iOS

การย้ายข้อมูลไปยัง Bazel

หากปัจจุบันคุณสร้างโปรเจ็กต์ macOS และ iOS ด้วย Xcode ให้ทำตามขั้นตอนในคู่มือการย้ายข้อมูลเพื่อเริ่มสร้างโปรเจ็กต์ด้วย Bazel

แอปและกฎใหม่ของ Apple

หมายเหตุ: การสร้างกฎใหม่เหมาะสำหรับสถานการณ์การสร้างและการทดสอบขั้นสูง คุณไม่จำเป็นต้องใช้กฎใหม่เมื่อเริ่มต้นใช้งาน Bazel

โมดูล ส่วนย่อยการกำหนดค่า และผู้ให้บริการต่อไปนี้จะช่วยคุณ ขยายขีดความสามารถของ Bazel เมื่อสร้างโปรเจ็กต์ macOS และ iOS

การเลือก Xcode

หากบิลด์ต้องใช้ Xcode, Bazel จะเลือกเวอร์ชันที่เหมาะสมตามแฟล็ก --xcode_config และ --xcode_version โดย --xcode_config จะใช้ชุดเวอร์ชัน Xcode ที่มีและตั้งค่าเวอร์ชันเริ่มต้นหากไม่ได้ส่ง --xcode_version แฟล็ก --xcode_version จะลบล้างค่าเริ่มต้นนี้ ตราบใดที่ตั้งค่าเป็นเวอร์ชัน Xcode ที่แสดงในเป้าหมาย --xcode_config

หากไม่ได้ส่ง --xcode_config, Bazel จะใช้ XcodeVersionConfig ที่สร้างขึ้นโดยอัตโนมัติซึ่งแสดง เวอร์ชัน Xcode ที่มีในเครื่องโฮสต์ เวอร์ชันเริ่มต้นคือเวอร์ชัน Xcode ที่ใหม่ที่สุด ซึ่งเหมาะสำหรับการดำเนินการในเครื่อง

หากคุณทำการสร้างระยะไกล คุณควรตั้งค่า --xcode_config เป็นเป้าหมาย xcode_config ที่แอตทริบิวต์ versions เป็นรายการเป้าหมาย xcode_version ที่มีระยะไกล และแอตทริบิวต์ default เป็นหนึ่งใน xcode_versionsเหล่านี้

หากคุณใช้การดำเนินการแบบไดนามิก คุณควรตั้งค่า --xcode_config เป็นเป้าหมาย xcode_config ที่แอตทริบิวต์ remote_versions เป็นเป้าหมาย available_xcodes ที่มีเวอร์ชัน Xcode ที่มีระยะไกล และแอตทริบิวต์ local_versions เป็นเป้าหมาย available_xcodes ที่มีเวอร์ชัน Xcode ที่มีในเครื่อง สำหรับ local_versions คุณอาจต้องการใช้ @local_config_xcode//:host_available_xcodes ที่สร้างขึ้นโดยอัตโนมัติ เวอร์ชัน Xcode เริ่มต้นคือเวอร์ชันที่มีร่วมกันที่ใหม่ที่สุด หากมี ไม่เช่นนั้นจะเป็นค่าเริ่มต้นของเป้าหมาย local_versions หากต้องการใช้ค่าเริ่มต้น local_versions เป็นค่าเริ่มต้น ให้ส่ง --experimental_prefer_mutual_default=false