Define the original specimen
The local Swift benchmark compiled a synthetic pricing program using Apple Swift 6.2 on arm64 macOS. Debug and optimized Release builds were checked against six input/output vectors. The optimized executable was 53,840 bytes, its receipt verified and its local toolchain signature passed the recorded strict check.
These are fixture-level observations. They do not establish support for all Swift language features, resource packaging, Objective-C interoperability or Apple distribution targets. The result file explicitly lists clone resistance, symbol obfuscation, real devices, notarization and attestation as unmeasured.
Read the transformation result separately
The comparison applied the pinned BLA protectNativeBinary function at bankrupt intensity after the local toolchain had signed the fixture. The output grew to 1,220,127 bytes. It still returned 8500 for the tested pricing input, while strict signature validation returned a failure status.
That result demonstrates why transformation order matters. A byte-changing step after signing needs a deliberate supported signing workflow before distribution. It does not prove that every BLA build breaks signing, nor does one successful input establish runtime equivalence for the entire program. No claim about native decompiler resistance follows from these checks.
Keep the plist experiment distinct
A separate 96-byte binary plist containing a synthetic bundle identifier was transformed into an 8,134-byte specimen. The original passed the recorded Apple parser, while the transformed output failed it; the source review also records rejection by Python plistlib. This is a format-validity finding on a separate fixture.
Do not combine the executable and plist results into a single pass/fail percentage. They exercise different consumers and establish different facts. If reproducing the experiment, keep both original hashes and exact tool revisions so a later handler change can be evaluated without rewriting the historical observation.
Use the finding to improve release checks
For a real Swift application, perform supported hardening before signing, retain private dSYMs and verify the signed export with native tools. Run the application tests, installation checks and distribution checks that match the target. CloneGuard can inventory and screen supported artifacts; it does not perform the missing device or store validations.
A future anti-cloning experiment needs a separate reconstruction task with hidden behavior tests and a pinned native analysis environment. Until such a trial is run, the useful conclusion is about packaging compatibility and evidence discipline rather than a promise that REA cannot recover Swift logic.
Practical checklist
- Read the exact fixture hashes and environment.
- Separate six original vectors from one transformed vector.
- Recheck signing after supported modifications.
- Keep decompilation and distribution questions unassessed.
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.