-
[Unity & iOS] 유니티에서 iOS용 앱 빌드하기 (Feat. 처음 iOS개발할때 발생하는 문제들)Unity 2025. 2. 14. 14:25
개요
이번에 프로젝트를 구글 / 애플 양쪽에 같이 올려보려고 IOS 빌드를 하고자 하였다.
그런데 오마이갓
비상사태 큰일났다~IOS 빌드를 위해서는 개발자 계정과 맥이 있어야 한다는것 아닌가.그래서 저번 포스팅에서
119,000원 이라는 거금을 주고개발자 계정을 만들어보았다.이번 포스팅에서는 실제 빌드를 진행하는 과정을 거치면서, 중간중간 발생하는 문제들을 해결해보자.
이제 즐거운 빌드를 하러 가보자!
0. 사전 세팅
오늘은 준비할게 좀 많다 ㅠ...
1. 맥OS가 설치된 컴퓨터 / 노트북 & 아이폰
- 맥용 빌드를 하기 위해서는 XCode가 필요한데, 이건 MacOS 에서만 설치할 수 있다....
2. Unity 버전 : 2022.3.34f1
3. iOS 빌드용 SDK(Unity) 설치
- iOS빌드를 하기 위해서는 자신이 설치한 에디터에 다음과 같이 표시되어있어야 한다. (이미 설치되어있는 사람은 1번으로)
- UnityHub에 Installs탭으로 가자. 본인이 사용할 에디터를 확인하고, iOS 표시가 없다면 AddModules를 통해 설치해줘야 한다.
- 우측에 톱니바퀴를 누르면 AddModules가 뜨는데, 들어가면 다음과 같이 모듈을 선택할 수 있다.
- iOS Build Support를 체크 후 설치해주자.
Add Modules(Editor) 4. XCode 설치
애플 앱을 개발하기 위한 XCode를 다운받아주어야 한다. (있는 사람은 패스)
App Store에 들어가서 XCode를 검색해주자.
XCode를 처음 실행해주면 이런저런 약관이 뜰텐데, 체크하고 넘어가자
XCode 세팅은 준비 완료되었다.
이제 핸드폰의 개발자 모드를 활성화 하고 연결해주면 되는데....
아이폰 개발자 모드 변경
Xcode에서 아이폰으로 앱 설치 후 실행을 하려면 아이폰은 개발자 모드로 설정 되어 있어야 한다. 아이폰에서 설정 아이콘을 누른다. `개인정보 보호 및 보안` 을 터치해 준다. `개발자 모드`를 켬
dchkang83.tistory.com
해당 블로그를 참고하여 활성화 하면 되는데,
들어가도 개발자모드가 보이지 않는것 아니겠는가?그래서 좀 더 서치해본 결과, 신뢰하는 기기로 등록해야 개발자 모드가 뜬다는 것이다.
케이블 연결시 대체로 신뢰하는지 뜨겠지만, 그게 아닌경우의 해결책이다.
그래서 아이폰을 연결해주고, XCode에 연결하고 Xcode의 메뉴 중 Window > Devices and Simulators 를 들어가준다.
Devieces and Simulators 해당 메뉴로 들어가서 정상적으로 연결이 되어 있다면 핸드폰에 대한 정보가 뜰것이다.
만약 신뢰되지 않은 폰이라면 버튼이 따로 뜰것이다.
핸드폰 정보 상단에 내용을 보면, 보안 탭으로 들어가서 개발자모드를 활성화 하면 된다고 한다.
자, 이제 개발자 모드를 활성화하고 오류메세지가 뜨는데, 재부팅하고 ㅇㅋ 해주면 개발자 모드가 활성화 된다.
기나긴 준비 과정이 끝났으니 빌드를 하러 가보자.
1. iOS빌드하기
간단하게 제대로 빌드되는지 텍스트를 하나 써봐주자
유니티에 들어가서 File > Build Settings로 들어가준다.
IOS로 Switch Plarform 진행
스위치 플랫폼이 완료되면, 좌측 하단의 Player Settings로 들어가준다.
우리가 확인할 것은 총 2가지다.
1. Build Identifier
이건 앱의 이름과 같은데, 기본적으로 세팅한 com.CompanyName.AppName으로 되어있을것이다.
Override를 통해서 따로 적어줄 수는 있지만 기본값으로 설정
2. Signing Team ID
앱을 빌드하기 위해서는, 우리가 이 앱을 만들었다는 서명을 해주어야 한다.Android 빌드에서는 KeyStore를 통해서 서명을 해주는데, 애플에서는 TeamID를 등록해서 서명을 진행해준다.
구글 빌드에서 서명 관련하여서는 추가 포스팅을 올려볼 예정아무튼, 저기 Automatically Sign 부분에 체크를 하면 TeamID를 기반으로 유니티가 자동으로 서명을 진행해준다.
해당 항목을 체크하고 TeamID를 작성해주면 된다.
**TeamID는 어디서 찾는가?
Apple Developer
There’s never been a better time to develop for Apple platforms.
developer.apple.com
본인의 개발자 계정으로 로그인한 후, 상단 네비게이션 탭의 Account(계정) -> 멤버십 세부 사항에서 팀 ID를 확인할 수 있다.
팀 ID를 Signing Team ID 부분에 붙여넣으면 세팅 준비 끝
**Automatically Sign을 체크하지 않아도 빌드는 된다. XCode 넘어가서 서명해달라고 오류 메시지를 띄워주는데, 그때 본인 팀을 설정해주면 된다.
자 그럼 기본적인 세팅은 완료.
이제 프로젝트 내에 Build_IOS 폴더를 만들어주고, Build And Run을 실행시켜보자.
오류없이 빌드가 된다면 다음과 같이 XCode가 뜰것이다.
현재 iOS를 타겟으로 빌드중이므로, 상단의 AnyiOS Device를 클릭하면 연결된 핸드폰이 뜰것이다.
본인의 핸드폰을 선택해주고 기다리다보면...
암호를 입력해주고 또 기다리면....
핸드폰을 켜달라고 한다. 핸드폰을 켜주면
아이폰 빌드 화면 DAMNNNNNN~~~~
빌드가 완료 되었다.
현재는 아무것도 없는 상태에서 빌드를 했기 때문에, 빌드가 비교적 쉬웠다.
근데 이미 오류를 체험하고 해결했기 때문에 쉬웠던것도 있음...
다음은 직접 겪은 오류 케이스들을 간단하게 정리해보았다.(필요 시 추가예정)
2. 발생했던 오류 케이스
1. xcode 인식을 못해요
Overriding backend due to platform constraints : 'burst-llvm-10' Starting 1 library requests Error: xcrun: error: SDK "iphoneos" cannot be located
해당 오류는 iOS 빌드 과정에서 iOS SDK를 찾을 수 없다는 오류메세지다.
XCode는 정상적으로 설치되어 있는데, Unity에서 자동으로 실행하지 못한다면 다음과 같은 방법을 시도해보자.
//1. 활성 개발자 디렉토리 경로 설정 sudo xcode-select --switch /Applications/Xcode.app //2. iOS SDK 설치 경로 확인 xcrun --sdk iphoneos --show-sdk-path
iOS SDK 가 제대로 인식될 수 있게 하는 방법으로, 필자의 경우는 다음 방법으로 해결되었다.
만약 Xcode Command Line Tools가 없다면?
xcode-select --install
을 시도해보자.
해당 오류 해결방법은 깃 이슈에서 확인할 수 있었다.
역시 나만 겪는 문제가 아니였어ios build fails with SDK "iphoneos" cannot be located · Issue #206 · gluonhq/substrate
When building for target iOS on Mac, this error occurred: [Mon Dec 16 11:12:57 CET 2019][FINE] PB Command for sdk: xcrun --sdk iphoneos --show-sdk-path [Mon Dec 16 11:12:57 CET 2019][FINE] Start pr...
github.com
2. Cocoapod이 없대요... 이게 뭐에요
Cocoapod은 의존성 관리 매니저로, 수많은 라이브러리의 의존성을 자동으로 관리해주는 툴이다.
Firebase, 구글 로그인 등 외부 서비스를 사용하려면 여러 iOS 라이브러리들이 필요한데, 서로 의존성을 가지고 있어서 수동으로 관리하기가 매우 복잡하다.
이를 Cocoapod이 해결해주는데, 프로젝트 내에 해당 플러그인들을 import해놓은 상태에서 빌드를 하게되면 오류가 발생하는 것이다.
해결방법
1안) Homebrew를 통한 Cocoapod 설치
먼저 터미널을 실행한다.
Homebrew로 Cocoapod을 설치해주자.
만약 홈브루가 없다면? 그리고 뭔지 모르겠다면?
홈브류(Homebrew)란?
홈브류(Homebrew)는 맥스 호웰(Max Howell)이 주도해서 개발한 맥OS, 리눅스 용 패키지 관리 애플리케이션입니다. 홈브류는 루비(Ruby)로 개발되었으며, 2009년에 개발을 시작해 2019년에는 2.0 버전이 릴리
www.44bits.io
해당 사이트에서 홈브류에 대해 배워보자. 개발자이고 맥을 쓴다면 사실 없어서는 안될 앱이다.
아무튼 홈브루가 있다면
brew install cocoapods
를 실행해서 Cocoapod을 설치해준다.
일단 설치가 완료되면 Build시에는 정상적으로 되지만, XCode에서 오류가 뜨게 된다.
이유는, 빌드가 완료된 후 해당 폴더에서 pod 초기화 및 설치를 진행해줘야 되기 때문이다.
이를 진행해주기 위해서는
//1. 터미널을 열고 본인의 ios 빌드 경로로 이동한다. cd [프로젝트_경로]/builds/iOS //2. pod 초기화 및 설치를 진행해준다. pod install //3. 이 과정에서 다음 작업들이 수행된다. //Podfile에 명시된 의존성 라이브러리들을 다운로드 //워크스페이스 생성 //프로젝트 설정 업데이트 //설정이 완료되면 .xcodeproj 파일 대신 .xcworkspace 파일을 사용해서 Xcode를 실행
를 따라서 진행해준다.
근데 이렇게 되면, 빌드를 할때마다 해당 경로로 들어가서 pod install.을 해주어야 하는 번거로움이 생긴다.
그래서 좀 더 쉬운 방법으로는
2안) Unity의 iOS 빌드 설정에서 Cocoapod 활성화하기 (추천)
구글 로그인 등의 플러그인을 다운받았다면 External Dependency Manager가 자동으로 설치되어 있을것이다.
만약 설치되어있지 않다면 https://cgmoon.tistory.com/7를 참고해서 설치해주자(의존성 관리 파트)iOS Resolver
여기에 들어가면 Install Cocoapod을 선택해준다.그럼 Cocoapod이 Unity에 의해 설치된다.
이제 그 밑에 Settings로 들어가면,
다음과 같은 화면을 확인할 수 있다.
어으 투머치 잉글리시....라고 겁먹지 말고,
Integration 설정을 해준다.
세가지 항목이 있는데 다음 설명을 확인해보자(Written By Claude)
- Xcode Workspace - Add Cocoapods to the Xcode workspace
- 가장 권장되는 옵션입니다
- Cocoapod으로 관리되는 모든 라이브러리를 워크스페이스 레벨에서 통합 관리
- Firebase, 구글 로그인 등 외부 서비스를 사용할 때 이 옵션을 선택하세요
- Xcode Project - Add Cocoapods to the Xcode project
- 프로젝트 레벨에서만 Cocoapod을 관리
- 단순한 프로젝트에서는 사용 가능하지만, 복잡한 의존성 관리가 필요한 경우 문제가 발생할 수 있음
- None - Do not integrate Cocoapods
- Cocoapod을 사용하지 않음
- 외부 라이브러리나 서비스를 전혀 사용하지 않는 매우 단순한 프로젝트에서만 선택
구글 로그인등의 서비스를 이용하려면 첫번째 옵션을 선택하면 되는것이라고 한다.
이제 의존성 관리 세팅은 완료 되었으니 빌드를 진행한다.
필자는 다음과 같은 오류를 해결하고 정상 빌드가 되었는데, 만약 다른 오류가 있으면, 댓글로 문의 주면 아는 내에서 답변드리도록 하겠다.
아무튼, 빌드는 완료되었으니 이제 즐거운 iOS 개발을 진행해보자.
우리 모두 구글 / 앱스토어 모두 런칭해서 돈을 버는 그날까지
😘즐코(즐거운 코딩 되시길)!
'Unity' 카테고리의 다른 글
[Unity + Google SpreadSheet] 구글 스프레드 시트 자동 번역 기능 제작 & Unity 연결(Google Sheet Service) (1) (1) 2025.03.07 [Unity] Localization을 활용하여 국가별 맞는 언어 적용하기 (0) 2025.03.06 [Firebase] 유니티에 파이어베이스 연동하기 (4) 2025.02.01 [Addressable] 빌드 오류 해결 방법 - Addressables - Unable to load runtime data at location (5) 2025.01.31 [디자인패턴] 옵저버 패턴(Observer Pattern) - Unity로 게임 개발하기 (1) 2024.12.15