Individual skill
ios-app-store-submit
Build, sign, and submit a Flutter/iOS app to the App Store Connect — covers Xcode archive/export, code signing (including headless-Mac keychain workarounds), the `asc` CLI for App Store Connect metadata automation, screenshot handoff, and final review submission. Use when asked to build and upload an iOS app, set up App Store code signing, fix a rejected/failed App Store Connect upload, automate App Store Connect metadata, or submit an app for App Store review. Triggers: "빌드해서 제출", "App Store 제출", "archive and upload", "TestFlight에 올려줘", "asc CLI로 메타데이터".
SKILL.md
Source commit 935d2ea3ff6ba286702ea8154475f6c05696ab91
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 144
- Repository last updated
- Oct 1, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- github Repository topic
- release-automation Repository topic
- developer-tools Repository topic
- release-management Repository topic
- ai-agent-skill Repository topic
- automation-devops Repository topic
- github-actions Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.gitignoreasset · 786 bytesCHANGELOG.mddoc · 667 bytesLICENSEasset · 1,069 bytesREADME.ko.mddoc · 10,416 bytesREADME.mddoc · 10,009 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesSKILL.mdcore · 18,853 bytesapple_rules/app_privacy_data_types.jsonasset · 3,840 bytesapple_rules/app_review_guidelines.jsonasset · 13,237 bytesapple_rules/hig_rules.jsonasset · 9,367 bytesapple_rules/required_reason_apis.jsonasset · 1,714 bytesassets/infographics/ios-app-store-submit-v2-architecture.ko.svgasset · 12,204 bytesassets/infographics/ios-app-store-submit-v2-architecture.svgasset · 12,065 bytesfixtures/readiness/ambiguous_plist_manual/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/ambiguous_plist_manual/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/ambiguous_plist_manual/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/ambiguous_plist_manual/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/ambiguous_plist_manual/lib/main.dartasset · 15 bytesfixtures/readiness/ambiguous_plist_manual/pubspec.yamlasset · 134 bytesfixtures/readiness/ambiguous_yaml_manual/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/ambiguous_yaml_manual/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/ambiguous_yaml_manual/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/ambiguous_yaml_manual/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/ambiguous_yaml_manual/lib/main.dartasset · 15 bytesfixtures/readiness/ambiguous_yaml_manual/pubspec.yamlasset · 141 bytesfixtures/readiness/design_control_size_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_control_size_unknown/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_control_size_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_control_size_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_control_size_unknown/lib/main.dartasset · 361 bytesfixtures/readiness/design_control_size_unknown/pubspec.yamlasset · 134 bytesfixtures/readiness/design_fixed_text_container/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_fixed_text_container/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_fixed_text_container/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_fixed_text_container/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_fixed_text_container/lib/main.dartasset · 268 bytesfixtures/readiness/design_fixed_text_container/pubspec.yamlasset · 134 bytesfixtures/readiness/design_gesture_only/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_gesture_only/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_gesture_only/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_gesture_only/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_gesture_only/lib/main.dartasset · 343 bytesfixtures/readiness/design_gesture_only/pubspec.yamlasset · 134 bytesfixtures/readiness/design_hardcoded_text/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_hardcoded_text/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_hardcoded_text/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_hardcoded_text/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_hardcoded_text/lib/main.dartasset · 232 bytesfixtures/readiness/design_hardcoded_text/pubspec.yamlasset · 134 bytesfixtures/readiness/design_icon_button_no_semantics/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_icon_button_no_semantics/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_icon_button_no_semantics/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_icon_button_no_semantics/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_icon_button_no_semantics/lib/main.dartasset · 335 bytesfixtures/readiness/design_icon_button_no_semantics/pubspec.yamlasset · 134 bytesfixtures/readiness/design_localized_text/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_localized_text/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_localized_text/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_localized_text/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_localized_text/lib/main.dartasset · 250 bytesfixtures/readiness/design_localized_text/pubspec.yamlasset · 134 bytesfixtures/readiness/design_missing_localization_key/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_missing_localization_key/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_missing_localization_key/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_missing_localization_key/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_missing_localization_key/lib/l10n/app_en.arbasset · 71 bytesfixtures/readiness/design_missing_localization_key/lib/l10n/app_ko.arbasset · 56 bytesfixtures/readiness/design_missing_localization_key/lib/main.dartasset · 15 bytesfixtures/readiness/design_missing_localization_key/pubspec.yamlasset · 134 bytesfixtures/readiness/design_no_signals/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_no_signals/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_no_signals/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_no_signals/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_no_signals/lib/main.dartasset · 15 bytesfixtures/readiness/design_no_signals/pubspec.yamlasset · 134 bytesfixtures/readiness/design_partial_parser_coverage/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_partial_parser_coverage/ios/Runner/ContentView.swiftasset · 192 bytesfixtures/readiness/design_partial_parser_coverage/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_partial_parser_coverage/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_partial_parser_coverage/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_partial_parser_coverage/lib/main.dartasset · 15 bytesfixtures/readiness/design_partial_parser_coverage/pubspec.yamlasset · 134 bytesfixtures/readiness/design_permission_context_risk/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_permission_context_risk/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_permission_context_risk/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_permission_context_risk/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_permission_context_risk/lib/main.dartasset · 154 bytesfixtures/readiness/design_permission_context_risk/pubspec.yamlasset · 134 bytesfixtures/readiness/design_runtime_evidence_required/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_runtime_evidence_required/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_runtime_evidence_required/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_runtime_evidence_required/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_runtime_evidence_required/lib/main.dartasset · 363 bytesfixtures/readiness/design_runtime_evidence_required/pubspec.yamlasset · 134 bytesfixtures/readiness/design_safe_area_present/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_safe_area_present/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_safe_area_present/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_safe_area_present/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_safe_area_present/lib/main.dartasset · 290 bytesfixtures/readiness/design_safe_area_present/pubspec.yamlasset · 134 bytesfixtures/readiness/design_safe_area_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_safe_area_unknown/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_safe_area_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_safe_area_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_safe_area_unknown/lib/main.dartasset · 256 bytesfixtures/readiness/design_safe_area_unknown/pubspec.yamlasset · 134 bytesfixtures/readiness/design_small_explicit_control/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_small_explicit_control/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_small_explicit_control/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_small_explicit_control/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_small_explicit_control/lib/main.dartasset · 355 bytesfixtures/readiness/design_small_explicit_control/pubspec.yamlasset · 134 bytesfixtures/readiness/design_valid_basic/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/design_valid_basic/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/design_valid_basic/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/design_valid_basic/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/design_valid_basic/lib/main.dartasset · 610 bytesfixtures/readiness/design_valid_basic/pubspec.yamlasset · 134 bytesfixtures/readiness/failed_verify/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/failed_verify/ios/Runner/Info.plistasset · 525 bytesfixtures/readiness/failed_verify/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/failed_verify/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/failed_verify/lib/main.dartasset · 15 bytesfixtures/readiness/failed_verify/pubspec.yamlasset · 134 bytesfixtures/readiness/forbidden_bundle_id/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/forbidden_bundle_id/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/forbidden_bundle_id/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/forbidden_bundle_id/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/forbidden_bundle_id/lib/main.dartasset · 15 bytesfixtures/readiness/forbidden_bundle_id/pubspec.yamlasset · 134 bytesfixtures/readiness/forbidden_privacy/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/forbidden_privacy/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/forbidden_privacy/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/forbidden_privacy/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/forbidden_privacy/lib/main.dartasset · 15 bytesfixtures/readiness/forbidden_privacy/pubspec.yamlasset · 134 bytesfixtures/readiness/forbidden_signing/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/forbidden_signing/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/forbidden_signing/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/forbidden_signing/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/forbidden_signing/lib/main.dartasset · 15 bytesfixtures/readiness/forbidden_signing/pubspec.yamlasset · 134 bytesfixtures/readiness/malformed_json_ambiguous/config/app_config.jsonasset · 67 bytesfixtures/readiness/malformed_json_ambiguous/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/malformed_json_ambiguous/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/malformed_json_ambiguous/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/malformed_json_ambiguous/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/malformed_json_ambiguous/lib/main.dartasset · 15 bytesfixtures/readiness/malformed_json_ambiguous/pubspec.yamlasset · 134 bytesfixtures/readiness/malformed_json_recoverable/config/app_config.jsonasset · 70 bytesfixtures/readiness/malformed_json_recoverable/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/malformed_json_recoverable/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/malformed_json_recoverable/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/malformed_json_recoverable/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/malformed_json_recoverable/lib/main.dartasset · 15 bytesfixtures/readiness/malformed_json_recoverable/pubspec.yamlasset · 134 bytesfixtures/readiness/malformed_plist_safe_repair/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/malformed_plist_safe_repair/ios/Runner/Info.plistasset · 523 bytesfixtures/readiness/malformed_plist_safe_repair/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/malformed_plist_safe_repair/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/malformed_plist_safe_repair/lib/main.dartasset · 15 bytesfixtures/readiness/malformed_plist_safe_repair/pubspec.yamlasset · 134 bytesfixtures/readiness/malformed_yaml_safe_repair/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/malformed_yaml_safe_repair/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/malformed_yaml_safe_repair/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/malformed_yaml_safe_repair/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/malformed_yaml_safe_repair/lib/main.dartasset · 15 bytesfixtures/readiness/malformed_yaml_safe_repair/pubspec.yamlasset · 136 bytesfixtures/readiness/missing_localization_scaffold/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/missing_localization_scaffold/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/missing_localization_scaffold/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/missing_localization_scaffold/lib/main.dartasset · 15 bytesfixtures/readiness/missing_localization_scaffold/pubspec.yamlasset · 134 bytesfixtures/readiness/missing_privacy_policy/ios/Runner.xcodeproj/project.pbxprojasset · 391 bytesfixtures/readiness/missing_privacy_policy/ios/Runner/Info.plistasset · 315 bytesfixtures/readiness/missing_privacy_policy/lib/main.dartasset · 15 bytesfixtures/readiness/missing_privacy_policy/pubspec.yamlasset · 39 bytesfixtures/readiness/missing_review_info/ios/Runner.xcodeproj/project.pbxprojasset · 390 bytesfixtures/readiness/missing_review_info/ios/Runner/Info.plistasset · 248 bytesfixtures/readiness/missing_review_info/lib/main.dartasset · 103 bytesfixtures/readiness/missing_review_info/pubspec.yamlasset · 38 bytesfixtures/readiness/missing_version/ios/Runner.xcodeproj/project.pbxprojasset · 393 bytesfixtures/readiness/missing_version/ios/Runner/Info.plistasset · 249 bytesfixtures/readiness/missing_version/ios/Runner/en.lproj/InfoPlist.stringsasset · 43 bytesfixtures/readiness/missing_version/lib/main.dartasset · 15 bytesfixtures/readiness/missing_version/pubspec.yamlasset · 79 bytesfixtures/readiness/privacy_collection_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_collection_unknown/ios/Runner/Info.plistasset · 536 bytesfixtures/readiness/privacy_collection_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_collection_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_collection_unknown/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_collection_unknown/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_contradicted/.asc/app_privacy_answers.jsonasset · 209 bytesfixtures/readiness/privacy_contradicted/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_contradicted/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_contradicted/ios/Runner/PrivacyInfo.xcprivacyasset · 647 bytesfixtures/readiness/privacy_contradicted/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_contradicted/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_contradicted/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_contradicted/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_generic_http_only/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_generic_http_only/ios/Runner/Info.plistasset · 447 bytesfixtures/readiness/privacy_generic_http_only/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_generic_http_only/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_generic_http_only/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_generic_http_only/pubspec.yamlasset · 191 bytesfixtures/readiness/privacy_location_network_possible/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_location_network_possible/ios/Runner/Info.plistasset · 543 bytesfixtures/readiness/privacy_location_network_possible/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_location_network_possible/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_location_network_possible/lib/main.dartasset · 94 bytesfixtures/readiness/privacy_location_network_possible/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_manifest_collection/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_manifest_collection/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_manifest_collection/ios/Runner/PrivacyInfo.xcprivacyasset · 688 bytesfixtures/readiness/privacy_manifest_collection/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_manifest_collection/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_manifest_collection/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_manifest_collection/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_manifest_invalid/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_manifest_invalid/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_manifest_invalid/ios/Runner/PrivacyInfo.xcprivacyasset · 282 bytesfixtures/readiness/privacy_manifest_invalid/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_manifest_invalid/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_manifest_invalid/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_manifest_invalid/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_manifest_valid/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_manifest_valid/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_manifest_valid/ios/Runner/PrivacyInfo.xcprivacyasset · 359 bytesfixtures/readiness/privacy_manifest_valid/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_manifest_valid/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_manifest_valid/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_manifest_valid/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_no_signals/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_no_signals/ios/Runner/Info.plistasset · 309 bytesfixtures/readiness/privacy_no_signals/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_no_signals/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_no_signals/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_no_signals/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_permission_only/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_permission_only/ios/Runner/Info.plistasset · 543 bytesfixtures/readiness/privacy_permission_only/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_permission_only/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_permission_only/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_permission_only/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_policy_missing/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_policy_missing/ios/Runner/Info.plistasset · 375 bytesfixtures/readiness/privacy_policy_missing/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_policy_missing/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_policy_missing/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_policy_missing/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_required_reason_missing/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_required_reason_missing/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_required_reason_missing/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_required_reason_missing/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_required_reason_missing/lib/main.dartasset · 184 bytesfixtures/readiness/privacy_required_reason_missing/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_required_reason_present/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_required_reason_present/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_required_reason_present/ios/Runner/PrivacyInfo.xcprivacyasset · 531 bytesfixtures/readiness/privacy_required_reason_present/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_required_reason_present/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_required_reason_present/lib/main.dartasset · 184 bytesfixtures/readiness/privacy_required_reason_present/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_sdk_analytics_present/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_sdk_analytics_present/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_sdk_analytics_present/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_sdk_analytics_present/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_sdk_analytics_present/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_sdk_analytics_present/pubspec.yamlasset · 206 bytesfixtures/readiness/privacy_tracking_domain_conflict/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_tracking_domain_conflict/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_tracking_domain_conflict/ios/Runner/PrivacyInfo.xcprivacyasset · 354 bytesfixtures/readiness/privacy_tracking_domain_conflict/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_tracking_domain_conflict/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_tracking_domain_conflict/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_tracking_domain_conflict/pubspec.yamlasset · 134 bytesfixtures/readiness/privacy_tracking_true/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/privacy_tracking_true/ios/Runner/Info.plistasset · 461 bytesfixtures/readiness/privacy_tracking_true/ios/Runner/PrivacyInfo.xcprivacyasset · 353 bytesfixtures/readiness/privacy_tracking_true/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/privacy_tracking_true/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/privacy_tracking_true/lib/main.dartasset · 15 bytesfixtures/readiness/privacy_tracking_true/pubspec.yamlasset · 134 bytesfixtures/readiness/review_backend_dependency_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_backend_dependency_unknown/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_backend_dependency_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_backend_dependency_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_backend_dependency_unknown/lib/main.dartasset · 62 bytesfixtures/readiness/review_backend_dependency_unknown/pubspec.yamlasset · 134 bytesfixtures/readiness/review_login_credentials_config_only/config.yamlasset · 237 bytesfixtures/readiness/review_login_credentials_config_only/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_login_credentials_config_only/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_login_credentials_config_only/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_login_credentials_config_only/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_login_credentials_config_only/lib/main.dartasset · 55 bytesfixtures/readiness/review_login_credentials_config_only/pubspec.yamlasset · 134 bytesfixtures/readiness/review_login_uncertain/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_login_uncertain/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_login_uncertain/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_login_uncertain/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_login_uncertain/lib/main.dartasset · 15 bytesfixtures/readiness/review_login_uncertain/pubspec.yamlasset · 134 bytesfixtures/readiness/review_login_with_demo_evidence/REVIEW_NOTES.mddoc · 131 bytesfixtures/readiness/review_login_with_demo_evidence/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_login_with_demo_evidence/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_login_with_demo_evidence/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_login_with_demo_evidence/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_login_with_demo_evidence/lib/main.dartasset · 55 bytesfixtures/readiness/review_login_with_demo_evidence/pubspec.yamlasset · 134 bytesfixtures/readiness/review_login_without_demo_evidence/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_login_without_demo_evidence/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_login_without_demo_evidence/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_login_without_demo_evidence/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_login_without_demo_evidence/lib/main.dartasset · 55 bytesfixtures/readiness/review_login_without_demo_evidence/pubspec.yamlasset · 134 bytesfixtures/readiness/review_permission_missing_description/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_permission_missing_description/ios/Runner/Info.plistasset · 447 bytesfixtures/readiness/review_permission_missing_description/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_permission_missing_description/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_permission_missing_description/lib/main.dartasset · 15 bytesfixtures/readiness/review_permission_missing_description/pubspec.yamlasset · 166 bytesfixtures/readiness/review_placeholder_metadata/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_placeholder_metadata/ios/Runner/Info.plistasset · 514 bytesfixtures/readiness/review_placeholder_metadata/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_placeholder_metadata/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_placeholder_metadata/lib/main.dartasset · 15 bytesfixtures/readiness/review_placeholder_metadata/pubspec.yamlasset · 134 bytesfixtures/readiness/review_privacy_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_privacy_unknown/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_privacy_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_privacy_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_privacy_unknown/lib/main.dartasset · 15 bytesfixtures/readiness/review_privacy_unknown/pubspec.yamlasset · 134 bytesfixtures/readiness/review_rule_provenance/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_rule_provenance/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_rule_provenance/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_rule_provenance/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_rule_provenance/lib/main.dartasset · 15 bytesfixtures/readiness/review_rule_provenance/pubspec.yamlasset · 134 bytesfixtures/readiness/review_valid_basic/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/review_valid_basic/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/review_valid_basic/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/review_valid_basic/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/review_valid_basic/lib/main.dartasset · 15 bytesfixtures/readiness/review_valid_basic/pubspec.yamlasset · 134 bytesfixtures/readiness/safe_format_normalization/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/safe_format_normalization/ios/Runner/Info.plistasset · 529 bytesfixtures/readiness/safe_format_normalization/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/safe_format_normalization/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/safe_format_normalization/lib/main.dartasset · 15 bytesfixtures/readiness/safe_format_normalization/pubspec.yamlasset · 136 bytesfixtures/readiness/safe_missing_scaffold/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/safe_missing_scaffold/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/safe_missing_scaffold/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/safe_missing_scaffold/lib/main.dartasset · 15 bytesfixtures/readiness/safe_missing_scaffold/pubspec.yamlasset · 134 bytesfixtures/readiness/stale_plan/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/stale_plan/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/stale_plan/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/stale_plan/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/stale_plan/lib/main.dartasset · 15 bytesfixtures/readiness/stale_plan/pubspec.yamlasset · 136 bytesfixtures/readiness/user_authored_content_protected/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/user_authored_content_protected/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/user_authored_content_protected/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/user_authored_content_protected/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/user_authored_content_protected/lib/main.dartasset · 70 bytesfixtures/readiness/user_authored_content_protected/pubspec.yamlasset · 134 bytesfixtures/readiness/valid_flutter/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/readiness/valid_flutter/ios/Runner/Info.plistasset · 527 bytesfixtures/readiness/valid_flutter/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/readiness/valid_flutter/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/readiness/valid_flutter/lib/main.dartasset · 15 bytesfixtures/readiness/valid_flutter/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_ambiguous_text/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_ambiguous_text/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_ambiguous_text/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_ambiguous_text/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_ambiguous_text/lib/main.dartasset · 15 bytesfixtures/recovery/reject_ambiguous_text/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_ambiguous_text/rejection.txtdoc · 224 bytesfixtures/recovery/reject_clarification_needed/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_clarification_needed/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_clarification_needed/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_clarification_needed/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_clarification_needed/lib/main.dartasset · 15 bytesfixtures/recovery/reject_clarification_needed/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_clarification_needed/rejection.txtdoc · 184 bytesfixtures/recovery/reject_demo_credentials_user_attested/.asc/readiness-report.jsonasset · 38,977 bytesfixtures/recovery/reject_demo_credentials_user_attested/.asc/recovery_attestations.jsonasset · 219 bytesfixtures/recovery/reject_demo_credentials_user_attested/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_demo_credentials_user_attested/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_demo_credentials_user_attested/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_demo_credentials_user_attested/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_demo_credentials_user_attested/lib/main.dartasset · 55 bytesfixtures/recovery/reject_demo_credentials_user_attested/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_demo_credentials_user_attested/rejection.txtdoc · 235 bytesfixtures/recovery/reject_design_small_control/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_design_small_control/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_design_small_control/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_design_small_control/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_design_small_control/lib/main.dartasset · 355 bytesfixtures/recovery/reject_design_small_control/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_design_small_control/rejection.txtdoc · 291 bytesfixtures/recovery/reject_dispute_with_evidence/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_dispute_with_evidence/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_dispute_with_evidence/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_dispute_with_evidence/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_dispute_with_evidence/lib/main.dartasset · 15 bytesfixtures/recovery/reject_dispute_with_evidence/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_dispute_with_evidence/rejection.txtdoc · 222 bytesfixtures/recovery/reject_fixed_unverified/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_fixed_unverified/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_fixed_unverified/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_fixed_unverified/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_fixed_unverified/lib/main.dartasset · 55 bytesfixtures/recovery/reject_fixed_unverified/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_fixed_unverified/rejection.txtdoc · 235 bytesfixtures/recovery/reject_fixed_verified/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_fixed_verified/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_fixed_verified/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_fixed_verified/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_fixed_verified/lib/main.dartasset · 15 bytesfixtures/recovery/reject_fixed_verified/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_fixed_verified/rejection.txtdoc · 188 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/lib/main.dartasset · 15 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_guideline_2_1_crash_unknown/rejection.txtdoc · 252 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/lib/main.dartasset · 55 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_guideline_2_1_missing_review_access/rejection.txtdoc · 310 bytesfixtures/recovery/reject_localization_missing_key/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_localization_missing_key/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_localization_missing_key/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_localization_missing_key/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_localization_missing_key/lib/l10n/app_en.arbasset · 71 bytesfixtures/recovery/reject_localization_missing_key/lib/l10n/app_ko.arbasset · 56 bytesfixtures/recovery/reject_localization_missing_key/lib/main.dartasset · 15 bytesfixtures/recovery/reject_localization_missing_key/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_localization_missing_key/rejection.txtdoc · 218 bytesfixtures/recovery/reject_metadata_placeholder/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_metadata_placeholder/ios/Runner/Info.plistasset · 514 bytesfixtures/recovery/reject_metadata_placeholder/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_metadata_placeholder/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_metadata_placeholder/lib/main.dartasset · 15 bytesfixtures/recovery/reject_metadata_placeholder/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_metadata_placeholder/rejection.txtdoc · 247 bytesfixtures/recovery/reject_partial_fix/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_partial_fix/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_partial_fix/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_partial_fix/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_partial_fix/lib/main.dartasset · 55 bytesfixtures/recovery/reject_partial_fix/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_partial_fix/rejection.txtdoc · 326 bytesfixtures/recovery/reject_privacy_missing_declaration/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_privacy_missing_declaration/ios/Runner/Info.plistasset · 543 bytesfixtures/recovery/reject_privacy_missing_declaration/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_privacy_missing_declaration/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_privacy_missing_declaration/lib/main.dartasset · 15 bytesfixtures/recovery/reject_privacy_missing_declaration/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_privacy_missing_declaration/rejection.txtdoc · 283 bytesfixtures/recovery/reject_reply_claim_guard/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_reply_claim_guard/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_reply_claim_guard/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_reply_claim_guard/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_reply_claim_guard/lib/main.dartasset · 55 bytesfixtures/recovery/reject_reply_claim_guard/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_reply_claim_guard/rejection.txtdoc · 235 bytesfixtures/recovery/reject_unknown_guideline/ios/Runner.xcodeproj/project.pbxprojasset · 1,041 bytesfixtures/recovery/reject_unknown_guideline/ios/Runner/Info.plistasset · 527 bytesfixtures/recovery/reject_unknown_guideline/ios/Runner/Runner.entitlementsasset · 185 bytesfixtures/recovery/reject_unknown_guideline/ios/Runner/en.lproj/InfoPlist.stringsasset · 45 bytesfixtures/recovery/reject_unknown_guideline/lib/main.dartasset · 15 bytesfixtures/recovery/reject_unknown_guideline/pubspec.yamlasset · 134 bytesfixtures/recovery/reject_unknown_guideline/rejection.txtdoc · 123 bytesfixtures/resubmit/resubmit_approval_pending/recovery-report.jsonasset · 443 bytesfixtures/resubmit/resubmit_approved_matching_digest/recovery-report.jsonasset · 446 bytesfixtures/resubmit/resubmit_blocked_unverified/recovery-report.jsonasset · 458 bytesfixtures/resubmit/resubmit_command_failure/recovery-report.jsonasset · 443 bytesfixtures/resubmit/resubmit_conditional_user_confirmation/recovery-report.jsonasset · 491 bytesfixtures/resubmit/resubmit_missing_build_id/recovery-report.jsonasset · 418 bytesfixtures/resubmit/resubmit_missing_submission_id/recovery-report.jsonasset · 402 bytesfixtures/resubmit/resubmit_no_secret_in_command/recovery-report.jsonasset · 425 bytesfixtures/resubmit/resubmit_post_state_waiting_for_review/recovery-report.jsonasset · 473 bytesfixtures/resubmit/resubmit_ready_verified/recovery-report.jsonasset · 437 bytesfixtures/resubmit/resubmit_reply_not_ready/recovery-report.jsonasset · 476 bytesfixtures/resubmit/resubmit_stale_approval/recovery-report.jsonasset · 437 bytesios_app_store_submit/__init__.pyruns · 102 bytesios_app_store_submit/design/__init__.pyruns · 354 bytesios_app_store_submit/design/accessibility.pyruns · 11,739 bytesios_app_store_submit/design/evaluator.pyruns · 3,655 bytesios_app_store_submit/design/inspector.pyruns · 3,355 bytesios_app_store_submit/design/interaction.pyruns · 6,612 bytesios_app_store_submit/design/layout.pyruns · 6,506 bytesios_app_store_submit/design/localization.pyruns · 8,766 bytesios_app_store_submit/design/models.pyruns · 11,126 bytesios_app_store_submit/design/report.pyruns · 1,654 bytesios_app_store_submit/privacy/__init__.pyruns · 205 bytesios_app_store_submit/privacy/contradictions.pyruns · 5,222 bytesios_app_store_submit/privacy/inspector.pyruns · 7,212 bytesios_app_store_submit/privacy/manifest.pyruns · 15,417 bytesios_app_store_submit/privacy/mapper.pyruns · 4,145 bytesios_app_store_submit/privacy/models.pyruns · 10,930 bytesios_app_store_submit/privacy/report.pyruns · 12,201 bytesios_app_store_submit/privacy/sdk_catalog.pyruns · 4,797 bytesios_app_store_submit/readiness/__init__.pyruns · 322 bytesios_app_store_submit/readiness/fixes/__init__.pyruns · 402 bytesios_app_store_submit/readiness/fixes/models.pyruns · 2,285 bytesios_app_store_submit/readiness/fixes/planner.pyruns · 3,919 bytesios_app_store_submit/readiness/fixes/safe_fixes.pyruns · 5,850 bytesios_app_store_submit/readiness/fixes/structured_repair.pyruns · 10,683 bytesios_app_store_submit/readiness/fixes/verifier.pyruns · 8,629 bytesios_app_store_submit/readiness/gates/__init__.pyruns · 231 bytesios_app_store_submit/readiness/gates/metadata.pyruns · 12,678 bytesios_app_store_submit/readiness/gates/reviewability.pyruns · 8,995 bytesios_app_store_submit/readiness/gates/technical.pyruns · 9,574 bytesios_app_store_submit/readiness/inspector.pyruns · 4,056 bytesios_app_store_submit/readiness/models.pyruns · 7,129 bytesios_app_store_submit/readiness/report.pyruns · 2,248 bytesios_app_store_submit/recovery/__init__.pyruns · 399 bytesios_app_store_submit/recovery/mapper.pyruns · 6,279 bytesios_app_store_submit/recovery/models.pyruns · 17,836 bytesios_app_store_submit/recovery/parser.pyruns · 7,031 bytesios_app_store_submit/recovery/planner.pyruns · 4,771 bytesios_app_store_submit/recovery/reply.pyruns · 3,513 bytesios_app_store_submit/recovery/report.pyruns · 11,735 bytesios_app_store_submit/recovery/root_cause.pyruns · 11,033 bytesios_app_store_submit/recovery/verifier.pyruns · 5,260 bytesios_app_store_submit/resubmit/__init__.pyruns · 704 bytesios_app_store_submit/resubmit/approval.pyruns · 4,127 bytesios_app_store_submit/resubmit/command_builder.pyruns · 1,896 bytesios_app_store_submit/resubmit/eligibility.pyruns · 7,317 bytesios_app_store_submit/resubmit/models.pyruns · 12,394 bytesios_app_store_submit/resubmit/planner.pyruns · 5,520 bytesios_app_store_submit/resubmit/report.pyruns · 3,712 bytesios_app_store_submit/resubmit/verifier.pyruns · 7,324 bytesios_app_store_submit/review/__init__.pyruns · 0 bytesios_app_store_submit/review/evaluator.pyruns · 4,929 bytesios_app_store_submit/review/models.pyruns · 8,412 bytesios_app_store_submit/review/provenance.pyruns · 1,583 bytesios_app_store_submit/review/registry.pyruns · 816 bytesios_app_store_submit/review/rules/__init__.pyruns · 0 bytesios_app_store_submit/review/rules/_bridge.pyruns · 1,459 bytesios_app_store_submit/review/rules/metadata.pyruns · 4,182 bytesios_app_store_submit/review/rules/performance.pyruns · 8,230 bytesios_app_store_submit/review/rules/privacy.pyruns · 3,875 bytesios_app_store_submit/review/rules/review_access.pyruns · 1,572 bytesscripts/gen_app_icons.pyruns · 3,462 bytesscripts/readiness_check.pyruns · 11,727 bytesscripts/setup_build_keychain.shruns · 2,079 bytestests/test_design_accessibility.pyruns · 3,148 bytestests/test_design_evaluator.pyruns · 3,335 bytestests/test_design_interaction.pyruns · 1,976 bytestests/test_design_layout.pyruns · 1,595 bytestests/test_design_localization.pyruns · 2,300 bytestests/test_design_models.pyruns · 4,845 bytestests/test_design_registry.pyruns · 2,343 bytestests/test_design_report.pyruns · 7,007 bytestests/test_privacy_contradictions.pyruns · 3,893 bytestests/test_privacy_manifest.pyruns · 5,007 bytestests/test_privacy_mapper.pyruns · 3,679 bytestests/test_privacy_models.pyruns · 3,749 bytestests/test_privacy_permissions.pyruns · 1,845 bytestests/test_privacy_report.pyruns · 7,912 bytestests/test_privacy_sdk_catalog.pyruns · 2,508 bytestests/test_readiness_fix_evidence.pyruns · 14,364 bytestests/test_readiness_fixes.pyruns · 8,662 bytestests/test_readiness_metadata.pyruns · 1,147 bytestests/test_readiness_models.pyruns · 841 bytestests/test_readiness_report.pyruns · 2,950 bytestests/test_readiness_reviewability.pyruns · 1,627 bytestests/test_readiness_structured_repair.pyruns · 12,749 bytestests/test_readiness_technical.pyruns · 2,193 bytestests/test_recovery_mapper.pyruns · 4,596 bytestests/test_recovery_models.pyruns · 7,248 bytestests/test_recovery_parser.pyruns · 4,899 bytestests/test_recovery_planner.pyruns · 3,937 bytestests/test_recovery_reply.pyruns · 5,704 bytestests/test_recovery_report.pyruns · 5,278 bytestests/test_recovery_root_cause.pyruns · 5,056 bytestests/test_recovery_verifier.pyruns · 3,648 bytestests/test_resubmit_approval.pyruns · 2,110 bytestests/test_resubmit_command_builder.pyruns · 1,416 bytestests/test_resubmit_eligibility.pyruns · 2,063 bytestests/test_resubmit_models.pyruns · 1,351 bytestests/test_resubmit_planner.pyruns · 1,957 bytestests/test_resubmit_report.pyruns · 2,724 bytestests/test_resubmit_verifier.pyruns · 3,702 bytestests/test_review_access.pyruns · 2,534 bytestests/test_review_evaluator.pyruns · 5,691 bytestests/test_review_metadata.pyruns · 2,217 bytestests/test_review_models.pyruns · 4,189 bytestests/test_review_performance.pyruns · 2,769 bytestests/test_review_privacy.pyruns · 2,373 bytestests/test_review_provenance.pyruns · 3,358 bytestests/test_review_registry.pyruns · 2,701 bytes
Read excerpt
# iOS App Store Build & Submit
End-to-end playbook for taking a Flutter/iOS app from "code is done" to "submitted for App Store review," written for headless/agent-driven Mac environments (no interactive Xcode GUI session, no GUI keychain prompts available). Validated end-to-end on a real submission (2026-08-05) that hit — and worked around — every pitfall documented below.
**This skill is project-agnostic.** Never hardcode bundle IDs, App Store Connect App IDs, Team IDs, or certificate names from a prior run — always derive them from the current project (see Step 0).
## When NOT to use this
- Pure UI/feature work with no build/signing/submission component — just do the work directly.
- If the user has an interactive Xcode session open and wants to do signing themselves — offer to guide them through Xcode's GUI instead of fighting headless keychain limitations for no reason.
## Step 0 — Discover the project
Before anything else, gather facts from the current project (don't ask the user for things you can read yourself):