[React Native CLI] ios API ํ‚ค ์•ˆ์ „ํ•˜๊ฒŒ ์ˆจ๊ธฐ๊ธฐ

2025. 1. 7. 19:28ยทStack/React-Native
๋ฐ˜์‘ํ˜•
๐Ÿ’ก์ฝ๊ธฐ์ „์—. ๋‹ค์Œ ๋‚ด์šฉ์€ ๋ฏธ๋ฆฌ ํŒŒ์ผ์„ Config.xcconfig ๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๊ณ  ์žฌํ˜„ํ•˜๋Š” ๊ณผ์ •์„ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค.
๋•Œ๋ฌธ์— ์‚ฌ์ง„์„ ๋ณด๋ฉด Config.xcconfig ํŒŒ์ผ๊ณผ Config1.xcconfig ํŒŒ์ผ ๋‘๊ฐœ๊ฐ€ ์žˆ๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๊ฑด ๊ทธ๋ƒฅ ๊ฐ™์€ํŒŒ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„์— ๋‹ค์‹œ ํŒŒ์ผ์„ ์ง€์›Œ์„œ ์‚ฌ์ง„์„ ์ •์ƒํ™”ํ•œ ๋ถ€๋ถ„๋„ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ 

Config.xcconfig ํŒŒ์ผ ์ƒ์„ฑ

xcode๋กœ ๋“ค์–ด๊ฐ„๋‹ค์Œ์— ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญํ›„ ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

์ดํ›„ ์šฐ์ธก ์ƒ๋‹จ์—” configuration ์„ ๊ฒ€์ƒ‰ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด configuration Settings File ์„ ํด๋ฆญํ•˜๊ณ  Next

 

์ƒ์„ฑ์„ ํ•œ ์ดํ›„์— API_KEY ์˜ KEY ๊ฐ’๊ณผ Value๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค.

Info.plist์™€ ์—ฐ๊ฒฐ

API_KEY๋ฅผ Info.plist ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€์‹œ์ผœ์ค˜์•ผ๋œ๋‹ค.

TARGETS → Project Name → Info์— ๋“ค์–ด๊ฐ€์„œ property๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค,

Key ๊ฐ’์€ Config.xcconfig ์— ์ž‘์„ฑํ–ˆ๋˜ key์ด๋ฆ„์„ ๋™์ผํ•˜๊ฒŒ ํ•ด์ฃผ๊ณ 

Value์˜ ๊ฒฝ์šฐ $(API_KEY_NAME)ํ˜•์‹์œผ๋กœ ํ•ด์ค€๋‹ค.

๐Ÿ’ก์‚ฌ์ง„์—๋Š” GOOGLE_MAP_API_KEY ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ ์ด๊ฑฐ ๋ฌด์‹œํ•˜๊ณ  ๋ณธ์ธ ์ƒํ™ฉ์— ์•Œ๋งž๋Š” API ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํด๋”์•ˆ์— ์กด์žฌํ•˜๋Š” Info.plist์— ์ง์ ‘ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ค€๋‹ค.

<key>API_KEY</key>
<string>$(API_KEY)</string>

Build Configurations ์—ฐ๊ฒฐ์‹œํ‚ค๊ธฐ

Build Configurations์— ์—ฐ๊ฒฐ๋˜์–ด์•ผ๋งŒ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ Config.xcconfig ํŒŒ์ผ์— ์ •์˜๋œ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค.

์ขŒ์ธก์ƒ๋‹จ์— PROJECT → ProjectName(์‚ฌ์ง„์—๋Š” matzip์œผ๋กœ ๋˜์–ด์žˆ์Œ) → Info → Configurations ์—์„œ Debug ์™€ Release ์—์„œ Project ์˜ Based on Configuration File์„ Config.xcconfig ๋กœ ์žก์•„์ค€๋‹ค.

AppDelegate.mm์—์„œ API ํ‚ค ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

๋ณธ์ธ์˜ ๊ฒฝ์šฐ react-native-maps ์—์„œ googleAPI ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋ฌ๊ธฐ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์ฃผ์—ˆ๋‹ค.

// APIํ‚ค ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
NSString *googleApiKey = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GOOGLE_MAP_API_KEY"];

//react-native-maps ์—์„œ ํ•„์š”๋กœํ•˜๋Š” ๋‚ด์šฉ
[GMSServices provideAPIKey:googleApiKey];

Build & gitignore ์— ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ

Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ๋ฅผ ํ•œ๋ฒˆํ•ด์ฃผ๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค

์ดํ›„ github์— apiํ‚ค๋ฅผ ์ˆจ๊ธฐ๊ณ  ์˜ฌ๋ฆฌ๊ธฐ์œ„ํ•ด .gitignore ํŒŒ์ผ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

Config.xcconfig
๋ฐ˜์‘ํ˜•

'Stack > React-Native' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React-Native CLI] ์•ฑ ์•„์ด์ฝ˜ ์ ์šฉ์‹œํ‚ค๊ธฐ  (0) 2025.03.23
[React-Native CLI] react-native-maps์ด์šฉํ•˜์—ฌ googleMap ๊ตฌํ˜„ํ•˜๊ธฐ  (1) 2025.01.10
[React-Native CLI] React Native Encrypted Storage ์‚ฌ์šฉํ•˜๊ธฐ  (1) 2025.01.03
React-Native expo์—์„œ FAB ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ  (0) 2024.11.28
React-Native ์—์„œ TextInput ์‚ฌ์šฉํ•ด๋ณด๊ธฐ  (1) 2024.11.17
'Stack/React-Native' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [React-Native CLI] ์•ฑ ์•„์ด์ฝ˜ ์ ์šฉ์‹œํ‚ค๊ธฐ
  • [React-Native CLI] react-native-maps์ด์šฉํ•˜์—ฌ googleMap ๊ตฌํ˜„ํ•˜๊ธฐ
  • [React-Native CLI] React Native Encrypted Storage ์‚ฌ์šฉํ•˜๊ธฐ
  • React-Native expo์—์„œ FAB ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ
WHITE_FROST
WHITE_FROST
๊ฐœ๋ฐœ๊ณต๋ถ€๋ฆฌ๋ทฐ๋ธ”๋กœ๊ทธ
    ๋ฐ˜์‘ํ˜•
  • WHITE_FROST
    ํ•˜์–€ํ•˜์–€IT
    WHITE_FROST
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (119)
      • Stack (43)
        • Next.js (7)
        • React (12)
        • React-Native (15)
        • TypeScript (0)
        • Python (2)
        • JavaScript (2)
        • Android (1)
        • DB (2)
        • JAVA (1)
      • Obsidian (1)
      • AI (3)
      • AI Tools (0)
      • Tools (0)
      • Mac (0)
      • Error (7)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ (6)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด (46)
      • ๊ณต๋ถ€์ผ์ƒ (4)
      • ๊ฐœ๋ฐœ ๋„๊ตฌ & ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (0)
      • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (0)
      • ๊ธฐํƒ€ (6)
      • Tip (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฏธ๋””์–ด๋กœ๊ทธ
    • ์œ„์น˜๋กœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ios
    Expo
    ๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ
    boj
    Next.js
    d1
    mongoDB Atlas
    mongodb cloud
    ์˜ค๋ธ”์™„
    react-native
    ์ฝ”ํ…Œ
    react-native-maps
    reactnative
    Python
    React Hooks
    ๋ฐฑ์ค€
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์ฝ”ํ…Œ์ค€๋น„
    java
    ReactHook
    react
    D2
    SWEA
    error
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    javascript
    React-Native cli
    hooks
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
WHITE_FROST
[React Native CLI] ios API ํ‚ค ์•ˆ์ „ํ•˜๊ฒŒ ์ˆจ๊ธฐ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”