Xcode: เป้าหมายและรูปแบบในภาษาธรรมดาคืออะไร?


204

ใช่ชื่อกล่าวว่า :-) พวกเขาหมายถึงอะไรในภาษาอังกฤษธรรมดา? ฉันไม่เข้าใจคำอธิบายในเว็บไซต์ของ Apple จริงๆและฉันจำเป็นต้องเปลี่ยนชื่อเป้าหมายของฉันและฉันกลัวว่าจะไม่ทำงานหลังจากนั้น ..



มูลค่าการอ่านblog.just2us.com/2009/07/…
andilabs

คำตอบ:


309

ฉันได้เพิ่มใน Workspace และ Project ด้วย!

  • พื้นที่ทำงาน - มีหนึ่งโครงการขึ้นไป โครงการเหล่านี้มักเกี่ยวข้องกับอีกโครงการหนึ่ง
  • โครงการ - มีรหัสและทรัพยากร ฯลฯ (คุณจะคุ้นเคยกับสิ่งเหล่านี้!)
  • เป้าหมาย - แต่ละโครงการมีหนึ่งเป้าหมายขึ้นไป
    • แต่ละเป้าหมายจะกำหนดรายการการตั้งค่าการสร้างสำหรับโครงการนั้น
    • แต่ละเป้าหมายยังกำหนดรายการของคลาสทรัพยากรสคริปต์ที่กำหนดเอง ฯลฯ เพื่อรวม / ใช้เมื่อสร้าง
    • เป้าหมายมักจะใช้สำหรับการแจกแจงที่แตกต่างกันของโครงการเดียวกัน
      • ตัวอย่างเช่นโครงการของฉันมีสองเป้าหมายคือบิลด์ "ปกติ" และบิลด์ "สำนักงาน" ที่มีคุณสมบัติการทดสอบพิเศษและอาจมีแทร็กเพลงพื้นหลังหลายปุ่มและปุ่มเพื่อเปลี่ยนแทร็ก
      • คุณจะถูกใช้เพื่อเพิ่มคลาสและแหล่งข้อมูลให้กับเป้าหมายเริ่มต้นของคุณเมื่อคุณเพิ่มเข้าไป
      • คุณสามารถเลือกและเลือกคลาส / ทรัพยากรที่จะเพิ่มไปยังเป้าหมายใด
        • ในตัวอย่างของฉันฉันมีคลาส "DebugHandler" ที่ถูกเพิ่มเข้าไปในบิลด์ออฟฟิศของฉัน
      • หากคุณเพิ่มการทดสอบนี่จะเป็นการเพิ่มเป้าหมายใหม่ด้วย
  • Scheme - แบบแผนกำหนดสิ่งที่เกิดขึ้นเมื่อคุณกด "Build", "Test", "Profile" ฯลฯ
    • โดยปกติแต่ละเป้าหมายจะมีโครงร่างอย่างน้อยหนึ่งชุด
    • คุณสามารถสร้างแผนการอัตโนมัติสำหรับเป้าหมายของคุณโดยไปที่ Scheme> Manage Schemes และกด "Autocreate Schemes Now"

ลองถ้าฉันเข้าใจถูกต้อง ... ฉันกำลังเขียนโปรแกรมและสร้างสองเป้าหมาย อันที่ฉันจะอัปโหลดไปยังแอพสโตร์และที่ฉันพัฒนาแล้วแอพเดียวกันในเวอร์ชันถัดไป และในแบบแผนฉันทำตัวอย่างหนึ่งรูปแบบในเป้าหมายทั้งสองเพื่อเรียกใช้และอีกหนึ่งรูปแบบสำหรับการดีบัก แต่ทำไมฉันต้องใช้ชุดรูปแบบที่แตกต่างกัน? ฉันไม่เข้าใจความได้เปรียบของ BJ Homer ..
MichiZH

FWIW ฉันไม่ได้ใช้รูปแบบที่แตกต่างกันสำหรับการเปิดตัวและการดีบักเว้นแต่ว่าฉันจะเพิ่มคุณสมบัติการแก้ปัญหาเพิ่มเติมเช่นฉันอธิบายในคำตอบของฉัน
James Webster

2
สุดยอดคำอธิบายครับ! ! !
Sagar Kalathil

6
คุณหมายความว่าอะไรที่ออฟฟิศของคุณมีปุ่มเพลงอยู่ด้านล่าง แอพที่แท้จริงของคุณมีรหัสพิเศษที่เปิดใช้งานเฉพาะในบิลด์ออฟฟิศหรือเป็นเพลงที่รันบน mac ของคุณ ขอโทษฉันสับสน
3366784

ประเภทนี้กำหนดสิ่งที่ประกอบกันเป็นแนวคิดแต่ละอย่าง แต่ไม่ใช่จุดประสงค์ของแต่ละรายการ สำหรับฉันนั่นคือสิ่งที่ OP ได้ถามเกี่ยวกับ
O'Rooney

66

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

โครงการหมายถึงคอลเลกชันของเป้าหมายที่คุณทำงานด้วยกัน มันกำหนดเป้าหมายที่จะใช้เมื่อคุณเลือกการกระทำต่าง ๆ ใน Xcode (Run, Test, Profile, ฯลฯ ) บ่อยครั้งที่คุณจะมีเพียงหนึ่งรูปแบบซึ่งใช้เป้าหมายหลักของแอปสำหรับการกระทำ Run, Archive และ Profile และ เป้าหมายการทดสอบหน่วยสำหรับการทดสอบการกระทำ หากคุณกำลังสร้างแอพที่เกี่ยวข้องสองรายการคุณอาจมีสองรูปแบบที่ใช้ชุดทดสอบหน่วยเดียวกัน แต่มีเป้าหมายแอปที่แตกต่างกัน

ประโยชน์หลักของแผนการ (แนะนำใน Xcode 4) คือช่วยให้คุณสามารถสลับระหว่างการเรียกใช้แอปของคุณกับการทดสอบหน่วยโดยไม่จำเป็นต้องสลับเป้าหมายที่เลือก


61

ฉันเป็นคนที่มองเห็นได้ดังนั้นเพื่ออธิบายแนวคิดที่ฉันจะใช้แผนภาพ

เมื่อคุณมีเป้าหมายหลายเป้าหมายพวกเขาสามารถเป็นแบบหนึ่งต่อหนึ่งที่ตรงกับการดำเนินการทดสอบทดสอบโปรไฟล์ของ Xcode แนวคิดนี้กำหนดโครงร่าง

ป้อนคำอธิบายรูปภาพที่นี่

เป้าหมายเป็นรุ่นของคุณโครงการเป้าหมายคือต่างออกไปเล็กน้อยในชั้นเรียนและทรัพยากรที่จะใช้ในช่วงเวลาที่สร้างขึ้น โครงการสามารถมีการตั้งค่าเวลาหลายตัวสำหรับข้อกำหนดการแจกจ่ายแยกต่างหาก


7
แผนภาพนี้ดูเหมือนผิด แบบแผนควรจะเชื่อมโยงกับเป้าหมายเฉพาะฉันไม่เห็นที่ภายในโครงการคุณสามารถมีหลายเป้าหมาย
Boon

6
@ บุญไม่ลวก ๆ Choosy ถูกต้อง ในตัวแก้ไขโครงร่างคลิกรายการ 'สร้าง' ทางด้านซ้าย ในพื้นที่ด้านขวาคลิก '+' และคุณสามารถเพิ่มเป้าหมายเพิ่มเติมให้กับชุดรูปแบบนี้ ทำเครื่องหมายในกล่องตามที่ต้องการ ไฟล์ปฏิบัติการของเป้าหมายเหล่านี้จะมีให้ในการดำเนินการอื่น (Run, Profile, ฯลฯ ) ในรายการแบบหล่นลงที่เรียกใช้งานได้
occulus

นี่เป็นสิ่งที่ดี แต่มันขาดส่วนการกำหนดค่าบิวด์ของโครงร่าง ฉันคิดว่าแบบแผนเป็นชุดของการทำงาน (Run, Test, Profile) ที่จับคู่กับการรวมกันของเป้าหมายและสร้างการกำหนดค่า (debug, release, qa, prod, etc)
Steve Moser

3

Workspace( .xcworkspace) - projectsเป็นที่เก็บของหลาย มันถูกสร้างขึ้นเป็นขั้นตอนต่อไปของcross-project references[เกี่ยวกับ]

  • Workspaceมีทั้งหมดschemesจากที่รวมอยู่projects
  • Workspaceจัดการทั้งหมดimplicit dependencies[เกี่ยวกับ]

ข้อสังเกต:

  • มีความปลอดภัยในการทำงานกับโครงการต่าง ๆ ภายในเดียวกันworkspaceและไม่จับCouldn't load Project.xcodeproj because it is already opened from another project or workspace
  • Cocoapods[เกี่ยวกับ]การทำงานกับworkspaceตำแหน่งที่สร้าง Podsโครงการ

Project( .xcodeproj) - มันเป็นภาชนะสำหรับและtargets schemeมันกำหนดไฟล์รหัสทรัพยากร ...

Target- PBXNativeTargetส่วน กำหนดชุดการสร้างที่เฉพาะเจาะจงที่สร้าง:

  • Application target
  • Library and framework targets
  • Test
  • Aggregate[เกี่ยวกับ] เช่นมันถูกใช้เพื่อสร้างUniversal frameworkหรือUmbrella framework

Scheme- เป็นProject'sการกำหนดค่าสำหรับการดำเนินการใน Xcode: วิ่ง , ทดสอบ , รายละเอียด , วิเคราะห์และเก็บ Schemaสามารถแชร์ได้ซึ่งช่วยคุณใน CI, Carthage... และที่อยู่:

<project_path>/<project_name>.xcodeproj/xcshareddata/xcschemes

Dependency- สามารถมีTargets dependenciesการพึ่งพาคือการเชื่อมโยงแหล่งที่มากับ การพึ่งพาเหล่านี้สามารถเชื่อมโยงแบบคงที่หรือแบบไดนามิก[เกี่ยวกับ]มีสองประเภท:

  • Explicit Dependency[เกี่ยวกับ] - ซอร์สโค้ดของการอ้างอิงที่อยู่ในโครงการเดียวกันหรือโครงการซ้อนกัน
  • Implicit Dependency[เกี่ยวกับ] - รหัสที่มา / ปิดของการอ้างอิงที่อยู่ในโครงการที่เป็นส่วนหนึ่งของพื้นที่ทำงานเดียวกัน

[คำศัพท์]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.