본문 바로가기

Swift

xcode에 swift realm 적용하기 (swift 2.2 기준)

우선 Realm 사이트에서 소스를 다운받는다: https://realm.io/docs/swift/latest/
아래의 순서대로 설정하면 된다. 그런데 나 같은 초짜는 이것도 하기 힘들다.
한글 사이트는 이 글을 쓰는 시점에서 2.2에 대한 해석은 되어 있지 않았다.

  1. Download the latest release of Realm and extract the zip.
  2. Go to your Xcode project’s “General” settings. DragRealmSwift.framework and Realm.framework from the ios/swift-2.2/,watchos/tvos/ or osx/swift-2.2/ directory to the “Embedded Binaries” section. Make sure Copy items if needed is selected and click Finish.
  3. In your unit test target’s “Build Settings”, add the parent path toRealmSwift.framework in the “Framework Search Paths” section.
  4. If using Realm in an iOS, watchOS or tvOS project, create a new “Run Script Phase” in your app’s target’s “Build Phases” and paste the following snippet in the script text field:

    bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"

    This step is required to work around an App Store submission bug when archiving universal binaries.


야~ 요고 하기가 왜 이리 힘든지..

우선 1번은 쉬우니 넘어가고..
2번은 내가 개발하고 있는 프로젝트의 General 세팅으로 가면 된다. (아래 그림은 General이 아니라 Bild Phases가 선택되어 있다)


그리고 General을 클릭하면 Embedded Binaries 섹션을 볼 수 있다. 나는 이미 Realm 프레임웍을 설치해서 스크린샷에 보이는데 처음에는 보이지 않는다.


파인더에서 Realm 소스 압축 푼 데 들어가서 ios/swift-2.2 폴더에 가 보면 이 파일이 보인다. 드래그해서 이 Embedded Binaries 섹션에다 놓자. 그럼 Copy items if needed라는 체크박스를 볼 수 있게 된다. 이렇게 2번은 끝.

3번에서 많이 헤맸는데 나는 프로젝트를 만들 때 test를 체크하지 않기 때문에 이걸 찾아볼 수 없었다. 결국 test를 먼저 추가해줘야 했는데.. 다음과 같이 추가하면 된다.
아래 그림의 우하단의 MathAvengers 부분을 클릭해보자

그럼 이런 선택창이 뜬다. 물론 아직 테스트를 만들지 않은 사람은 MathAvengersTests 라는 항목을 아직은 볼 수 없다.


여기서 Add Target..을 클릭하면 파일 추가하는 창이 보이는데 unit testing bundle을 선택하면 자동으로 테스트가 추가된다. 그리고 이제는 MathAvengersTests가 보일 것이다.

MathAvengersTests를 클릭하면 아래와 같은 화면이 보인다.

3번은 바로 이 화면의 Framework Search Paths Section에 Realm 프레임웍 경로를 추가해주는 것이다.


이 섹션 찾는 것도 쉽지는 않았다. 그냥 우상단의 검색창에 framework search까지만 쳐도 이게 나올 것이다.

드디어 4번.. 나를 진짜 힘들게 했던 4번 과정!!
우선 테스트에서 내 앱(MathAvengers)로 다시 돌아온다. 그리고 Build Phases를 선택한다. 그런데 도대체 아무리 뒤져도 Run Script Phase를 찾을 수도 없었고 생성할 줄도 몰랐다. 그러닥 우연히 아래 그림의 좌하단에 보이는 더하기 버튼을 클릭해 보았다.

드디어 New Run Script Phase를 찾았다!!

아래와 같이 스크립트 문구를 복사해서 붙여 넣으면 설정 끝!!



아 쉬운듯 하면서도 쉽지 않은 이 설정.. 이 글을 쓰기 위해 다시 해보는데도 불구하고 중간에 살짝 헤매었다는.. ㅋㅋ