[iOS] info.plist | Xcode 12
๐ŸŽ iOS

[iOS] info.plist | Xcode 12

 

Info.plist = Information Property List Files

Info.plist๋Š” Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ

์‹คํ–‰ ํŒจํ‚ค์ง€์— ๊ด€ํ•œ ํ•„์ˆ˜ ์„ค์ • ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ XML์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐํ™”๋œ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‹ค.

iOS ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ์ •๋ณด๋ฅผ ๋‹ด์•„ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ์„ค์ •ํŒŒ์ผ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

XML์€ Key, Value๋กœ ๊ตฌ์„ฑ๋œ Dictionary ํ˜•ํƒœ์ด๋‹ค.

์‹œ์Šคํ…œ์€ ์ด ํ‚ค์™€ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์•ฑ๊ณผ ์•ฑ์˜ ์„ค์ •์„ ๊ฐ€์ ธ์˜จ๋‹ค.

 

 

๐Ÿ’ก ํŠน์ • ํ‚ค or ๊ฐ’์„ ํŽธ์ง‘ํ•˜๋ ค๋ฉด ๊ฐ’์„ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์„ ํƒํ•œ ๋‹ค์Œ ์ƒˆ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.
๐Ÿ’ก ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด (+) ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์ž„์˜์˜ ํ‚ค๋ฅผ ํด๋ฆญํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ํ•ด๋‹น ํ‚ค ์•„๋ž˜์— ์ƒˆ๋กœ์šด ํ‚ค๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

[ Information Property List ]

  • Localization native development region: ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์–ธ์–ด ๋ฐ ์–ธ์–ด ID
  • ⇒ ํ•œ๊ตญ: Korea, ํ˜ธ์ฃผ: en - A ...
  • Executable file: ๋ฒˆ๋“ค์˜ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„
  • Bundle identifier(ID): ๋ฒˆ๋“ค์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„ Key ⇒ โ€ผ๏ธ Xcode์™€ App Store์˜ ๋ฒˆ๋“ค ID๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด ๋“ฑ๋ก์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • InfoDictionary version: Info.plist์˜ ํ˜„์žฌ ๋ฒ„์ „
  • Bundle name: ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๋ฒˆ๋“ค์˜ ์ด๋ฆ„ (16์ž ๋ฏธ๋งŒ)
  • Bundle OS Type code: ๋ฒˆ๋“ค ์œ ํ˜•์„ ์‹๋ณ„ํ•˜๋Š” 4๊ธ€์ž ์ฝ”๋“œ
  • Bundle version string (short): ๋ฒˆ๋“ค์˜ ๋ฐฐํฌ ๋ฒ„์ „ ⇒ ์‹œ์Šคํ…œ ์ „์ฒด์—์„œ ๋ฒˆ๋“ค์˜ ๋ฒ„์ „์„ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค
    • ⇒ ๋งˆ์นจํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜ (ex. 2.3.1)
      • ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž: ์ƒˆ ๊ธฐ๋Šฅ์ด๋‚˜ major ๋ณ€๊ฒฝ ์‚ฌํ•ญ
      • ๋‘ ๋ฒˆ์งธ ์ˆซ์ž: minor ๋ณ€๊ฒฝ ์‚ฌํ•ญ
      • ์„ธ ๋ฒˆ์งธ ์ˆซ์ž: ์œ ์ง€ ๊ด€๋ฆฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ
  • Bundle version: ๋ฒˆ๋“ค์˜ ๋นŒ๋“œ ๋ฒ„์ „
    • ⇒ ๋งˆ์นจํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜ (ex. 2.3.1) 
      • ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž: major ๊ฐœ์ • ๋ฒˆํ˜ธ
      • ๋‘ ๋ฒˆ์งธ ์ˆซ์ž: minor ๊ฐœ์ • ๋ฒˆํ˜ธ
      • ์„ธ ๋ฒˆ์งธ ์ˆซ์ž: ์œ ์ง€ ๊ด€๋ฆฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ
  • Application requires iPhone environment: iOS์—์„œ๋งŒ ์‹คํ–‰ํ•˜๋Š”์ง€ ์—ฌ๋ถ€
  • Application Scene Manifest: ์•ฑ์˜ Scene ๊ธฐ๋ฐ˜ life-cycle ์ง€์›์— ๋Œ€ํ•œ ์ •๋ณด ⇒ ์•ฑ์ด ์ง€์›ํ•˜๋Š” ๋ชจ๋“  Scene์˜ ์œ ํ˜• ์„ค์ •
    • Enable Multiple Windows: ์•ฑ์ด ๋™์‹œ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ Scene์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” boolean ๊ฐ’
    • Scene Configuration: ์ƒˆ๋กœ์šด Scene์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•  UIKit์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์ •๋ณด ์„ค์ •
      • Application Session Role
        1. Application: ์žฅ์น˜์˜ ๊ธฐ๋ณธ ํ™”๋ฉด์— ์ปจํ…์ธ ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์— ์‘๋‹ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์žฅ๋ฉด
        2. External Display: ์™ธ๋ถ€์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด Display ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์žฅ๋ฉด ex.Airplay Mirror)
          • Configuration Name: ํ•ด๋‹น Scene ๊ตฌ์„ฑ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„
          • Delegate Class Name: ํ•ด๋‹น Scene์˜ delegate์˜ ์ด๋ฆ„ (์ผ๋ฐ˜์ ์œผ๋กœ Scene Delegate)
          • Storyboard Name: ํ•ด๋‹น Scene์— ๋Œ€ํ•œ ์ฒซ UI๋ฅผ ํฌํ•จํ•˜๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ ์ด๋ฆ„
  • Application supports indirect input events: ๊ฐ„์ ‘ ์ž…๋ ฅ ์ง€์› ์œ ๋ฌด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” boolean ๊ฐ’
  • Launch screen interface file base name: ์•ฑ์˜ ๋Ÿฐ์น˜ ํ™”๋ฉด์„ ์ƒ์„ฑํ•  ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ํŒŒ์ผ ์ด๋ฆ„
  • Main storyboard file base name: ๋ฉ”์ธ ์Šคํ† ๋ฆฌ๋ณด๋“œ ํŒŒ์ผ ์ด๋ฆ„
  • Required device capabilities: ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐ๊ธฐ ๊ด€๋ จ ๊ธฐ๋Šฅ
    • ARkit
    • armv7
    • auto-Focus-camera: ์ž๋™ ์ดˆ์  ๊ธฐ๋Šฅ - ํŠน์ • ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ์ž‘์—… ์ˆ˜ํ–‰์„ ์œ„ํ•ด ๋” ์„ ๋ช…ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ
    • gps: ์œ„์น˜ ์ถ”์ ์„ ์œ„ํ•œ GPS. ์ด ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด location-services ๊ฐ’๋„ ์‚ฌ์šฉํ•ด์•ผํ•จ
    • microphone: ๋งˆ์ดํฌ
    • gamekit: Game Center์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’
    • healthkit
    • front-facing-camera: ์ „๋ฐฉ ์นด๋ฉ”๋ผ
    • camera-flash: ์นด๋ฉ”๋ผ ํ”Œ๋ž˜์‹œ
  • Supported interfafce orientations: ์•ฑ์ด ์ง€์›ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฉํ–ฅ
    • InterfaceOrientationPortrait: ์ „๋ฉด์นด๋ฉ”๋ผ๊ฐ€ ์ƒ๋‹จ์— ์žˆ๋Š” ์„ธ๋กœ ๋ชจ๋“œ์˜ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ง€์›
    • UIInterfaceOrientationPortraitUpsideDown: ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ ๊ฑฐ๊พธ๋กœ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ „๋ฉด์นด๋ฉ”๋ผ๊ฐ€ ํ•˜๋‹จ์— ์œ„์น˜
    • UIInterfaceOrientationLandscapeRight: ์ „๋ฉด์นด๋ฉ”๋ผ๊ฐ€ ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฐ€๋กœ ๋ชจ๋“œ์˜ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ง€์›
    • UIInterfaceOrientationLandscapeLeft: ์ „๋ฉด์นด๋ฉ”๋ผ๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฐ€๋กœ๋ชจ๋“œ์˜ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ง€์›
  • Supported interface orientations (iPad): ์•ฑ์ด ์ง€์›ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฉํ–ฅ(for iPad)

 

 

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

 

Apple Developer Documentation

 

developer.apple.com

 

Scene Delegate vs. App Delegate Explained

What does the new Scene Delegate class in your iOS project do? In this article, we'll dive into the scene delegate and how it affects building UIs on iOS.

learnappmaking.com