[iOS] App Encryption Documentation Issue encountered while deploying React Native App to App Store | Paaaack

Yes Lee
5 min readJun 13, 2024

--

Missing Compliance: Being asked for the App Encryption Documentation on App Store Connect

實際要從無到有自己走一遍 iOS 的上架流程真的是會遇到各種小問題,我目前已經用 Expo + React Native 做了一個 Paaaack 的 iOS App,現在正在進行上架到 App Store 的動作,不得不說 Expo 真的把 build 跟 submit 封裝得超棒,透過 eas-cli 很簡單就能完成:

eas build --platform ios
eas submit -p ios

甚至還有漂亮的後台能看!

Expo Dashboard

不過成功把 app submit 到 App Store Connect 後,會發現有個 Missing Compliance 的 warning,而且會沒辦法把 Tester 加進 TestFlight Build,不能在上架前先用 TestFlight 測試是不太行的。

Missing Compliance: Being asked for the App Encryption Documentation on App Store Connect

查了一下問題原因,原來是 Expo 預設不會幫忙設定 Info.plistITSAppUsersNonExemptEncrption,而在 App 只有使用 https request 沒有用其他特別的加密方式的情況下 ITSAppUsersNonExemptEncrption 是可以設定成 false 就好就不會有 Compliance 需要提出。

Solution

修改 app.json,加上 expo.ios.config.usesNonExemptEncryption: false

// app.json
{
"expo": {
"ios": {
"config": {
// https://docs.expo.dev/versions/latest/config/app/#usesnonexemptencryption
// Type: boolean • Path: ios.config.usesNonExemptEncryption
// Sets ITSAppUsesNonExemptEncryption in the standalone ipa's Info.plist to the given boolean value.
"usesNonExemptEncryption": false
}
}
}
}

重跑一次 npx expo prebuild 讓 Expo 修改 ios 的 Info.plist

Set ITSAppUsersNonExemptEncrption to false

最後再跑一次 build 跟 submit 送上新版

eas build --platform ios
eas submit -p ios

就能得到可以透過 TestFlight 安裝的 Build 了!

A TestFlight build without warning

--

--