Define what is actually proprietary
Choose a concrete asset: an algorithm, an unreleased dataset, a privileged backend operation or a visual workflow. These require different controls. A competitor reproducing a familiar screen layout is not the same technical event as extracting a shared service credential from the app.
Map where each asset executes or appears. A pricing algorithm fully executed offline must be distributed in some usable form. A pricing rule computed on a server can remain there while the app renders an authorized result. That boundary matters more than the SwiftUI view type names visible in a binary.
Preserve semantic accessibility
Retain meaningful controls, labels, state and focus behavior for assistive technologies. Removing semantics to make an automation tool confused harms customers and still leaves the rendered screen observable. Do not replace every button with an unlabeled drawing as an anti-agent measure.
When a custom visual control is necessary, test it using the relevant accessibility tools and user interactions. The goal is for the same legitimate operation to remain understandable through different input and output modes. An adversarial prompt hidden in a label has no role in that contract.
Control sensitive operations at the service
For an online premium action, authenticate the person and authorize the specific requested resource on the backend. Keep a UI preview or cached state distinct from the authoritative decision. A modified client should not obtain data simply by enabling a local SwiftUI view state.
Limit returned data to what the task requires. If a screen only displays a calculated total, returning every internal rule and private customer record gives observers more material than the experience needs. Validate that legitimate clients still receive enough information for accessibility, errors and understandable user decisions.
Test experience and protection separately
Use representative UI tests and accessibility checks after build or architecture changes. Include the error, empty and offline states that a simplistic screen-copy comparison misses. A successful screenshot match verifies one aspect of rendering, not authorization or resistance to reconstruction.
Keep an explicit observation budget when evaluating an authorized reconstruction agent: which screens, accounts, data and network responses it receives. If an agent can reproduce the product from visible behavior alone, symbol stripping has not addressed that pathway. Record the finding without disguising it as a failed binary control.
CloneGuard helps organize release exposure and platform checks. It does not hide a SwiftUI app from vision models or establish a barrier against recreating observable interactions. A useful hardening report should state which private material was removed and which public behavior remains available.
Practical checklist
- Name the proprietary asset and execution boundary.
- Keep accessible control semantics intact.
- Test backend permission failures with a modified client.
- Separate UI compatibility from reconstruction evidence.
Sources and further reading
Primary references support the technical details. Procedures here are guidance; only explicitly recorded project results describe tests we ran.
Prepared with AI assistance. How this library is produced. Suggest a correction; keep private code and credentials out of public issues.