Skip to content
Conduit

skill

ios-hidden-feature-audit

Agent skill for Apple App Review Guideline 2.5.19: hidden feature audits, iOS distribution isolation, and artifact scanning.

sinyu1012/ios-hidden-feature-auditcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/sinyu1012/ios-hidden-feature-audit itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 27, 2026

Apple App Review 2.5.19 — Hidden Feature Audit Skill

English | 简体中文

A reusable agent skill for auditing hidden, dormant, and undocumented functionality under Apple App Review Guideline 2.5.19, with practical guidance for native iOS, Flutter, and React Native projects.

It helps you separate production features from internal testing, preserve legitimate behavior, document exceptions, and verify the actual shipping artifact. Includes a read-only, dependency-free Python bundle scanner.

Independent community project. Not affiliated with or endorsed by Apple. This is an engineering workflow, not an approval guarantee or a way to conceal functionality from App Review. See Apple's official guidelines for current requirements.

What it covers

  • Risk-prioritized inventory of internal tools, purchase overrides, simulated data, hidden entrypoints, and remote configuration.
  • Compilation boundaries across native targets, generated bridges, shared packages, localized strings, and bundled resources.
  • Debug, internal Release, production candidate, TestFlight, App Store, and Android behavior matrices.
  • Limited tool access, direct-route protection, startup latency, transient errors, historical settings, and upgrade compatibility.
  • Semantic naming and versioned configuration migration without disguising behavior or breaking older clients.
  • StoreKit-based purchase testing, positive checks for real purchase code, and archive gates before upload.
  • Remote-feature inventories, reviewer access, rollout plans, and project-specific artifact policies.

TestFlight is an installation channel, not a build configuration. A candidate installed through TestFlight contains the same compiled capabilities as that candidate when submitted to the store. Receipt-based restrictions do not remove code.

Install

For Codex, clone this repository into your skills directory. Use a different destination if a skill already exists there; inspect it before replacing anything.

git clone https://github.com/sinyu1012/ios-hidden-feature-audit.git   "${CODEX_HOME:-$HOME/.codex}/skills/ios-hidden-feature-audit"

Reload the skill list or start a new session if needed. For another agent that supports SKILL.md, place the complete folder in that agent's documented skills location. The guidance and scanner can also be used manually.

Example prompts

Use $ios-hidden-feature-audit to audit this iOS project against Apple
App Review Guideline 2.5.19. Do not modify code. Report evidence and a
risk-prioritized plan, including native code and all localized resources.
Use $ios-hidden-feature-audit to isolate the agreed internal capabilities
from the production candidate while preserving internal Release and
Android behavior. Only run source-level checks; do not build or use devices.

The skill follows the requested scope. Auditing does not authorize publishing, uploading a build, or changing production configuration.

Scan an artifact

Use Python 3.9 or later. The scanner uses only the standard library and runs without Xcode. It expects an unencrypted .app or an .xcarchive with exactly one main app. Unpack IPA files separately.

# Inventory only: exit 0 does NOT mean compliance or policy approval.
python3 scripts/scan_bundle.py /path/to/Example.app

# Copy and adapt the template to YOUR project's stable markers and paths.
cp assets/audit-policy.example.json /path/to/project-policy.json
# Edit the copied policy and remove example_only before running:
python3 scripts/scan_bundle.py /path/to/Example.xcarchive   --policy /path/to/project-policy.json --profile app-store

The example is deliberately rejected until adapted. It is not an Apple blacklist.

Exit codeMeaning
0Inventory complete or project policy passed; inspect mode / status
1Project policy violation or missing required evidence
2Input, policy, parsing, size, or scan error

The scanner identifies Mach-O files by magic bytes, scans supported resources, and checks both forbidden and required project markers. Broad terms such as debug, mock, and purchase are only investigation clues. Marker absence does not prove feature removal, and marker presence does not prove an executable feature or certain rejection. See scanner behavior and limitations.

No binaries or reports are uploaded by the scanner. Output omits raw matching contexts, but filenames, configured markers, and configuration-error paths may still be sensitive. Sanitize reports before sharing.

Repository guide

FilePurpose
SKILL.mdAgent entrypoint and workflow
Policy and evidenceOfficial sources and limits of evidence
ImplementationBuild boundaries, runtime access, configuration migration
Submission checksStoreKit testing, purchase retention, release CI, remote features
Project templatesCapability matrix, AGENTS.md, testing and review notes
Artifact scanningPolicy schema and scanner limitations
Example policyAdaptable, non-production policy template

Validation and contributions

python3 -m unittest discover -s tests -v

Tests use synthetic bundles and do not build or launch an iOS app. They validate scanner behavior, not App Review compliance. CI runs the suite on Python 3.9 and 3.13.

Issues and pull requests are welcome. Share sanitized minimal reproductions only: no private application identifiers, credentials, personal data, internal URLs, proprietary binaries, or unredacted scan reports. Policy claims should link to current Apple documentation and distinguish evidence from inference.

License

MIT. English is the default language for the skill and technical references; the Chinese README provides an equivalent introduction and usage guide.

↑↓ navigate openesc close