Skip to main content

verifyos_cli/rules/
permissions.rs

1use crate::rules::core::{AppStoreRule, ArtifactContext, RuleError, RuleResult, Severity};
2
3pub struct CameraUsageDescriptionRule;
4
5impl AppStoreRule for CameraUsageDescriptionRule {
6    fn id(&self) -> &'static str {
7        "RULE_CAMERA_USAGE"
8    }
9
10    fn name(&self) -> &'static str {
11        "Missing Camera Usage Description"
12    }
13
14    fn severity(&self) -> Severity {
15        Severity::Error
16    }
17
18    fn evaluate(&self, artifact: &ArtifactContext) -> Result<RuleResult, RuleError> {
19        if let Some(plist) = artifact.info_plist {
20            if !plist.has_key("NSCameraUsageDescription") {
21                return Err(RuleError::MissingCameraUsageDescription);
22            }
23        }
24
25        Ok(RuleResult { success: true })
26    }
27}