CloudKit Quick Start - Enabling CloudKit in Your App CloudKit


Enabling CloudKit in Your App

https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/CloudKitQuickStart/EnablingiCloudandConfiguringCloudKit/EnablingiCloudandConfiguringCloudKit.html

클라우드킷은 스토어를 통해 배포되는 앱에만 사용할 수 있는 앱 서비스이다. 클라우드킷은 엑스코드 프로젝트에서 추가적인 설정이 필요하다. 앱은 반드시 프로비전드이고 코드 사인이 되어야 클라우드킷에 접근할 수 있다. 코드 사이닝 이슈를 피하려면 엑스코드내에서 호환 탭에서 클라우드킷을 활성화 한다. 엑스코드내 또는 개발자계정에서는 엔타이트런트를 편집할 필요가 없을 것이다.

컨테이너와 데이터베이스에 대해

멀티플 앱과 사용자는 아이클라우드에 접근하지만 데이터는 컨테이너라 불리는 파티션내에서 분리되고 캡슐화되어 있다. 앱에 귀속된 컨테이너는 다른 개발자의 앱에서는 접근할 수 없다. 그러나 앱은 컨테이너를 공유할 수 있다. 다중 앱은 같은 컨테이너를 공유할 수 있고 한 앱은 다중 컨테이너를 사용할 수 있다. 앱에는 하나의 기본 컨테이너가 있지만 추가적인 사용자 컨테이너를 생성할 수도 있다. 기본 컨테이너를 위한 지정자는 앱의 번들아이디와 맞춘다. 다른 컨테이너 아이디는 모든 개발자 계정을 넘나들 수 있게 유일하게 지정해야 한다.

../Art/containers_2x.png

앱이 각 컨테이너내의 퍼블릭과 프라이비트 데이터베이스에 접근할 수 있다. 퍼블릭 데이터베이스는 사용자와 앱 데이터가 앱의 모든 인스턴스 사이에서 공유할 수 있게 한다. 기본적으로, 모든 사용자는 퍼블릭 데이터베이스를 읽을 수 있지만 퍼블릭 데이터베이스에 작성하려면 아이클라우드 크레덴셜이 필요하다. 앱의 각 사용자를 위한 프라이비트 데이터베이스가 있지만, 앱은 현 사용자에 프라이비트 데이터베이스에만 접근할 수 있다. 사용자는 프라이비트 데이터베이스를 읽고 쓰려면 아이클라우드 크레덴셜을 입력해야 한다.

../Art/databases_2x.png

설치

이 문서의 모든 단계를 수행하려면 다음이 필요하다.
- 엑스코드6 이상이 설치된 맵 컴퓨터
- 최상의 경험을 위해 최근 오에스텐과 엑스코드 릴리즈가 설치되는 것이 좋다.
- 에러없이 빌드되는 엑스코드 프로젝트
- 애플 개발자 프로그램 멤버십
- 개발자 계정내의 클라우드킷을 활성화하는 퍼미션

클라우드킷을 사용하기 시작하기 전에 이들 작업이 수행되는지 확인한다. 단계적 명령은 App Distribution Quick Start 를 살펴본다.

Task

../Art/checkbox_checked_2x.png

Join the Apple Developer Program or Apple Developer Enterprise Program.

../Art/checkbox_checked_2x.png

Create an Xcode project that builds and runs.

../Art/checkbox_checked_2x.png

Add your Apple ID to Accounts preferences.

../Art/checkbox_checked_2x.png

Create your team provisioning profile:

  • 1. For Mac apps, choose Mac App Store as the signing identity.

  • 2. Select your team from the Team pop-up menu.

  • 3. Click Fix Issue.

../Art/checkbox_checked_2x.png

For Mac apps, enable App Sandbox in the Capabilities pane.


이들 작업을 성공적으로 마쳤다면, 일반 페인의 팀 팝업 메뉴아래의 픽스 이슈 버튼이 사라질 것이다. 아래 스크린 샷은 성공적으로 생성되었을 때 일반 페인을 보여준다.

../Art/2_create_teamprofile_2x.png

For complete steps on creating a team provisioning profile, read App Distribution Quick Start. To troubleshoot code signing and provisioning, read Troubleshooting in App Distribution Guide.

아이클라우드 활성과 클라우드킷 선택

클라우드킷은 아이클라우드에서 제공되는 세가지의 앱 서비스중 하나이다. 다른 아이클라우드 앱서비스는 키 밸류 저장소와 아이클라우드 문서로서 엑스코드의 아이클라우드 설정에서 함께 보여진다. 클라우드킷을 사용하려면 아이클라우드를 활성화하고 클라우드킷 서비스를 선택한다.

중요: 클라우드 킷을 선택할 때, 엑스코드는 번들아이디에 기반한 기본 컨테이너 아이디를 생성한다. 왜냐하면 아이클라우드 컨테이너를 삭제할 수 없기 때문이다. 번들이아디가 엑스코드내의 일반 페인에서 올바르게 선택되었는지 확인한다. 번들아이디를 변경하려면 App Distribution Quick Start 의 번들아이디 설정부분을 읽어본다

아이클라우드 활성과 클라우드킷을 선택하려면
1. 호환 페인에서 아이클라우드 행을 선택한다.
엑스코드는 아이클라우드를 사용하기 위해 앱을 프로비젼한다. (기본적으로 키 밸류 저장소는 활성화되어있다.)
2. 클라우드킷 체크박스를 선택한다.
엑스코드는 번들아이디에 기반한 기본 클라우드킷 컨테이너를 생성하고 프로젝트에 클라우드킷 프레임워크를 추가한다.

../Art/2_enable_cloudkit.shot/Resources/shot_2x.png

앱은 이제 아이클라우드에 데이터와 문서를 저장한다.

클라우드킷 대시보드에 접근하기


클라우드킷 대시보드를 사용하여 클라우드킷 컨테이너 스키마와 레코드를 관리한다. 스키마는 데이터 베이스내의 레코드, 필드 그리고 관계를 설명하는 것이다. 레코드는 레코드 형식의 한 인스턴스이다. 연관 데이터베이스에서 레코드 형식은 테이블에 대응되고 레코드는 테이블의 한 행에 대응된다.

클라우드 킷 데시보드에 사인인 하려면
1. 호환 페인에서 아이클라우드 설정내의 클라우드킷 대시보드를 클릭한다.
Alternatively, go to https://icloud.developer.apple.com/dashboard.
2. 필요하다면 애플아이디 크레덴셜을 입력하고 사인인을 클릭한다.
가진 모든 팀에 대한 모든 컨테이너가 윈도우에 보여진다.

사인아웃하려면, 윈도우의 우상단 코너의 팝업 메뉴에서 사인아웃을 선택한다.

앱간에 컨테이너 공유하기

선택적으로, 앱이 다중 컨테이너를 사용하거나 단일 컨테이너를 다른 앱과 호환되게 설정한다. 예를 들어, 내부적으로 하나의 앱을 사용해 레코드 형식을 생성하고 알려진 상태에 데이터베이스를 반환하는 앱을 사용할 수 있다. 이 앱은 개발하고 테스트하는 엔드유져 앱에서 사용하는 같은 컨테이너를 공유한다. 이를 위해, 첫 앱을 두번째 앱의 기본 컨테이너를 사용하거나 양 쪽 앱이 공유할 수 있게 사용자 컨테이너를 생성해야 한다. 다른 플랫폼 (iOS, Mac, tvOS)간에 작동하는 앱도 같은 컨테이너를 사용할 수 있게 설정해야 한다.

앱에 컨테이너 추가하기

다른 앱에서 사용하기 위해 사용할 존재하는 컨테이너 아이디를 선택하거나 새로운 것을 생성한다.
앱에 컨테이너를 추가하려면
1. 아이클라우드 설정내의 호환 패인내에서 "사용자 컨테이너 지정하기" 를 선택한다.
이전에 클라우드킷 서비스를 선택할 때 엑스코드는 앱에 대응되는 번들아이디와 매치되는 기본 컨테이너 아이디를 생성한다. 기본 컨테이너 아이디 다음에 체크마크가 보여진다.
../Art/3_specifycontainers1_2x.png

2. 만약 필요하다면, 컨테이너 테이블아래의 새로고침 버튼을 눌러 개발자 계정으로 부터 다른 앱에서 사용하고 있는 컨테이너를 다운로드한다.
3. 추가할 컨테이너 아이디 행내에서 체크박스를 선택한다.
엑스코드는 엔타이틀먼트 파일내에서 컨테이너아이디 리스트를 업데이트한다.
아래 스크린샷은 갤러리 앱의 기본 컨테이너를 공유하는 큐레이터 앱을 보여준다.

../Art/3_specifycontainers2.shot/Resources/shot_2x.png

사용자 컨테이너 생성하기

대체적으로 다중 앱에서 공유되는 사용자 컨테이너를 생성한다.
중요: 팀 관리자만이 컨테이너를 생성할 수 있다. 개인이라면 단일인 팀에 대한 관리자 권한이있는 팀에이젼트이다.
사용자 컨테이너를 생성하려면
1. 기본 컨테이너 사용이 선택되어있으면 사용자 컨테이너 지정을 선택한다
2. 테이블 아래의 추가 버튼을 클릭한다.
3. 보여지는 대화상자에서 원하는 컨테이너 지정자를 입력한다.

주의: 컨테이너 아이디를 삭제할 수 없으니 신중하게 컨테이너 아이디를 선택하자
컨테이너 아이디가 iCloud. 로 시작하며 DNS 노테이션의 반대인 문자열을 가진다.
../Art/3_addicloudcontainerdialog_2x.png

4. OK를 클릭한다
엑스코드는 엑스코드 프로젝트 엔타이틀먼트 파일과 개발자개정에 새로운 컨테이너 아이디를 추가한다.

다른 앱과 새로운 컨테이너 아이디를 공유하려면 Add Containers to an App에 설명되어 있듯이 앱에 컨테이너를 추가한다. 

단계 확인하기

엑스코드의 호환 파인이나 개발자 개정에서 팀에대한 모든 컨테이너 아이디를 확인할 수 있다. 개발자 계정내에서 컨테이너를 추가하고 컨테이너의 이름을 수정할 수 있다.

개발자 계정내에서 컨테이너 아이드를 확인하려면
1. Go to Certificates, Identifiers & Profiles and for Mac apps, choose OS X from the pop-up menu on the left.
2. Under Identifiers, select iCloud Containers.
3. Optionally, in the upper right corner, click the search button and enter text in the search field.
../Art/3_viewing_membercenter_containers.shot/Resources/shot_2x.png
개발을 위한 아이클라우드 계정 생성하기

클라우드킷 컨테이너에 레코드를 저장하려면 아이클라우드 계정이 필요할 것이다. 장치내에서 아이클라우드 계정을 위한 크레덴셜을 입력한다. 만약 아이클라우드 계정이 없으면 개발과정에서 사용할 하나를 생성한다. 맥에서는 시스템 프레퍼런스를 실행하고 아이클라우드를 클릭한다. 애플아이디 텍스트 필드아래에 애플아이디 생성을 클릭하고 명령에 따른다.

../Art/2_create_icloud_account_2x.png

리캡

이 챕터에서 배운내용은 다음과 같다
- 엑스코드 프로젝트에서 클라우드 킷을 활성화하여 앱의 기본 컨테이너를 생성한다
- 클라우드킷 대시보드에 접근해 컨테이너의 스키마와 레코드를 살펴본다
- 개발과정에서 사용할 아이클라우드 계정을 생성한다






덧글

댓글 입력 영역