Safeguard
Developer Tools•

What fields should a mobile SDK register include?

A mobile SDK register needs about a dozen fields: owner, pinned version, tier, data touched, permissions, hosts, review dates and exit plan. A template inside.

Safeguard Security Team
3 min read

A useful SDK register has about twelve fields: name, version, purpose, owner, tier, data touched, permissions, network hosts, approval date, next review date, exceptions and exit plan. Keep it where engineers already work, generate what you can from builds, and review it on a schedule.

Why a register

Governance without a record is memory. When an advisory lands, you need to answer three questions fast: do we ship this, where, and who decides. A register answers them. It also lets you meet Apple's expectation that developers know the practices of third-party partners whose code they integrate and keep their privacy answers accurate.

The fields

FieldWhy it earns its place
Name and vendorIdentify it, including how it appears in lock files
Version shippedThe pinned version in each app
Apps and platformsiOS, Android, which apps
PurposeOne sentence, so removal decisions are easy
OwnerA person, not a team alias
Risk tierDrives review depth
Data touchedTypes collected or read, mapped to store declarations
Permissions and entitlementsWhat the SDK needs the app to request
Hosts contactedFrom your traffic test
Approval date and approverThe audit trail
Next reviewDate, based on tier
Exceptions and exit planExpiry and how you would remove it

Add a link to the vendor's data description and privacy manifest if one exists.

Generate, do not hand type

Hand typed registers go stale. Pull the facts that a build can supply, such as names and versions, from lock files or an SBOM, and keep humans responsible for judgement fields such as tier, purpose and data mapping. A nightly job that flags SDKs in builds but not in the register, or in the register but not in builds, keeps both honest. The CI allowlist uses the same data.

Transitive entries

Do not list every transitive library as a row. List the parent and record that its dependency set was reviewed at a version. Apple notes that SDKs which repackage listed SDKs fall under its requirement, which is a reminder that the tree matters even if the register shows only the parent.

Where to keep it

A file in the repo works well for small teams: it is versioned, reviewable and visible in pull requests. Larger organisations may prefer a tracked system with the same fields. Whatever the choice, one source of truth is better than three.

Try it yourself

Click through it at your own pace, or open it full screen.

Check which columns the inventory fills in for you, and which ones a person still has to add.

Safeguard's SBOM, asset discovery and dependency scanning can supply the factual columns, and compliance and evidence automation can keep the approval trail. A free scan is at gold.safeguard.sh/scan.

Quick check

Do we list transitive dependencies?

List the parent SDK and note that its tree was reviewed at a version. Use scanning to watch the tree.

How do we keep the register from going stale?

Generate factual fields from builds and compare the register with builds on a schedule.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.