Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions Snap-Safe-Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- SnapSafe encrypts user media with AES-256-GCM (CryptoKit) as its core
feature, which is NOT exempt encryption — so this must be true.
Export posture: standard algorithms, self-classified mass market
(5D992.c). Requires the annual self-classification report to BIS and
the French ANSSI declaration. Once App Store Connect issues a code,
add ITSEncryptionExportComplianceCode to skip per-build questions. -->
<key>ITSAppUsesNonExemptEncryption</key>
<true/>
<!-- Export compliance: SnapSafe uses non-exempt encryption (AES-256-GCM via
CryptoKit is its core feature), but ITSAppUsesNonExemptEncryption is
deliberately NOT set here. Declaring it without a matching
ITSEncryptionExportComplianceCode makes App Store Connect reject the
upload (error 90592), and the app has no approved encryption
documentation/code yet. Leaving the key out makes App Store Connect ask
the export compliance questions per build; answer them truthfully
(uses encryption: yes, standard algorithms). If App Store Connect later
issues a code, add both keys back together. -->
</dict>
</plist>
4 changes: 2 additions & 2 deletions SnapSafe.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1379,7 +1379,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_ASSET_PATHS = "\"SnapSafe/Preview Content\"";
DEVELOPMENT_TEAM = BP75F4S5N3;
ENABLE_PREVIEWS = YES;
Expand Down Expand Up @@ -1424,7 +1424,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_ASSET_PATHS = "\"SnapSafe/Preview Content\"";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8P3G3HT4J5;
Expand Down
8 changes: 5 additions & 3 deletions docs/HOW-TO-RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ git push origin vX.Y.Z
## 5. App Store Connect (manual)

- [ ] Wait for the build to finish processing.
- [ ] Answer the export compliance question for the build. SnapSafe declares non-exempt encryption
(`ITSAppUsesNonExemptEncryption` in `Snap-Safe-Info.plist`) and has no `ITSEncryptionExportComplianceCode`,
so App Store Connect asks for every build.
- [ ] Answer the export compliance questions for the build (it shows "Missing Compliance" until you do).
SnapSafe uses non-exempt encryption: answer yes, standard algorithms. `Snap-Safe-Info.plist`
deliberately omits `ITSAppUsesNonExemptEncryption`: setting it without an
`ITSEncryptionExportComplianceCode` makes the upload fail with error 90592, and the app has no
approved encryption documentation code yet. If App Store Connect issues one, add both keys.
- [ ] Create the new version, enter "What's New" release notes, and select the build.
- [ ] Update screenshots if the UI changed.
- [ ] Submit for review; release once approved.
Expand Down
Loading