애플을 비롯한 여러 IT회사에서 각 기관의 강력한 요청으로 (혹은 다른 이유로) 사용자의 정보를 보호하기 위한 정책을 강화하고 있습니다
우리는 애플 앱스토어에서 앱을 다운 받으려고 접속하면 아래와 같은 항목을 볼 수 있습니다
언젠가부터 앱스토어에서 앱이 수집하는 개인정보라는 항목으로 이 앱에 어떤 정보를 사용하는지 알 수 있게 되었습니다
지금까지는 앱의 개발자가 자신의 앱의 소스코드를 기반으로 어떤 정보를 사용(수집)하는지 기록했다면 이제는 써드파티 라이브러리(SDK)까지 범위가 확대됩니다
애플은 이렇게 적어놓고 있습니다
Some APIs that your app uses to deliver its core functionality — in code you write or included in a third-party SDK — have the potential of being misused to access device signals to try to identify the device or user, also known as fingerprinting. Regardless of whether a user gives your app permission to track, fingerprinting is not allowed. Describe the reasons your app or third-party SDK on iOS, iPadOS, tvOS, visionOS, or watchOS uses these APIs, and check that your app or third-party SDK only uses the APIs for the expected reasons.
앱 뿐만이 아니라 third-party SDK라고 명시를 하고 있네요.
From Fall 2023 you’ll receive an email from Apple if you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file. From Spring 2024, apps that don’t describe their use of required reason API in their privacy manifest file won’t be accepted by App Store Connect.
마지막 문장에 집중해 봅시다.
24년 봄부터 required reason API를 사용하는데 Privacy Manifest에 관련 내용을 기록하지 않는다면 그 앱은 심사를 통과할 수 없다고 합니다.
나는 그런 기능 안쓰는데? 라고 생각하실지도 모르겠습니다
아래의 글을 보면 생각이 바뀔 거에요 (여기서 확인할 수 있습니다)
SDKs that require a privacy manifest and signature
The following are commonly used SDKs in apps on the App Store. Starting in spring 2024, you must include the privacy manifest for any SDK listed below when you submit new apps in App Store Connect that include those SDKs, or when you submit an app update that adds one of the listed SDKs as part of the update. Signatures are also required in these cases where the listed SDKs are used as binary dependencies. Any version of a listed SDK, as well as any SDKs that repackage those on the list, are included in the requirement.
그리고 이 리스트에는 우리가 자주쓰는
즉 일반 하꼬 개발자인 저같은 사람에게도 이 사안이 영향이 있다는 것이죠
엄청 복잡한 일을 해야하는 것은 아닙니다
당신이 사용중인 오픈소스 라이브러리가 무엇인지 확인해보세요
그리고 그 라이브러리에 PrivacyInfo.xcprivacy 파일이 있는지 확인해보세요
있다면 그 라이브러리는 OK입니다
없다면 바로 깃허브 리포지토리로 달려가서 해당 파일이 있는 버전을 확인한 후 버전을 업데이트하세요
버전 업데이트하면서 영향이 있는지 확인해야 하지만 왠만하면 큰 문제는 없을 겁니다
당신의 SDK를 사용하는 여러 앱들이 조만간 앱스토어에 신규 버전을 올리지 못할지도 모릅니다
당장 PrivacyInfo.xcprivacy를 만들어야 합니다
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests
이 링크를 참고해서 해당사항이 있는지 확인하세요
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api
여기에 상당히 많은 API가 기재되어 있습니다
혹시 내가 개발하는 라이브러리에서 이 API를 사용하지 않는지 확인하세요
PrivacyInfo.xcprivacy 자체는 Plist랑 형태가 거의 같습니다
Alamofire 같은 유명 라이브러리의 리포지토리를 참고해서 어떻게 작성해야 하는지 확인하고 자신의 PrivacyInfo.xcprivacy를 만드세요
새로 프레임워크가 빌드될 때 같이 포함되도록 하면 끝입니다
만약 이전 버전을 써야하는 곳이 있다면 어떡해야 할까요? (특히 유료 SDK 쪽에서 자주 있는 일이죠)
그럴 때는 PrivacyInfo.xcprivacy를 이미 만들어져 있는 .framework 안에 넣어주면 끝입니다
빈 앱 프로젝트를 만든 다음에 프레임워크를 Embed하세요
그 이후에 Product > Archive를 해서 Generate Privacy Report를 했을 때 (Xcode 15.0~) PDF가 생성이 되고 PDF를 열었을 때 빈 화면(해당 내용이 없을 때) 혹은 API & 데이터 처리 관련 내용이 적혀있다면 OK입니다
https://developer.apple.com/app-store/user-privacy-and-data-use/
https://developer.apple.com/app-store/app-privacy-details/
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files
https://developer.apple.com/news/?id=av1nevon
https://developer.apple.com/support/third-party-SDK-requirements/
이번 정보 정책 강화에 대해 이보다 더 잘 정리된 글은 없지 않을까, 감탄하며 읽었습니다. 해당 주제를 처음 접했을 때엔 막막함을 느꼈는데, 가지고 있던 여러 의문점들이(나에게 해당사항이 있나? 아예 업데이트가 멈춰버린 SDK는? 등등) 글을 다 읽을 때 즈음 전부 해소 되었음을 느꼈습니다.
번외로, 링크 걸어두신 'Upcoming third-party SDK requirements'에서 일반적으로 사용되는 SDK들을 확인할 수 있어 좋았습니다. 한 번도 찾아볼 생각을 하지 못했는데... 낯선 SDK들이 많아 한 번 확인해보는 시간을 가지려 합니다. 잘 몰랐던 소식에 대해 이렇게나 좋은 글로 알려주셔서 감사합니다 🙇♀️🙇♀️