์ฑ์คํ ์ด์ ์ค์ ์ฑ์ ๋ฐฐํฌํด๋ณธ ์ฌ๋์ ์๊ฒ ์ง๋ง, ์ธ์ฆ์, provisioning๊ณผ ๊ฐ์ ๊ฐ๋ ์ ์์ํ๋ค. ์ ํํ๊ฒ ์์๋ณด์.
์์น
Apple ๋ง์ด ์์ ๋ค์ ํ๋์จ์ด(iOS, iPadOS, MacOS etc)์ ํน์ ์ํํธ์จ์ด๊ฐ ๋์ํ๋๋ก ํ ์ ์๋ค.
์ด ์์น์ ์๊ณ ๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ค์์์ ์ํํธ์จ์ด์ ๋์ ๊ถํ์ ๊ด๋ฆฌํ๊ฒ ๋ค๋ ๊ฒ. ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋, ๋ด๊ฐ ๋ง๋ ์ฑ์ด ์ ํ์ ํ๋์จ์ด์์ ๋์์ํค๊ณ ์ถ์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผํ๋๊ฐ์ด๋ค. ํญ์ ์ ํ์๊ฒ ๋ฌผ์ด๋ณผ ์๋ ์๋ ๋ ธ๋ฆ. ๊ทธ๋์ ํ์ํ ๊ฒ์ด ์ธ์ฆ์์ด๋ค.
Apple ์ธ์ฆ์
์ ํ์ด ์ฃผ๋ ๊ฐ๋ฐ์ ์ ๋ขฐ ์ธ์ฆ ๋ฌธ์
๋๋ผ๋ ๊ฐ๋ฐ์๋ฅผ ์ ํ์ด ์ ๋ขฐํ๋ค๋ ์ฆ์๋ก ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํด์ฃผ๊ณ , ์ด๋ฅผ ํ์ฉํ์ฌ ์ฑ ์คํ ๊ถํ์ ๊ฐ์ง๋ ๊ฒ. ์ด๊ฑธ Apple ์ธ์ฆ์๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฐฉ๋ฒ
ํด๋น ๊ธ์ ๋ฐฉ๋ฒ์ด ์ ๋์์๋ค.
- โํค์ฒด์ธ ์ ๊ทผ ์ฑโ์์ CSR(Certificate Signing Request)๋ฅผ ์์ฑํ๋ค.
- ํค์ฒด์ธ ์ ๊ทผ โ ์ธ์ฆ์ ์ง์ โ ์ธ์ฆ ๊ธฐ๊ด์์ ์ธ์ฆ์ ์์ฒญโ
- ํด๋น ์์ ์ ์ด๋ฐ ์์ ์ ์ํํ๋ค.
- ๊ณต๊ฐํค, ๊ฐ์ธํค ์์ฑ
- ์ ํ์ ๋ณด๋ผ
CertificateSigningRequest.certSigningRequest
ํ์ผ ์์ฑ
- ํค์ฒด์ธ ์ ๊ทผ โ ์ธ์ฆ์ ์ง์ โ ์ธ์ฆ ๊ธฐ๊ด์์ ์ธ์ฆ์ ์์ฒญโ
- Certificate ๋ฐ๊ธ ๋ฐ๊ธฐ
- Apple Developer โ Certificates, Identifiers & Profiles
- Development, Distribution์ผ๋ก ๋๋จ, ์ ํ
- CSR(CertificateSigningRequest) ๋ฑ๋ก ํ Continue
- ๋ค์ด๋ก๋ํ์ฌ KeyChain ์ ์ฉ ํ์ธ
์ฌ๊ธฐ๊น์ง ๋๋๋ค๋ฉด, ์ ํ์์ ์ธ์ฆํ ๊ฐ๋ฐ์๊ฐ ๋ ๊ฒ์ด๋ค. ์ฑ์ signํ ์ ์๋ ๊ถํ์ด ์๊ฒผ๋ค. ํ์ง๋ง, ์ค์ ๋ก ํค๋น ์ฑ์ ์ค์นํ๋ ๊ธฐ๊ธฐ์์ ์ญ์ ์ฑ์ ๋ง๋ ๊ฐ๋ฐ์๋ฅผ ์ ๋ขฐํด์ฃผ์ด์ผ ์ค์น๊ฐ ๊ฐ๋ฅํ๋ค.
์ด๋ ๊ฒ ์ ํ์ด ์ฆ๋ช ํด์ฃผ๋ ์ ํ์ธ์ฆ์์ iOS ๊ธฐ๊ธฐ์์์ ์ ๋ขฐ ์ฌ๋ถ๋ฅผ ์ฐ๊ฒฐํด์ฃผ์ด์ผ ํ๋ค.
Provisioning Profile
์ํํธ์จ์ด๋ฅผ ์คํ์ํฌ ๋๋ฐ์ด์ค๊ฐ ๊ฐ๋ฐ์ ์ ๋ขฐ์ฌ๋ถ์ ๋ฐ๋ผ ์ฑ ์ค์น์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ, iOS๊ธฐ๊ธฐ์ ์ ํ ์ธ์ฆ์๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ
์์ ์คํ๊ถํ์ ๋ฑ๋ก๋ ๋จ๋ง์ ํํด์ ์ธ์ ํด์ฃผ๋ ๋จ๊ธฐ ์ฌํ๋น์
Provisioning Profile์๋ ์์ ๊ทธ๋ฆผ์ฒ๋ผ 3๊ฐ๊ฐ ๋ค์ด๊ฐ๋ค.
- App Id: ์ฑ์คํ ์ด์ ๋ฑ๋ก๋ Bundle ID
- Certificate: ์์์ ๋ง๋ Apple ์ธ์ฆ์
- Device: ๋๋ฐ์ด์ค์ UUID
Certificate๋ ๋ง๋ค์์ผ๋, App Id, Device ์ ๋ณด๋ฅผ ์ป๊ณ , ๊ทธ ํ์ Proivisioning Profile์ ๋ง๋ค์ด๋ณด์.
App ID ์์ฑ ๋ฐฉ๋ฒ
ํด๋น ๊ธ์ ์ ๋์์๋ค. ์์ฝ๋ง ํ๊ฒ ๋ค.
- Apple Developer โ App IDs
- Identifier์ Type์ ์ ํ๋ค.
- App
- App Clip
- Bundle ID ๋ฑ๋ก
- ์ฌ์ฉํ Capabilities ์ฒดํฌ, ์ถํ ์์ ๊ฐ๋ฅ
- Continue โ Register
Device ๋ฑ๋ก ๋ฐฉ๋ฒ
- Apple Developer โ Devices
-
- ํด๋ฆญ
- Name์ UUID ์ ๋ ฅ
- Continue
๋๋ฐ์ด์ค์ UUID๋ Xcode โ window โ Devices and Similators์ ๋ค์ด๊ฐ๋ฉด ํ์ธํ ์ ์๋ค. (Identifier)
Provisioning Profile ์์ฑ ๋ฐฉ๋ฒ
- Apple Developer โ Provisioning Proifiles
- Development, Distribution ์ ํ, Continue
- App Id ์ ํ
- ์ธ์ฆ์ ์ ํ
- Device ์ ํ
- Provisioning profile ์ด๋ฆ ์ ๋ ฅ
- ํ์ผ ๋ค์ด๋ก๋
<์ด๋ฆ ๊ท์น ์์>
[<company name>] <app name> <profile type (AdHoc|AppStore)>
Apple FaceTime AdHoc
Instagram AppStore
์์๋์ด์ผ ํ ์
- provisioning ํ์ผ์ ๋ง๋ค๋ฉด,
*.mobileprovision
ํ์ฅ์๋ก ์์ฑ๋๋๋ฐ, ์ด ๋ ์์ด iOS ์ฑ์ ์ปดํ์ผํ๋ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ค. - ๊ทธ๋ฆฌ๊ณ proivisioning profile์ ์ด ์ฑ์ ์คํํด๋ณด๊ณ ์ ํ๋(ํ ์คํธ) ๋๋ฐ์ด์ค์ ์ค์น๋์ด์ผ ํ๋ค.
- ๊ฐ๋ฐ์๋ ๋ณต์์ ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ ๊ฐ์ง ์ ์๋ค.
- ํ์ง๋ง App ID์ ์ค์ ์ปดํ์ผํ๋ ค๋ ์ฑ์ Bundle ID๊ฐ ์ผ์นํด์ผ ํ๋ฏ๋ก, ์ฆ ๊ฐ ํ๋ก์ ํธ๋ง๋ค ํ๋์ ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ ๋ง๋ค์ด์ผ ํ๋ค.
๋น๋ ๋ฐ ์คํ๊ณผ์
Ad-Hoc
์์ ๋ชจ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์ป์ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ฐ๋ฐ์๋ฅผ ์ฆ๋ช ํ๋ ๊ณต๊ฐํค, ๋น๋ฐํค
- ์ ํ์ด ์ธ์ ํด์ค ์ฑ ์๋ช ํ๋ฝ ์ธ์ฆ์ (Apple ์ธ์ฆ์)
- ๋๋ฐ์ด์ค์ ์ค์น๊ฐ๋ฅํ Provisioning Profile
์ด ์ธ๊ฐ์ง๋ฅผ ๊ฐ์ง๊ณ Xcode์์ ๋น๋๋ฅผ ํ๊ฒ ๋๋๋ฐ ๊ทธ๋ ๊ฒ ํด์ ์์ฑ๋๋ ๊ฒ์ด .app
ํ์ผ์ด๋ค. ํด๋น ํจํค์ง ๋ด๋ถ์๋ 2๊ฐ๊ฐ ์๋ค.
- ์ปดํ์ผ ์ ์ฌ์ฉ๋ provisioning profile์ด ๋ณต์ฌ๋๋ค.
- codeSignature folder
- CodeResources๋ ํ์ผ(.plist)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ํจํค์ง์ ์๋ ๋ชจ๋ ํ์ผ์ ์ํธํ๋ ํด์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๊ทธ๋ผ ์ฑ์ด ๋๋ฐ์ด์ค์ ์ค์น๋ ๋๋ ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณ ์คํ๋ ๊น?
.app
์ ํฌํจ๋ Provisioning profile ์ด ์ ํ์์ ์๋ช ๋ ๊ฒ์ธ์ง ํ์ธ- CodeResources ํ์ผ์ ๊ธฐ๋ก๋ ๊ฐ ํ์ผ์ ํด์์ ๋ณด๋ฅผ ์ค์ ํ์ผ๋ค๊ณผ ํ์ธํ์ฌ ๋น๋ ํ ์์ ๋์ง ์์๋์ง ํ์ธ (๋จ๋ฐฉํฅ ์ํธํ)
- ๋๋ฐ์ด์ค์
.app
์ ํฌํจ๋ Provisioning Profile์ด ์๋์ง ํ์ธ
์์ ๊ฐ์ ๋ฐฉ์์ ๊ฑฐ์ณ ์คํ๋๋ค.
Enterprise
๋ชจ๋ ๋๋ฐ์ด์ค๋ฅผ ์ ํ์ ๋ฑ๋กํ์ง ์๊ณ ๋ ๊ฐ๋ฐ๋ ์ฑ์ ๋๋ฐ์ด์ค์ ๋ฐ๋ก ์คํํ ์ ์๋๋ก ํด์ฃผ๋ ์ธ์ฆ์๋ฅผ ์ค๋ค. ์ฆ, ํน์ ํ์ฌ์ ์ ํ์ธ ๊ฒ๊ณผ ๊ฐ์ ์ ๋์ ๊ถํ์ ์ค๋ค๋ ๊ฒ.
App Store ๋ฐฐํฌ
Enterprise ๋ฐฐํฌ์ ๋น์ทํ๋ค, ์ด ๋ฐฐํฌ ๊ณผ์ ์ ํฌํจ๋ Provisioning profile์ ๊ฒฝ์ฐ, ๋น๋๋ ์ฑ์ด ์ด๋ค ๋๋ฐ์ด์ค์์๋ ์คํ์ด ๋์ง ์๋๋ค.
์ฆ, ํด๋น provisioning profile์ ์ฑ์คํ ์ด ์ ์ถ์ฉ ๋ง๊ณ ์ด๋์๋ ์ฌ์ฉํ ์ ์๋ค.
์ ํ์ชฝ์ ์ฑ์ ์ ์ถํ๋ฉด, ํด๋น ์ฑ์ ๊ฐ๋ฐ์์ ์ํด ์ด๋ฏธ ์๋ช ๋์๊ณ , provisioning profile์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ธ์ฆ๋ ๊ฐ๋ฐ์๊ฐ ์ ์ถํ ์ฑ์์ ํ์ธํ ์ ์๋ค.
์ดํ ์ ํ ์ธก์์ ์ฑ ๋ฐฐํฌ๋ฅผ ์น์ธํ๋ฉด, ์์ ๋ค์ ์๋ช ์ ๋ค์ํ์ฌ ๋ชจ๋ iOS ๋๋ฐ์ด์ค์์ ์คํํ ์ ์๋๋ก ํด์ค๋ค.
์ฐธ๊ณ ) TestFlight ๋ฐฐํฌ๋ฅผ ์ํ๋ค๋ฉด ํด๋น ์ต์ ์ ํด๋ฆญํด์ผ ํ๋ค.
Reference
- ์ฝ๋์ฌ์ด๋, ์ธ์ฆ์, ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ด๋?
- ์๋ฉด ์์๋ก ํท๊ฐ๋ฆฌ๋ IOS ํ๊ฒฝ #1 - ์ธ์ฆ์์ ํ๋ก๋น์ ๋(์ฝ๋์๋ช )
- ์ฝ๋์ฌ์ด๋? ์ธ์ฆ์? ํ๋ก๋น์ ๋??
- [iOS] ์ฝ๋ ์ฌ์ด๋ (ํ๋ก๋น์ ๋ ํ๋กํ์ผ, ์ธ์ฆ์)
- [iOS] ์ธ์ฆ์์ ์ฝ๋ ์ฌ์ด๋ ์ดํดํ๊ธฐ