[iOS] AppGroup을 켜면 어디까지 공유가 될까? - 2

유인호·2024년 5월 22일
0

iOS

목록 보기
49/73
post-custom-banner

전편 : [iOS] AppGroup을 켜면 어디까지 공유가 될까? - 1


0. 사진과 UserDefaults도 공유시키는 방법

일단 기본적으로, FileManager에 대한 이해가 있어야 함. FileManger에는 다음과 같은 메서드가 있다.

.containerURL(forSecurityApplicationGroupIdentifier: "appgroupName")!

이 메서드를 이용하면 이전에 저장한 곳이 아닌 완전 새로운 곳에 저장된다.

UserDefaults도 마찬가지

UserDefaults(suiteName: "appgroupName")

새로운 곳에 저장하고 워치와 다른 앱에서 접근을 해보도록 하자.

1. 워치의 경우

따로 설정을 해줬음에도 데이터가 공유되질 않았다. 아무래도 다른 기기이다 보니 같은 이름이여도 데이터를 찾지 못하는거 같은데, 내심 애플이라면 공유되지 않을까 싶었지만 어림도 없다는걸 알 수 있었다.

2. 다른 프로젝트의 iOS앱의 경우

다른 앱이여도 같은 기기에서 빌드 했기 때문에 데이터와 Userdefaults, 사진들을 공유할 수 있다는걸 알 수 있다.

두번째 앱에서도 사진을 변경하여도 첫번째 앱에서도 변경이 잘 되는걸 볼 수 있었다.

3. 그렇다면.. 하나의 앱을 삭제했을때 Appgroup은 살아있을까?

잘 살아있다는걸 알 수 있었다.

4. 그렇다면.. 두개 다 삭제하면?

지워진다는걸 알 수 있었다.

5. SwiftData는 따로 설정하지 않아도 알아서 공유가 되었던 이유

Model Configuration에서 groupContainer를 자동으로 automatic으로 설정했기 때문에 공유가 되었다. none으로 설정하게 된다면, 공유를 하지 않게 된다.

6. 결론

Appgroup을 켜준다고 해서 같은 Sandbox를 갖게되는건 아니다.
본인의 Sandbox도 있으면서, Appgroup을 켜준곳 끼리만 접근할 수 있는 하나의 Sandbox에 접근하여 데이터를 공유할 수 있었다.

profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th
post-custom-banner

0개의 댓글