From 784446ea4bc575b8f46abe546d0f439ba01105b9 Mon Sep 17 00:00:00 2001 From: Zhongshu Audit Date: Sat, 20 Jun 2026 21:33:44 +0800 Subject: [PATCH] chore: declare ITSAppUsesNonExemptEncryption=NO for App Store upload Apple's annual encryption self-classification questionnaire pops up for every build that does not declare this key. All network calls in OSGKeyboard are HTTPS (the LLM polish call hits a user-configured OpenAI-compatible endpoint) and Apple classifies standard HTTPS as exempt under EAR Category 5 Part 2 Note 4, so the app does not need an encryption registration. The Info.plist properties live in project.yml (XcodeGen), which is what xcodebuild actually consumes. The Info.plist stub on disk is regenerated from project.yml by xcodegen and is gitignored in spirit (it is checked in for tool compatibility but XcodeGen treats it as the canonical source). Verified by: plutil -p .derivedData/.../OSGKeyboard.app/Info.plist | grep -i encrypt -> "ITSAppUsesNonExemptEncryption" => 0 Refs: AUDIT_APPSTORE.md P0-4 --- OSGKeyboard/Info.plist | 2 ++ project.yml | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/OSGKeyboard/Info.plist b/OSGKeyboard/Info.plist index 26d3ea3..39fe503 100644 --- a/OSGKeyboard/Info.plist +++ b/OSGKeyboard/Info.plist @@ -36,6 +36,8 @@ CFBundleVersion $(CURRENT_PROJECT_VERSION) + ITSAppUsesNonExemptEncryption + LSApplicationCategoryType public.app-category.utilities NSAppTransportSecurity diff --git a/project.yml b/project.yml index 527acda..64e9996 100644 --- a/project.yml +++ b/project.yml @@ -95,6 +95,12 @@ targets: - CFBundleURLName: com.osgkeyboard.ios.settings CFBundleURLSchemes: - osgkeyboard + # All network calls are HTTPS (NSAppTransportSecurity above); + # nothing in the app uses non-exempt encryption. Declaring + # `ITSAppUsesNonExemptEncryption: false` lets us skip the + # annual self-classification questionnaire in App Store + # Connect on every upload. + ITSAppUsesNonExemptEncryption: false settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.osgkeyboard.ios