กฎ Objective-C

วันที่ รายงานปัญหา ดูแหล่งที่มา ตอนกลางคืน · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

กฎ

j2objc_library

ดูแหล่งที่มาของกฎ
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, exec_compatible_with, exec_properties, features, jre_deps, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

กฎนี้ใช้ J2ObjC เพื่อแปลซอร์สของ Java ไปยัง Objective-C ซึ่งจะสามารถใช้เป็นทรัพยากร Dependency ของ objc_library และ objc_binary กฎ คุณสามารถดูข้อมูลโดยละเอียดเกี่ยวกับ J2ObjC ได้ที่ เว็บไซต์ J2ObjC

สามารถระบุแฟล็กรูปแบบ J2ObjC ที่กำหนดเองได้โดยใช้แฟล็กบิลด์ --j2objc_translation_flags ในบรรทัดคำสั่ง

โปรดทราบว่าไฟล์ที่แปลแล้วซึ่งรวมอยู่ในเป้าหมาย j2objc_library จะ คอมไพล์โดยใช้การกำหนดค่าการคอมไพล์เริ่มต้น ซึ่งมีการกำหนดค่าเดียวกันกับแหล่งที่มาของ กฎ objc_library ที่ไม่มีตัวเลือกการรวบรวมที่ระบุในแอตทริบิวต์

นอกจากนี้ ระบบจะกรองโค้ดที่สร้างขึ้นที่ซ้ำกันออกที่ระดับเป้าหมาย ไม่ใช่ระดับแหล่งที่มา ถ้าคุณมี 2 แบบ เป้าหมาย Java ต่างๆ ที่มีไฟล์แหล่งที่มา Java เดียวกัน คุณอาจเห็นข้อผิดพลาดเกี่ยวกับสัญลักษณ์ที่ซ้ำกัน ที่เวลาของลิงก์ วิธีที่ถูกต้องในการแก้ไขปัญหานี้คือย้ายไฟล์ที่มา Java ที่ใช้ร่วมกันไปยัง เป้าหมายร่วมที่พึ่งพิงได้

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการ j2objc_library, java_library เป้าหมาย java_import และ java_proto_library ที่มี ไฟล์ Java ที่จะแปลงเป็น Objective-C

เป้าหมาย java_library และ java_import ทั้งหมดที่ทำได้ เปลี่ยนผ่าน exports, deps และ runtime_deps จะได้รับการแปลและคอมไพล์ รวมถึงไฟล์ที่สร้างจากการประมวลผลคำอธิบายประกอบ Java ไม่รองรับเป้าหมายโค้ด>java_import ที่ไม่มี srcjar ที่ระบุ

การแปล J2ObjC ทำงานแตกต่างกันไปตามประเภทของซอร์ส Java ต้นฉบับ ไฟล์ที่รวมอยู่ในการปิดแบบทรานซิทีฟ สำหรับไฟล์ต้นฉบับ .java ไฟล์ที่รวมอยู่ใน srcs จาก java_library ซึ่งเป็นไฟล์ต้นฉบับ .h และ .m ที่เกี่ยวข้อง จะสร้างขึ้น สำหรับ Jar แหล่งที่มาแต่ละรายการที่รวมอยู่ใน srcs ของ java_library หรือ srcjar จาก java_import ระบบจะสร้างไฟล์ต้นฉบับ .h และ .m ที่เกี่ยวข้องด้วยโค้ดทั้งหมดสำหรับ jar นั้น

ผู้ใช้จะนำเข้าไฟล์ส่วนหัวที่ J2ObjC สร้างขึ้นในโค้ดได้ เส้นทางการนำเข้าสำหรับ ไฟล์เหล่านี้เป็นเส้นทางที่สัมพันธ์กับรูทของอาร์ติแฟกต์ Java ดั้งเดิม ตัวอย่างเช่น //some/package/foo.java มีเส้นทางการนำเข้าเป็น some/package/foo.h และ //some/package/bar.srcjar มีsome/package/bar.h

หากกฎ protocol_library อยู่ระหว่างการปิดแบบทรานซิทีฟของกฎนี้ โปรโตคอล J2ObjC จะ สร้างขึ้น คอมไพล์ และเชื่อมโยงกันที่ระดับไบนารี สำหรับ Proto //some/proto/foo.proto ผู้ใช้สามารถอ้างอิงโค้ดที่สร้างขึ้นโดยใช้การนำเข้า เส้นทาง some/proto/foo.j2objc.pb.h

entry_classes

รายการสตริง ค่าเริ่มต้นคือ []

รายการคลาส Java ที่คู่ ObjC ที่แปลแล้วจะอ้างอิงโดยตรง ตามรหัส ObjC ของผู้ใช้ ต้องใช้แอตทริบิวต์นี้หากแฟล็ก --j2objc_dead_code_removal เปิดอยู่ คลาส Java ควรมีการระบุไว้ในชื่อตามรูปแบบบัญญัติตามที่กำหนดโดย Java ข้อกำหนดภาษา เมื่อระบุ Flag --j2objc_dead_code_removal ระบบจะแสดงรายการคลาสของรายการ จะถูกเก็บแบบทันทีและใช้เป็นจุดแรกเข้าเพื่อทำการวิเคราะห์โค้ดที่ใช้งานไม่ได้ จากนั้นคลาสที่ไม่ได้ใช้งานจะถูกนำออกจาก App Bundle ของ ObjC
jre_deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไลบรารีการจำลอง JRE เพิ่มเติมที่จำเป็นสำหรับโค้ด Java ทั้งหมดที่แปลโดยค่านี้ กฎ j2objc_library ข้อ มีเพียงฟังก์ชันหลักของ JRE เท่านั้นที่ลิงก์โดยค่าเริ่มต้น

objc_import

ดูแหล่งที่มาของกฎ
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

กฎนี้สรุปไลบรารีแบบคงที่ซึ่งรวบรวมไว้แล้วในรูปแบบ .a ไฟล์ นอกจากนี้ยังช่วยให้ส่งออกส่วนหัวและทรัพยากรโดยใช้ แอตทริบิวต์ที่ objc_library รองรับ

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของเป้าหมายที่เป้าหมายนี้ใช้อยู่
hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

เผยแพร่รายการไฟล์ส่วนหัว C, C++, Objective-C และ Objective-C++ โดยไลบรารีนี้ที่จะรวมโดยแหล่งที่มาในกฎที่ไม่อ้างอิง

ส่วนหัวเหล่านี้อธิบายถึงอินเทอร์เฟซสาธารณะสำหรับไลบรารี และจะ เปิดให้รวมโดยแหล่งที่มาในกฎนี้หรือตามกฎที่เกี่ยวข้อง กฎ ส่วนหัวที่ไคลเอ็นต์ของไลบรารีนี้ไม่ได้ให้รวมไว้ ควรแสดงในแอตทริบิวต์ srcs แทน

ระบบจะคอมไพล์เหล่านี้แยกต่างหากจากแหล่งที่มาหากมีการเปิดใช้โมดูล

บูลีน ค่าเริ่มต้นคือ False

หากเป็น 1 จะมี Bundle หรือไบนารีใดที่เกี่ยวข้อง (ทั้งทางตรงและทางอ้อม) เกี่ยวกับเรื่องนี้ Library จะเชื่อมโยงในไฟล์ออบเจ็กต์ทั้งหมดของไฟล์ที่แสดงอยู่ใน srcs และ non_arc_srcs แม้ว่าบางรายการจะไม่มี สัญลักษณ์ที่ไบนารีอ้างอิง วิธีนี้มีประโยชน์หากโค้ดของคุณไม่ได้ถูกเรียกอย่างชัดแจ้งด้วยโค้ดใน ไบนารี เช่น หากโค้ดของคุณลงทะเบียนเพื่อให้รับการเรียกกลับ ที่ให้บริการโดยบางบริการ
archives

รายการป้ายกำกับ ต้องระบุ

รายการไฟล์ .a รายการที่ระบุให้กับ Objective-C เป้าหมายที่ ขึ้นอยู่กับเป้าหมายนี้
includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และทั้งหมดขึ้นอยู่กับเป้าหมาย เพื่อรองรับไลบรารีของบุคคลที่สามและไลบรารีแบบโอเพนซอร์สที่ไม่ ระบุเส้นทางของพื้นที่ทำงานทั้งหมด ใบแจ้งยอด #import/#include รายการ

ระบบจะแปลเส้นทางซึ่งสัมพันธ์กับไดเรกทอรีแพ็กเกจ และ Genfiles และ bin Roots (เช่น blaze-genfiles/pkg/includedir และ blaze-out/pkg/includedir) รวมอยู่ในคอลัมน์ รากลูกค้าที่แท้จริง

กฎนี้ต่างจาก COPTS ตรงที่เพิ่มแฟล็กเหล่านี้ และทุกกฎที่เกี่ยวข้อง (หมายเหตุ: ไม่ใช่กฎเกณฑ์แต่อย่างใด) เป็น ระมัดระวังให้มาก เนื่องจากอาจส่งผลกระทบเป็นวงกว้าง หากไม่แน่ใจ ให้เพิ่ม "-iquote" แจ้งว่าเป็น COPTS แทน

sdk_dylibs

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของไลบรารี SDK .dylib ที่จะลิงก์ด้วย เช่น "libz" หรือ "libarchive" "libc++" รวมโดยอัตโนมัติหากไบนารีมี C++ หรือ แหล่งที่มาของ Objective-C++ ในแผนผัง Dependency เมื่อลิงก์ไบนารี ไลบรารีทั้งหมดที่มีชื่ออยู่ในกราฟ Dependency แบบทรานซิทีฟของไบนารีนั้น
sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore")

เมื่อลิงก์ไบนารีของ Apple ระดับบนสุด เฟรมเวิร์ก SDK ทั้งหมดที่แสดงอยู่ในไบนารีนั้น ลิงก์กราฟการขึ้นต่อกันแบบสับเปลี่ยนแล้ว

sdk_includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และทั้งหมดขึ้นอยู่กับเป้าหมาย โดยที่แต่ละเส้นทางสัมพันธ์กับ $(SDKROOT)/usr/include
textual_hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ C, C++, Objective-C และ Objective-C++ ที่ รวมเป็นส่วนหัวตามไฟล์ต้นฉบับในกฎนี้หรือโดยผู้ใช้ ไลบรารี สิ่งเหล่านี้จะไม่ถูกคอมไพล์แยกต่างหากจาก แหล่งที่มา
weak_sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วยเล็กน้อย ตัวอย่างเช่น "MediaAccessibility" สัญลักษณ์ในความแตกต่างกับเฟรมเวิร์ก SDK ที่ลิงก์เป็นประจำ จากเฟรมเวิร์กที่มีการเชื่อมโยงที่ไม่ปลอดภัย จะไม่ก่อให้เกิดข้อผิดพลาดหาก จะไม่ปรากฏในรันไทม์

objc_library

ดูแหล่งที่มาของกฎ
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)

กฎนี้สร้างไลบรารีแบบคงที่จากไฟล์ต้นฉบับ Objective-C ที่ระบุ

อาร์กิวเมนต์

Attributes
name

ชื่อ ต้องระบุ

ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้

deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของเป้าหมายที่เป้าหมายนี้ใช้อยู่
srcs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการแหล่งที่มาและส่วนหัวของ C, C++, Objective-C และ Objective-C++ ไฟล์ และ/หรือ (".s", ".S" หรือ ".asm") ไฟล์ต้นฉบับที่ได้รับการประมวลผลเพื่อสร้าง เป้าหมายไลบรารี ไฟล์เหล่านี้คือไฟล์ที่เช็คอินของคุณ รวมถึงไฟล์ที่สร้างขึ้น ไฟล์ต้นฉบับจะรวมเข้าด้วยกันเป็นไฟล์ .o ด้วย Clang ไฟล์ส่วนหัว อาจรวม/นำเข้าโดยแหล่งที่มาหรือส่วนหัวใดๆ ในแอตทริบิวต์ srcs ของเป้าหมายนี้ แต่ไม่ใช่ตามส่วนหัวเป็น hdr หรือเป้าหมายใดๆ ที่ขึ้นอยู่กับ เกี่ยวกับกฎนี้ นอกจากนี้ ยังอาจระบุไฟล์ .o ที่คอมไพล์ไว้ล่วงหน้าเป็น src ได้ด้วย โปรดระมัดระวัง เพื่อให้มั่นใจว่าสถาปัตยกรรมของไฟล์ .o ที่ระบุ และของ เพื่อหลีกเลี่ยงข้อผิดพลาดตัวลิงก์สัญลักษณ์ที่ขาดหายไป
hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

เผยแพร่รายการไฟล์ส่วนหัว C, C++, Objective-C และ Objective-C++ โดยไลบรารีนี้ที่จะรวมโดยแหล่งที่มาในกฎที่ไม่อ้างอิง

ส่วนหัวเหล่านี้อธิบายถึงอินเทอร์เฟซสาธารณะสำหรับไลบรารี และจะ เปิดให้รวมโดยแหล่งที่มาในกฎนี้หรือตามกฎที่เกี่ยวข้อง กฎ ส่วนหัวที่ไคลเอ็นต์ของไลบรารีนี้ไม่ได้ให้รวมไว้ ควรแสดงในแอตทริบิวต์ srcs แทน

ระบบจะคอมไพล์เหล่านี้แยกต่างหากจากแหล่งที่มาหากมีการเปิดใช้โมดูล

บูลีน ค่าเริ่มต้นคือ False

หากเป็น 1 จะมี Bundle หรือไบนารีใดที่เกี่ยวข้อง (ทั้งทางตรงและทางอ้อม) เกี่ยวกับเรื่องนี้ Library จะเชื่อมโยงในไฟล์ออบเจ็กต์ทั้งหมดของไฟล์ที่แสดงอยู่ใน srcs และ non_arc_srcs แม้ว่าบางรายการจะไม่มี สัญลักษณ์ที่ไบนารีอ้างอิง วิธีนี้มีประโยชน์หากโค้ดของคุณไม่ได้ถูกเรียกอย่างชัดแจ้งด้วยโค้ดใน ไบนารี เช่น หากโค้ดของคุณลงทะเบียนเพื่อให้รับการเรียกกลับ ที่ให้บริการโดยบางบริการ
copts

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็กเพิ่มเติมที่จะส่งผ่านไปยังคอมไพเลอร์ ขึ้นอยู่กับการแทนที่ "Makeตัวแปร" และ การแปลงข้อมูลเป็นโทเค็นของ Bourne Shell ค่าสถานะเหล่านี้จะใช้กับเป้าหมายนี้เท่านั้น และจะไม่มีผลกับเป้าหมาย แล้วแต่กรณี

โปรดทราบว่าเส้นทางไดเรกทอรีที่ระบุโดยใช้ "-I" สำหรับโปรเจ็กต์ Xcode ที่สร้างขึ้น ธงใน มีการแยกวิเคราะห์บรรทัดแรก โดยเพิ่ม "$(WORKSPACE_ROOT)/" ไว้ข้างหน้า หากเป็นเส้นทางแบบสัมพัทธ์ และ เพิ่มไปยังเส้นทางการค้นหาส่วนหัวสำหรับเป้าหมาย Xcode ที่เชื่อมโยง

defines

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็ก -D เพิ่มเติมที่จะส่งผ่านไปยังคอมไพเลอร์ ควรอยู่ใน แบบฟอร์ม KEY=VALUE หรือเพียง KEY และ ไม่ได้ส่งผ่านไปยังคอมไพเลอร์สำหรับเป้าหมายนี้เท่านั้น (เป็น copts ) แต่รวมถึงทรัพยากร Dependency ทั้งหมดของ objc_ ของเป้าหมายนี้ ขึ้นอยู่กับการแทนที่ "Makeตัวแปร" และ การแปลงข้อมูลเป็นโทเค็นของ Bourne Shell
enable_modules

บูลีน ค่าเริ่มต้นคือ False

เปิดใช้การสนับสนุนโมดูลคำซ้ำ (ผ่าน -fmodules) การตั้งค่าเป็น 1 จะช่วยให้คุณ @นำเข้าส่วนหัวของระบบและเป้าหมายอื่นๆ ได้ @import UIKit; @นำเข้า path_to_package_target;
implementation_deps

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการของไลบรารีอื่นๆ ที่เป้าหมายไลบรารีอิงตาม ต่างจาก deps ส่วนหัว และระบุเส้นทางของไลบรารีเหล่านี้ (รวมถึงเส้นทางทั้งหมดของไลบรารี deps สับเปลี่ยน) จะใช้สำหรับการรวบรวมไลบรารีนี้เท่านั้น ไม่รวมถึงไลบรารีที่ ต้องพึ่งพาสิ่งนั้น คลังที่ระบุด้วย implementation_deps ยังคงลิงก์อยู่ ในเป้าหมายไบนารีที่ขึ้นอยู่กับไลบรารีนี้
includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และทั้งหมดขึ้นอยู่กับเป้าหมาย เพื่อรองรับไลบรารีของบุคคลที่สามและไลบรารีแบบโอเพนซอร์สที่ไม่ ระบุเส้นทางของพื้นที่ทำงานทั้งหมด ใบแจ้งยอด #import/#include รายการ

ระบบจะแปลเส้นทางซึ่งสัมพันธ์กับไดเรกทอรีแพ็กเกจ และ Genfiles และ bin Roots (เช่น blaze-genfiles/pkg/includedir และ blaze-out/pkg/includedir) รวมอยู่ในคอลัมน์ รากลูกค้าที่แท้จริง

กฎนี้ต่างจาก COPTS ตรงที่เพิ่มแฟล็กเหล่านี้ และทุกกฎที่เกี่ยวข้อง (หมายเหตุ: ไม่ใช่กฎเกณฑ์แต่อย่างใด) เป็น ระมัดระวังให้มาก เนื่องจากอาจส่งผลกระทบเป็นวงกว้าง หากไม่แน่ใจ ให้เพิ่ม "-iquote" แจ้งว่าเป็น COPTS แทน

linkopts

รายการสตริง ค่าเริ่มต้นคือ []

แฟล็กเพิ่มเติมสำหรับส่งผ่านไปยัง Linker
module_map

ป้ายกำกับ ค่าเริ่มต้นคือ None

แผนที่โมดูล Clang ที่กำหนดเองของเป้าหมายนี้ เราไม่แนะนำให้ใช้แผนที่โมดูลที่กำหนดเอง พบบ่อยที่สุด ผู้ใช้ควรใช้แผนที่โมดูลที่สร้างโดย Bazel หากระบุไว้ Bazel จะไม่สร้างแมปโมดูลสำหรับเป้าหมายนี้ แต่จะส่งผ่าน ที่ให้แมปโมดูลกับคอมไพเลอร์
module_name

String; ค่าเริ่มต้นคือ ""

ตั้งชื่อโมดูลสำหรับเป้าหมายนี้ โดยค่าเริ่มต้น ชื่อโมดูลจะเป็นเส้นทางเป้าหมายที่มี สัญลักษณ์พิเศษทั้งหมดที่แทนที่ด้วย _ เช่น //foo/baz:bar สามารถนำเข้าเป็น foo_baz_bar
non_arc_srcs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ Objective-C ที่ได้รับการประมวลผลเพื่อสร้าง เป้าหมายไลบรารีที่ไม่ได้ใช้ ARC ไฟล์ในแอตทริบิวต์นี้จะคล้ายกับไฟล์ใน srcs แต่คอมไพล์โดยไม่ได้เปิดใช้ ARC
pch

ป้ายกำกับ ค่าเริ่มต้นคือ None

ไฟล์ส่วนหัวเพื่อเพิ่มไว้ข้างหน้าไฟล์ต้นฉบับทุกๆ ไฟล์ที่มีการคอมไพล์ (ทั้ง 2 โค้ง และไม่มีส่วนโค้ง) ไม่สนับสนุนให้ใช้ไฟล์ PCH ในไฟล์ BUILD อย่างต่อเนื่อง ซึ่งควร ถือว่าเลิกใช้งานแล้ว เนื่องจากไฟล์ pch ไม่ได้ เป็นคอมไพล์ไว้ล่วงหน้า จึงไม่ใช่ การปรับปรุงความเร็วของบิลด์ และเป็นเพียงการพึ่งพากันทั่วโลก จากบิลด์ ในด้านประสิทธิภาพประสิทธิภาพ คุณจะดียิ่งขึ้น เมื่อรวมสิ่งที่คุณต้องการไว้โดยตรง ในแหล่งที่มาที่ต้องการ
sdk_dylibs

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของไลบรารี SDK .dylib ที่จะลิงก์ด้วย เช่น "libz" หรือ "libarchive" "libc++" รวมโดยอัตโนมัติหากไบนารีมี C++ หรือ แหล่งที่มาของ Objective-C++ ในแผนผัง Dependency เมื่อลิงก์ไบนารี ไลบรารีทั้งหมดที่มีชื่ออยู่ในกราฟ Dependency แบบทรานซิทีฟของไบนารีนั้น
sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วย (เช่น "AddressBook", "QuartzCore")

เมื่อลิงก์ไบนารีของ Apple ระดับบนสุด เฟรมเวิร์ก SDK ทั้งหมดที่แสดงอยู่ในไบนารีนั้น ลิงก์กราฟการขึ้นต่อกันแบบสับเปลี่ยนแล้ว

sdk_includes

รายการสตริง ค่าเริ่มต้นคือ []

รายการเส้นทางการค้นหา #include/#import รายการที่จะเพิ่มไปยังเป้าหมายนี้ และทั้งหมดขึ้นอยู่กับเป้าหมาย โดยที่แต่ละเส้นทางสัมพันธ์กับ $(SDKROOT)/usr/include
stamp

บูลีน ค่าเริ่มต้นคือ False

textual_hdrs

รายการป้ายกำกับ ค่าเริ่มต้นคือ []

รายการไฟล์ C, C++, Objective-C และ Objective-C++ ที่ รวมเป็นส่วนหัวตามไฟล์ต้นฉบับในกฎนี้หรือโดยผู้ใช้ ไลบรารี สิ่งเหล่านี้จะไม่ถูกคอมไพล์แยกต่างหากจาก แหล่งที่มา
weak_sdk_frameworks

รายการสตริง ค่าเริ่มต้นคือ []

ชื่อของเฟรมเวิร์ก SDK ที่จะลิงก์ด้วยเล็กน้อย ตัวอย่างเช่น "MediaAccessibility" สัญลักษณ์ในความแตกต่างกับเฟรมเวิร์ก SDK ที่ลิงก์เป็นประจำ จากเฟรมเวิร์กที่มีการเชื่อมโยงที่ไม่ปลอดภัย จะไม่ก่อให้เกิดข้อผิดพลาดหาก จะไม่ปรากฏในรันไทม์