
If you’ve worked with Delphi for any length of time, you know the pain. You open your .dproj file in a text editor and find FileVersion listed eight times in a row. ProductName appears twelve times. Your iOS privacy descriptions have accumulated like geological strata — each IDE edit appending rather than replacing, until the <VerInfo_Keys> element is an unreadable wall of semicolons.
Welcome to the world of Delphi project file entropy. And now there’s a cure.
Meet theSKULD
theSKULD — Sanitizer Kit for Useless Litter in DProj — is a free, Delphi VCL tool that cleans, edits, and manages .dproj files.
The name comes from Skuld, the youngest of the three Norns in Norse mythology. Where her sisters Urð and Verðandi govern the past and present, Skuld governs “that which shall be” — shaping obligation and future destiny. She dwells by the Well of Urð beneath Yggdrasil, where the Norns weave threads of fate and carve runes into wood.
In that spirit, theSKULD weaves order from the tangled threads of your .dproj files.
The Problem
Delphi’s IDE stores version information in <VerInfo_Keys> as a semicolon-delimited string. Every time you touch version settings, the IDE has a habit of appending new key=value pairs instead of updating existing ones. After a few months of active development across multiple platforms, a single VerInfo_Keys entry can contain the same key duplicated a dozen times:
FileVersion=2.3.1.0;ProductVersion=2.3.1;ProductName=MyApp;FileDescription=MyApp;FileVersion=2.3.1.0;ProductVersion=2.3.1;ProductName=MyApp;FileDescription=MyApp;FileVersion=2.3.1.0;ProductVersion=2.3.1;ProductName=MyApp;CompanyName=Acme;FileDescription=MyApp;FileVersion=2.3.2.0;ProductVersion=2.3.2;ProductName=MyApp;CompanyName=Acme;FileDescription=MyApp;LegalCopyright=Copyright 2022 Acme...
The same thing happens with library search paths, namespace lists, and debug source paths — duplicates everywhere.
And then there are the iOS privacy keys. Delphi helpfully inserts “The reason for accessing the contacts” as a placeholder. If you ship that to the App Store, Apple will reject you. But buried in a 2000-character semicolon string, who’s going to notice?
What theSKULD Does
Open any .dproj file and theSKULD immediately shows you the damage:
Smart deduplication. One click cleans every duplicated VerInfo key and library path entry across all configurations. The algorithm doesn’t just keep the last value — it scores each occurrence, favoring higher version numbers, more recent copyright years, real company names over macros, and actual descriptions over placeholder text.
Visual editing. A sorted, color-coded grid shows every key with its value. Red rows are active duplicates. Orange rows are placeholder text that needs replacing. Green rows are resolved. Click any key to see full documentation — what it does, when it’s required, real-world examples, and whether Apple will reject your app if you leave the default.
Library path cleanup. Select any configuration, pick a path property, and see each entry individually. Duplicates and empties are highlighted in red. Clean them up, reorder them, remove stale paths.
Global search & replace. Find a value across all configurations at once. Replace a company name everywhere. Delete an obsolete key from every config. Insert a missing key into all configs that lack it. Double-click any search result to grab its value for reuse.
Inheritance promotion. If the same NSCameraUsageDescription text exists identically in your Debug/iOSDevice64 and Debug/iOSSimARM64 configs, theSKULD can promote it to the parent Debug config — so children inherit cleanly instead of carrying redundant copies.
Platform templates. Setting up iOS distribution? One click adds all the required CFBundle* and NS*UsageDescription keys with sensible defaults. Same for Android, macOS, and Windows.
Safe by Design
A .dproj file often has multiple <PropertyGroup> XML elements for the same logical configuration — one defining the hierarchy, another holding actual settings. theSKULD tracks which XML element owns which property, so when you save, every value is written back to exactly the right place. No corruption. No accidental duplication.
That said — always use version control or keep a backup before editing project files. theSKULD modifies critical build infrastructure and should be used responsibly.
Get It
theSKULD is free under the MIT license. It’s a native Delphi VCL application with zero third-party dependencies — just download and run it, backup and then open your Delphi dproj project file, click cleanup and save.
Download from GitHub: https://github.com/KimMadsen/theSKULD
where you will also find comprehensive instructions.
If your .dproj files have been accumulating litter, Skuld is here to shape what they shall become.
![]()






