[iOS] App Project ์†์„ฑ | Xcode Project / Project / Target
๐ŸŽ iOS

[iOS] App Project ์†์„ฑ | Xcode Project / Project / Target

[PROJECT]

: ๋ชจ๋“  ํŒŒ์ผ, ๋ฆฌ์†Œ์Šค, ์†Œํ”„ํŠธ์›จ์–ด ๋นŒ๋“œ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด์˜ ์ €์žฅ์†Œ

ํ”„๋กœ์ ํŠธ์—๋Š” ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ์š”์†Œ ๊ฐ„์˜ ๊ด€๊ณ„(relationships)๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” product๋ฅผ buildํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ช…์‹œํ•˜๋Š” target์„ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จํ•˜๋ฉฐ ๋ชจ๋“  target์— ๋Œ€ํ•œ ๊ธฐ๋ณธ build setting์„ ์ •์˜ํ•œ๋‹ค.

 

  • Info
    • Deployment Target: ์ง€์›ํ•˜๋Š” ์ตœ์†Œ OS ๋ฒ„์ „
    • Configurations: Debug / Release build setting (๋ณดํ†ต ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ - Debug, Archiveํ•  ๋•Œ - Release)⇒ ๋ณด๋‹ค ๋” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด configuration์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ ex. ๊ฐœ๋ฐœ ๋ฒ„์ „, ๋ฐฐํฌ ๋ฒ„์ „, ๋ฌด๋ฃŒ ๋ฒ„์ „, ์œ ๋ฃŒ ๋ฒ„์ „ ๋“ฑ
    • ⇒ ํ•˜๋‚˜์˜ Target์— ๋Œ€ํ•ด, ๋‹ค๋ฅธ ๋ฒ„์ „์˜ build๋ฅผ ์„ค์ •
    • Localizations: ์ง€์›ํ•˜๋Š” ์–ธ์–ด(์ง€์—ญ)
  • Build Settings
    • ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ Build Setting์€ Customized ํ•„ํ„ฐ ์˜ต์…˜์—์„œ ํ™•์ธ
    • ํ˜„์žฌ ์ ์šฉ๋˜์–ด ์žˆ๋Š” Build Setting์ด ๊ธฐ๋ณธ๊ฐ’์„ ์“ฐ๊ณ  ์žˆ๋Š”์ง€, ํ”„๋กœ์ ํŠธ์— ์ ์šฉ๋œ ๊ฐ’์„ ์“ฐ๊ณ  ์žˆ๋Š”์ง€, Target๋ณ„๋กœ override๋ฅผ ํ•œ ๊ฒƒ์ธ์ง€ ๋“ฑ์„ ํ™•์ธ ๊ฐ€๋Šฅ
  • Swift Packages: ํ”„๋กœ์ ํŠธ ๋‚ด swift ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋งค๋‹ˆ์ €

 

[TARGETS]

Target์€ ๋นŒ๋“œํ•  product๋ฅผ ์ง€์ •ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ ๋˜๋Š” workspace์˜ ํŒŒ์ผ ์ง‘ํ•ฉ์—์„œ product์˜ ๋นŒ๋“œ ๋ฐฉ๋ฒ•(by Build Settings / Phases)์„ ์ง€์ •ํ•œ๋‹ค.

ํ”„๋กœ์ ํŠธ์—๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ Target์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ Target์€ ํ•˜๋‚˜์˜ product๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

Target์€ Target ๋‚ด์—์„œ ์ง€์ •ํ•œ build setting์— ์˜ํ•ด override ๋˜์ง€ ์•Š๋Š” ์ด์ƒ ๊ธฐ๋ณธ์ ์œผ๋กœ Project Build Setting์„ ์ƒ์†๋ฐ›๋Š”๋‹ค. 

  • Configuration์€ ํ•˜๋‚˜์˜ target์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ!!!!!!
  • Target์€ ๊ฐ™์€ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด๋„(์ผ๋ถ€ or ์ „๋ถ€ ์ƒ๊ด€์—†์ด) ๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ๋‹ค๋ฅธ Product๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ!!!!!!!

  • General
    • Identitiy
      • Display Name: ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์„ค์ •
      • Bundle identifier: ๋ฒˆ๋“ค ID (์•ฑ ์Šคํ† ์–ด ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•œ ๊ณ ์œ ๊ฐ’)
      • Version
      • Build: ๋นŒ๋“œ ํšŸ์ˆ˜ ๊ด€๋ฆฌ
    • Deployment Info: ์•ฑ์„ ๋ฐฐํฌํ•  ๋•Œ ํ•„์š”ํ•œ ํ•ญ๋ชฉ ์„ค์ •
      • Main Interface: ์•ฑ ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค ์„ค์ •
      • Device Orientation: ๊ธฐ๊ธฐ ๋ฐฉํ–ฅ ์„ค์ •
      • Status Bar Style: ์ƒํƒœ๋ฐ” ์Šคํƒ€์ผ
    • App Icons and Launch Images: ์•ฑ ์•„์ด์ฝ˜ ๋ฐ ๋Ÿฐ์น˜ ์Šคํฌ๋ฆฐ ์„ค์ •
  • Signing & Capabilities
    • Teams ์„ ํƒ
  • Resource Tags
  • Info
    • ํŒŒ์ผ ์œ ํ˜• ๋ฐ ์„œ๋น„์Šค ์ •๋ณด ์ถ”๊ฐ€
    • Custom iOS Target Properties: ์‚ฌ์šฉ์ž ์ง€์ • ๋Œ€์ƒ ์†์„ฑ
    • Document Types: ์•ฑ์—์„œ ๋งŒ๋“ค๊ณ  ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ๋ฌธ์„œ ์œ ํ˜• ์ง€์ •
    • Exported Type Identifiers
    • Imported Type Identifiers
    • URL Types: ์‚ฌ์šฉ์ž ์ง€์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์•ฑ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์Šคํ‚ค๋งˆ ์ง€์ • ๊ฐ€๋Šฅ
  • Build Settings
    • product ๋นŒ๋“œ ์ˆ˜ํ–‰์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ณ€์ˆ˜
  • Build Phases
    • Dependency์™€ ์œ ์ €์˜ ์ปดํŒŒ์ผ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ •๋ณด
  • Build Rules
    • 'Build rules'์— ๋”ฐ๋ผ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์ˆ˜ํ–‰ํ•  ๋™์ž‘์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. Xcode์—๋Š” ์ปดํŒŒ์ผํ•  ๋•Œ ํ‘œ์ค€ ๊ทœ์น™์ด ์žˆ๋Š”๋ฐ Build Rules์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทœ์น™ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

[์ฐธ๊ณ ๋ฌธํ—Œ]

 

Xcode Project

Xcode Project An Xcode project is a repository for all the files, resources, and information required to build one or more software products. A project contains all the elements used to build your products and maintains the relationships between those elem

developer.apple.com

 

 

Xcode Target, Project, Workspace, Scheme ๊ทธ๋ฆฌ๊ณ  Build Setting.

์•ˆ๋…•ํ•˜์„ธ์š” :) Zedd์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€! ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณผ๊ฑด๋ฐ์š”. ์ œ๊ฐ€ ์ง€๊ธˆ Build Configuration์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์Œ..๊ทธ๋Ÿฌ๋‹ˆ๊นŒ Build Configuration์˜ ์ •ํ™•ํ•œ ์ •์˜๋ฅผ ๋ชจ๋ฅด๊ฒ ๋Š”๊ฑฐ์—์š”. ์•„๋ฌดํŠผ Bui

zeddios.tistory.com

 

[Build Settings]

Project์™€ Target์—์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Project build setting์€ ํŠน์ • target์— ๋Œ€ํ•œ build setting์— ์˜ํ•ด override๋˜์ง€ ์•Š๋Š” ํ•œ ๋ชจ๋“  target์— ์ ์šฉ๋œ๋‹ค. 

build configuration์€ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ target product๋ฅผ ๋นŒ๋“œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” build setting set์„ ์ง€์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, product์˜ Debug ๋ฐ Release ๋นŒ๋“œ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ build configuration์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

  • Target - Build Setting ≠ Project - Build Setting
  • Target Build Setting ๋ณด๋‹ค Project Build Setting ์ด์šฉ ๊ถŒ์žฅ
  • ์†์„ฑ
    • Architectures: ์‹๋ณ„์ž ๋ชฉ๋ก
    • Assets
    • Build Locations
    • Build Options
    • Debug Information Fomat: ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํฌ๋งท์„ ์‹๋ณ„ํ•˜๋Š” ์‹๋ณ„์ž
    • Validate Built Product: product ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ• ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€
    • Deployment
    • Headers
    • Kernel Module
    • Linking
    • Localization
    • Packaging
    • Search Paths
    • Signing
    • Testing
    • Text-Based API
    • Versioning

[์ฐธ๊ณ ๋ฌธํ—Œ]

 

Build Setting Reference

Retired Document Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. An updated version of Build Settings Reference is now available in Xcode Help. To access it:

developer.apple.com