π± μμ΄λμ΄μμ μ±μ€ν μ΄κΉμ§, iOS κ°λ°μμ νμ κ΄λ¬Έ
λ©μ§ μ± μμ΄λμ΄λ₯Ό μ½λλ‘ κ΅¬ννκ³ λλ²κΉ κΉμ§ λ§μ³€λ€λ©΄, μ΄μ μ μΈκ³ μ¬μ©μμκ² κ³΅κ°ν μ°¨λ‘μ λλ€. νμ§λ§ Xcode νλ‘μ νΈλ₯Ό μλ°±λ§ λμ iPhoneκ³Ό iPadμ λλ¬μν€λ κ³Όμ μ 'μΈμ¦μ', 'νλ‘λΉμ λ νλ‘νμΌ', 'App Store Connect' κ°μ μ©μ΄λ€λ‘ μΈν΄ λ§λ§νκ² λκ»΄μ§ μ μμ΅λλ€. π
μ΄ κ°μ΄λλ iOS μ± μ€ν μ΄ μ μΆμ λͺ¨λ κ³Όμ μ 체κ³μ μΌλ‘ ν΄λΆν©λλ€. λ¨μν μλ μ μΆ λ°©λ²μ λμ΄, Xcode Cloudλ₯Ό νμ©ν λΉλ-ν μ€νΈ-λ°°ν¬ μλν νμ΄νλΌμΈ κ΅¬μΆ λ°©λ²κΉμ§ λ€λ£Ήλλ€. κ°λ° μκ°μ μ μ½νκ³ λ μμ μ μΈ λ¦΄λ¦¬μ€ νλ‘μΈμ€λ₯Ό 보μ₯νλ λ°©λ²μ μμ보μΈμ.

π μΆλ°μ : Apple κ°λ°μ μνκ³μ κΈ°μ΄ μ΄ν΄
μ± μ€ν μ΄ μ¬μ μ 첫 κ±Έμμ Apple κ°λ°μ μνκ³μ ν΅μ¬ κ΅¬μ± μμλ₯Ό μ΄ν΄νλ κ²μ λλ€.
νμ κ΅¬μ± μμ μ 리
- Apple Developer κ³μ : μ±μ κ°λ°νκ³ λ°°ν¬νκΈ° μν κΈ°λ³Έ μ격μ λλ€.
- Bundle ID (App ID):
com.companyname.appnameνμμ κ³ μ λ¬Έμμ΄λ‘, Apple μνκ³ μ λ°μμ μ±μ μλ³νλ λ° μ¬μ©λ©λλ€. Xcode νλ‘μ νΈ μμ± μ μ€μ νλ©°, Developer Portalκ³Ό App Store Connectμ λμΌνκ² λ±λ‘ν΄μΌ ν©λλ€. - μΈμ¦μ(Certificate): κ°λ°μ μ μμ λμ§νΈλ‘ μ¦λͺ ν©λλ€. κ°λ°μ©(Development)κ³Ό λ°°ν¬μ©(Distribution)μΌλ‘ ꡬλΆλ©λλ€.
- νλ‘λΉμ λ νλ‘νμΌ(Provisioning Profile): μ± ID, μΈμ¦μ, ν μ€νΈ κ°λ₯ κΈ°κΈ° λͺ©λ‘μ νλλ‘ λ¬Άλ 컨ν μ΄λμ λλ€. μ±μ΄ νΉμ κΈ°κΈ°μμ μ€νλ μ μλλ‘ κΆνμ λΆμ¬ν©λλ€.
- λ±λ‘λ κΈ°κΈ°(Registered Devices): κ°λ° μ€ μ±μ ν μ€νΈν 물리μ iPhone, iPad, Macμ λλ€. Developer Portalμ UDIDλ₯Ό λ±λ‘ν΄μΌ ν©λλ€.
μ΄λ¬ν μμλ€μ΄ μ΄λ»κ² μνΈμμ©νλμ§ μ΄ν΄νλ κ²μ΄ μνν μ μΆ κ³Όμ μ ν΅μ¬μ λλ€. λ μμΈν κ°λ° νκ²½ μ€μ μ μμ νΈμ§μ© PC μλ²½ κ°μ΄λ: μΈν vs AMD, νλ¦¬λ―Έμ΄ νλ‘ μ΅μ μ 쑰립 견μ 곡κ°!μμ λ€λ₯Έ μ λ¬Έκ°κΈ μν¬νλ‘μ° κ΅¬μΆ μ¬λ‘λ₯Ό μ°Έκ³ ν μ μμ΅λλ€.

βοΈ λ¨κ³λ³ μ€μ : μλ μ μΆμμ μλν λ°°ν¬κΉμ§
1. μΈμ¦μ & νλ‘λΉμ λ νλ‘νμΌ μμ±
Keychain Accessλ₯Ό ν΅ν΄ CSR(Certificate Signing Request) νμΌμ μμ±ν ν, Apple Developer Portalμμ κ°λ°/λ°°ν¬ μΈμ¦μλ₯Ό λ°κΈλ°μ΅λλ€. μ£Όμν μ μ Appleμ μ€κ° μΈμ¦μ(WWDRCA) λ₯Ό ν¨κ» μ€μΉν΄μΌ λ°κΈλ°μ μΈμ¦μκ° 'μ λ’°λ¨' μνκ° λλ€λ κ²μ λλ€.
νλ‘λΉμ λ νλ‘νμΌμ μμ±ν λλ μ©λμ λ§λ νμ μ μ νν©λλ€:
- κ°λ°(Development): κ°λ° λ¨Έμ μ μ§μ μ°κ²°λ κΈ°κΈ°μμ μ€νμ©.
- Ad Hoc: κ°λ° λ¨Έμ μ μ°κ²°λμ§ μμ μΈλΆ ν μ€ν° λ°°ν¬μ© (κΈ°κΈ° λ±λ‘ νμ).
- App Store: μ± μ€ν μ΄ κ³΅κ° λ°°ν¬μ© (κΈ°κΈ° μ ν μμ).
2. μμΉ΄μ΄λΈ μμ± λ° TestFlight λ°°ν¬
Xcodeμμ Product > Archiveλ₯Ό μ νν΄ IPA νμΌμ μμ±ν©λλ€. 'Distribute App'μ μ ννκ³ 'App Store Connect'λ₯Ό ν΅ν΄ μ λ‘λνλ©΄, App Store Connectμ TestFlight μΉμ μμ λΉλ μ²λ¦¬λ₯Ό κΈ°λ€λ¦΄ μ μμ΅λλ€. ν μ€ν° κ·Έλ£Ή(λ΄λΆ/μΈλΆ)μ μ€μ νκ³ λΉλλ₯Ό ν λΉνλ©΄ κ³΅κ° λ§ν¬λ μ΄λ©μΌ μ΄λλ₯Ό ν΅ν΄ λ°°ν¬κ° κ°λ₯ν©λλ€.
3. Xcode Cloudλ₯Ό νμ©ν CI/CD μλν
μλ νλ‘μΈμ€μ human errorμ μμ‘΄μ± λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Appleμ 곡μ CI/CD μλΉμ€μΈ Xcode Cloudλ₯Ό λμ ν μ μμ΅λλ€. GitHub μ μ₯μμ μ°λνμ¬ νΉμ λΈλμΉ νΈμ λλ Pull Request μ μλμΌλ‘ λΉλ, ν μ€νΈ, λ°°ν¬λ₯Ό μ€ννλ μν¬νλ‘μ°λ₯Ό ꡬμ±ν©λλ€.
| μν¬νλ‘μ° μ ν | νΈλ¦¬κ±° 쑰건 | μ£Όμ μ‘μ | λͺ©μ |
|---|---|---|---|
| λΉλ & ν μ€νΈ | main λΈλμΉλ‘μ Pull Request | μμ€ λΉλ, μ λ ν μ€νΈ μ€ν | μ½λ λ³ν© μ νμ§ κ²μ¦ |
| λ°°ν¬(Distribution) | release λΈλμΉ μ
λ°μ΄νΈ | μμΉ΄μ΄λΈ μμ±, App Store Connect λ°°ν¬ | ν μ€ν°μκ² μλ IPA λ°°ν¬ |
μν¬νλ‘μ° κ΅¬μ± μ λ² ν λ²μ μ Xcode λ° macOSλ₯Ό νκ²μΌλ‘ μ€μ νλ©΄, μ£Όμ OS μ λ°μ΄νΈ μ μ νΈνμ± λ¬Έμ λ₯Ό μ μ μ μΌλ‘ λ°κ²¬ν μ μμ΅λλ€. κ²½μ μ μ μ± κ³Ό κΈ°μ μ μμ μ±μ μ‘°νμ κ΄μ¬μ΄ μλ€λ©΄, μν νμ¨ μμ νλ₯Ό μν μ λΆμ κ°λ ₯ν λμ μ‘°μΉ μ΄μ 리 πμμ 체κ³μ μΈ μ κ·Όλ²μ λν ν΅μ°°μ μ»μ μ μμ΅λλ€.

π― μ±κ³΅μ μΈ μ± μΆμλ₯Ό μν ν΅μ¬ 체ν¬λ¦¬μ€νΈ
μ μΆ μ μ΅μ’ μ κ² μ¬ν
- Bundle ID μΌμΉμ±: Xcode, Developer Portal, App Store Connectμ Bundle IDκ° μ νν μΌμΉνλμ§ νμΈνμΈμ.
- μΈμ¦μ μ ν¨μ±: Keychain Accessμμ κ°λ° λ° λ°°ν¬ μΈμ¦μκ° μ ν¨νκ³ μ λ’°λ¨ μνμΈμ§ νμΈνμΈμ.
- νλ‘λΉμ λ νλ‘νμΌ: λΉλ μ€μ μ μ¬λ°λ₯Έ νλ‘νμΌμ΄ μ νλμ΄ μκ³ , ν΄λΉ νλ‘νμΌμ νμν λͺ¨λ μΈμ¦μμ κΈ°κΈ°κ° ν¬ν¨λμ΄ μλμ§ νμΈνμΈμ.
- μ± μμ΄μ½ & λ©νλ°μ΄ν°: λͺ¨λ μꡬ μ¬μ΄μ¦μ μ± μμ΄μ½μ μΆκ°νκ³ , App Store Connectμ μ± μ€λͺ , ν€μλ, μ€ν¬λ¦°μ·, μ°λ½μ² μ 보λ₯Ό λΉ μ§μμ΄ μ λ ₯νμΈμ.
- λΉλ λ²μ : μ± μ€ν μ΄ μ²« μΆμ λ²μ μ λ°λμ 1.0μ΄μ΄μΌ ν©λλ€.
μλνμ μ΄μ κ³Ό κ³ λ €μ¬ν
Xcode Cloud λμ μ μ΄κΈ° μ€μ μ μκ°μ΄ μμλ μ μμ§λ§, μ₯κΈ°μ μΌλ‘λ λ€μκ³Ό κ°μ μ΄μ μ μ 곡ν©λλ€:
- μκ° μ μ½: λΉλ λ° λ°°ν¬ κ³Όμ μ μλν.
- μΌκ΄μ± ν₯μ: Human error μ κ±° λ° νμ€νλ νλ‘μΈμ€.
- νμ ν¨μ¨μ±: νΉμ κ°λ°μμ λν μμ‘΄μ± ν΄μ.
Apple Developer Program νμμ μ 25μκ°μ λ¬΄λ£ Xcode Cloud λΉλ μκ°μ μ 곡λ°μ΅λλ€. λκ·λͺ¨ νλ‘μ νΈμ κ²½μ° λͺ¨λν(λΌμ΄λΈλ¬λ¦¬ λΆλ¦¬)λ₯Ό ν΅ν΄ λΉλ μκ°κ³Ό λΉμ©μ μ΅μ νν μ μμ΅λλ€.
μ΄ κ°μ΄λκ° iOS μ± μ€ν μ΄ μ μΆμ΄λΌλ 볡μ‘ν κ³Όμ μ 체κ³μ μΌλ‘ μ 리νκ³ , μλ μμ μμ νλμ μΈ μλν μν¬νλ‘μ°λ‘ λμκ°λ μ€μ©μ μΈ λ‘λλ§΅μ μ 곡νκΈ°λ₯Ό λ°λλλ€. λμμμ΄ λ³ννλ Apple μνκ³μμ μ§μμ μΈ νμ΅κ³Ό λꡬ νμ©μ΄ μ±κ³΅μ μΈ μ± μΆμμ μ΄μ μ λλ€. π
