본 포스팅은 이하 버전을 기준으로 작성되었습니다.
· Firebase 6.29.0
· Swift 5.2.4
Intro
Firebase 한 번쯤 들어보지 않으셨나요? 초보 개발자가 모바일 앱을 개발하고 개인 앱 서버를 운영하는데 있어 빠질 수 없는 것이 Firebase 가 아닐까 합니다. 속도에 조금 불만이 있긴 하지만 사실 백엔드를 모르는 개발자가 이렇게 쉽고 간편하게 회원가입부터 데이터 관리까지 할 수 있는 서버를 그것도 일정수준까지는 무료로 운영할 수 있게 해주는 서비스가 또 어디있을까요? 이 서비스가 없었으면 저는 지금 Python 도 같이 배우고 있었을 것 같네요. ~~ 물론 결국엔 배우는게 목표지만…~~
아무튼 Firebase 는 모바일 앱 개발자에게 백엔드 과정을 지원해주는 플랫폼 입니다. 그럼 오늘은 Xcode 프로젝트와 Firebase 를 연동하는 방법을 알아보도록 하겠습니다. 이 포스팅을 작성하는 시점에서는 Firebase 가 Swift Package Manager 를 지원하지 않아 CocoaPods 를 통해 설치하게되므로 CocoaPods 에 익숙하지 않은 분들은 CocoaPods - 설치 및 라이브러리 적용하기 포스팅을 먼저 읽어보세요.
Firebase 와 친해지기
Firebase 는 Google 아이디만 있으면 특별히 가입할 필요도 없이 누구나 쉽게 사용할 수 있어요.
홈페이지에 접속하고 나면 이런 화면을 볼 수 있을거에요. 구글 아이디로 로그인이 되어있다면 우측 상단에는 본인의 프로필 사진도 보이게 됩니다 ㅎㅎ 만약에 정말 혹시라도 만약에 구글 아이디가 없으신 분들은 계정을 하나 만드세요…
그리고 프로필 사진 옆을 잘 보시면 콘솔로 이동이라는 항목이 보이시죠? 이걸 클릭해서 Firebase 프로젝트가 보이는 화면으로 들어가 봅시다.
저는 이미 Firebase 를 통해 여러 프로젝트를 진행했기 때문에 2개의 프로젝트가 보이지만 여러분은 아마 + 버튼 하나만 보일거에요. 이 버튼으로 Firebase 의 프로젝트를 생성하고 Xcode 프로젝트의 Bundle Identifier 를 이용해서 연결해주는 방식입니다. 연결이 되고나면 Xcode 프로젝트가 코드를 통해 Firebase 를 찾아가라는 명령을 받고 자신의 Bundle Identifier 로 등록된 Firebase 의 프로젝트를 찾아가는 것이라고나 할까나…
프로젝트를 만드는 순서는 지금 당장 + 버튼을 눌러 Firebase 프로젝트 생성을 시작하고 중간에 Xcode 프로젝트의 Bundle Identifier 가 필요한 시점에 Xcode 프로젝트를 생성해도 되지만 어자피 이렇게 하면 프로젝트를 왔다갔다해야되서 번거로우니 저는 그냥 Xcode 프로젝트부터 생성하고 Firebase 를 생성하는 것을 선호합니다.
Bundle Identifier 복하사기
그럼 Xcode 프로젝트를 생성하고 Bundle Identifier 를 복사해둘게요.
Firebase 프로젝트 생성하기
그럼 이제 + 버튼을 눌러 프로젝트를 생성해볼게요. 첫 화면은 프로젝트 명을 생성하는 화면입니다.
Xcode 프로젝트명과 달라도 괜찮습니다. 단순히 Firebase 홈페이지 내부적으로 관리하기 위한 이름이에요. 그래도 두 프로젝트가 서로 어느정도는 이름이 비슷해야 나중에 알아보기 쉬우니까 저는 똑같이 만들도록 할게요.
그 다음으로는 Google Analytics 를 설정하는 페이지가 뜰거에요. 이걸 사용하게되면 내 앱에 접속하는 사용자의 다양한 정보들을 그래프와 수치로 받아볼 수 있게됩니다. 서버 운영에 반드시 사용해야하는 기능은 아니니까 필요없는 상황에서는 그냥 끄고 사용하는 것도 괜찮습니다.
지금은 튜토리얼이니까 켜고 진행하도록 할게요.
다음 화면에서는 Google Analytics 에 어떤 계정을 사용할꺼냐 묻는데 어자피 하나밖에 없습니다. Defualt Account for Firebase 를 선택해주세요.
그리고 프로젝트 생성을 누르면 잠시 로딩을 하고 프로젝트 내부화면으로 넘어가게 됩니다.
Xcode 프로젝트와 연동하기
최초로 Firebase 에서 프로젝트를 만든 경우에는 저하고 화면이 조금 다를 수 있지만 별로 어려운 부분은 없으니 잘 넘어오셔서 아래와 같은 화면에서 iOS 를 클릭해주세요. 우리는 iOS 앱을 개발하는 것이므로 iOS 를 선택하는 것입니다 ㅎㅎ
이제 드디어 Xcode 프로젝트의 Bundle Identifier 가 필요한 시점이 왔어요. 가장 첫 텍스트필드에 값을 넣어주고 Register App 을 눌러줍니다.
그리고 이제 다음 화면에서 GoogleService-Info.plist 을 다운받아주세요.
그리고 다운받은 파일을 Xcode 프로젝트에 드래그해서 아래 이미지처럼 옮겨줍니다.
이때 알림창이 하나 뜨게되는데 꼭 첫번째 칸을 체크해주세요. Xcode 프로젝트의 폴더 내부로 실제 plist 파일을 복사한다는 의미입니다.
다시 Firebase 홈페이지로 돌아와서 Next 를 누르면 이제 CocoaPods 을 통해 Firebase 사용에 필요한 파일들을 다운로드 받으라고 안내합니다.
Xcode 프로젝트 폴더 내의 Podfile 에 pod ‘Firebase’ 을 입력해주세요. 여기서 막히는 분들은 위의 CocoaPods 튜토리얼을 참고해주세요.
pod 'Firebase'
이렇게 CocoaPods 설치를 마쳤다면 다시 Next 를 눌러줍니다. 이제 Xcode 프로젝트의 Appdelegate 에서 우리가 필수적으로 작업해야 할 내용들을 안내하고 있네요.
더 이상 xcodeproj 파일은 사용할 수 없으므로 xcworkspace 파일을 열고 새롭게 생긴 파일들을 잘 인식할 수 있돌고 빌드를 한번 해줍니다.
그리고 프로젝트 상단에 Firebase 를 import 해보면 오류없이 잘 인식하는 것을 확인할 수 있습니다.
import Firebase
그리고application(didFinishLaunchingWithOptions)
함수 내부에 FirebaseApp.configure()
코드를 구현해줍니다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
다시 Firebase 홈페이지에서 Next 를 누르면 이런 화면이 뜨게되는데 이제 Xcode 에서 앱을 한번 실행합니다.
혹시라도 FirebaseApp.configure()
을 찾을 수 없다고 오류가 뜨는 분이 있다면 Xcode 를 먼저 껏다 켜주시고 그래도 안된다면 아래 코드를 추가로 import 해보세요.
import FirebaseCore
그리고 Firebase 가 정상적으로 연결되었다면 Xcode 콘솔에서 다음과 비슷한 메세지를 확인할 수 있습니다.
시뮬레이터가 실행되고 조금 기다리다보면 이렇게 초록색 안내가 뜨며 아래 버튼들이 활성화되는데 만약 아무리 기다려봐도 로딩이 끝나지 않는다면 그냥 넘어가도 아무문제 없습니다.
계속 이 화면에서 넘어가지지 않는다면 Skip this page 를 눌러 다음 화면으로 넘어가주세요. 전혀 문제없습니다.
자 이것으로 Firebase 연동을 완전히 끝냈습니다.
개인 앱을 만드는 분들은 앞으로 많은 곳에서 Firebase 를 사용하게 될 수 있으니까 지금 이 과정은 눈감고도 할 수 있을만큼 익숙하게 알아두시는 것을 추천합니다!