Jiwift

[iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가 본문

iOS Dev/iOS

[iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가

지위프트 2024. 3. 14. 16:44
반응형

[iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가하기

애플 뉴스

 

 저는 회사에서 사용 중인 정적 라이브러리(Static Library) '.a' 파일이 있습니다. 근데 이번에 애플 뉴스에서는 라이브러리 혹은 앱에서 PrivacyManifest를 추가해야 한다고 했습니다. 이는 xprivacy라는 파일을 추가하고 안에 내용을 추가해야 합니다. 이것은 2024년 3월 13일부터 적용을 시작해야 합니다. 적용을 제대로 하지 않으면 메일을 받게 되고 2024년 5월 1일부터는 심사에 제한을 받게 됩니다.

 

 적용이 필요한 Type

- Privacy Nutrition Label Types

- Privacy Accessed API Types

- Privacy Tracking Domains

- Privacy Tracking Enabled

 

 하지만 정적 라이브러리는 리소스를 포함할 수 없습니다. 그렇기 때문에 어떻게 해야 하나 고민을 많이 했습니다. 애플 코드 지원 레벨에 문의도 넣어보고 개발자 포럼에 관련 글을 남기기도 했습니다. 거기서 들은 대답은 xcframework로 변경하는 것을 추천한다였습니다. 하지만 명확하게 답을 주지 않고 추천한다..라고 들었고 작업을 하기에는 다른 일도 많았습니다. 

 

 그래서 몇 가지 생각을 했습니다. 

1. 정적 라이브러리는 앱에 포함되는 것이니 앱의 PrivacyInfo에 추가하면 되지 않을까??

2. 정말 xcframework로 변경해야 한다면 앞으로 정적 라이브러리 방식은 사용할 수 없다는 것인데 말도 안 되고 그런 언급도 없었다.

3. 애플은 정적 라이브러리를 위한 방법을 따로 주지 않았다. (프레임워크로 다시 만들라는 건 방법을 주었다고 생각하기가 힘들다는 판단)

 

 그리고 204년 3월 13일이 되었습니다. 미국 시간을 고려해서 저는 14일부터 심사를 제출했습니다. 

 

결론은... 앱의 PrivacyInfo에 추가해도 된다!입니다.

 

Privacy Nutrition Label Types는 적용하지 않아도 메일이 오지 않았습니다.

Privacy Accessed API Types는 적용하지 않으면 바로 메일이 옵니다. 

Privacy Tracking Domains - 테스트할 내용이 준비되지 않음

Privacy Tracking Enabled - 테스트할 내용이 준비되지 않음

 

 아래부터는 테스트했던 내용이니 필요 없으신 분들은 안 읽으셔도 됩니다. 테스트를 위한 앱과 스태틱 라이브러리를 준비하였습니다. Privacy Accessed API Types 관련 메일만 받았기 때문에 이 부분만 작성하겠습니다.

 

 아래는 테스트 상황입니다. PrivacyManifest 내용을 지우고 추가하면서 단순 반복 테스트를 진행했습니다.

 

File timestamp APIs - NSPrivacyAccessedAPICategoryFileTimestamp

- stat: 정적 라이브러리

- lstat: 정적 라이브러리

 

System boot time APIs - NSPrivacyAccessedAPICategorySystemBootTime

- mach_absolute_time: 정적 라이브러리

 

Disk space APIs - NSPrivacyAccessedAPICategoryDiskSpace

- systemFreeSize: 앱

- statfs: 정적 라이브러리

- statvfs: 정적 라이브러리

 

User defaults APIs - NSPrivacyAccessedAPICategoryUserDefaults

- UserDefaults: 앱

 

테스트 01 - 앱, 정적 라이브러리 관련 내용 모두 제거

NSPrivacyAccessedAPICategoryDiskSpace, NSPrivacyAccessedAPICategoryFileTimestamp, NSPrivacyAccessedAPICategoryUserDefaults, NSPrivacyAccessedAPICategorySystemBootTime 정보가 누락되었다는 메일을 받게 된다.

 

테스트 02 - User defaults APIs(앱 관련)만 추가

NSPrivacyAccessedAPICategoryDiskSpace, NSPrivacyAccessedAPICategoryFileTimestamp, NSPrivacyAccessedAPICategorySystemBootTime 정보가 누락되었다는 메일을 받게 된다.

 

테스트 03 - Disk space APIs(앱과 라이브러리)만 추가

NSPrivacyAccessedAPICategorySystemBootTime, NSPrivacyAccessedAPICategoryFileTimestamp 정보가 누락되었다는 메일을 받게 된다.

 

테스트 04 - File timestamp APIs, System boot time APIs, Disk space APIs 라이브러리 관련 내용만 추가

NSPrivacyAccessedAPICategoryUserDefaults 정보가 누락되었다는 메일을 받게 된다.

 

테스트 05 - 모든 내용 추가

- 정적 라이브러리와 앱의 모든 내용을 추가

- 메일 안 날라 옴

 

 

 

지난번에 작성한 글

 

[iOS/Swift] 정적 라이브러리(Static Library) Privacy Manifest 의견 (tistory.com)

 

[iOS/Swift] 정적 라이브러리(Static Library) Privacy Manifest 의견

정적 라이브러리(Static Library, .a) Privacy Manifest 추가에 대한 생각 스태틱 라이브러리는 많이 사용하는지는 몰라도 특별한 기술은 아닙니다. 어디서든 사용할 수 있고 흔하게 사용될 수 있는 방법

jiwift.tistory.com

 

반응형