I am sure the app has a distinct bundle ID.
Yeah, that’s rarely the problem here.
But I know little about image UUID.
The image UUID is set by the linker to a random value when it creates the Mach-O image. The main executable image UUID is, as you might expect, the image UUID of the main executable. If you’re building an app in the normal way, the main executable image UUID is going to be unique. Where you run into problems is when you re-skin the app, that is, build the app once, ship that, then tweak some resources in the app, and ship it as a separate app. At this point both apps have the same UUID because you never re-linked the app.
If you re-skins apps like this, you can use the following steps to see if you have a problem:
Using iTunes on your Mac, download each app from the store.
Still in iTunes, control click on the downloaded app and choose Show in Finder; this will reveal the
.ipa
file in the iTunes library.Make a copy of that file and, on the copy, change the extension to
.zip
.Unpack the
.zip
.Dump the image UUID of the main executable using
otool
. For example, here’s what I see for Apple’s AirPort Utility app.
$ otool -l -arch arm64 AirPort\ Utility\ 1.3.4/Payload/AirPort.app/AirPort | grep -A 2 LC_UUID
cmd LC_UUID
cmdsize 24
uuid 6F3E412B-DD11-3996-938C-3BD086E7AF2B
Note that I’ve chosen the
arm64
architecture. The image UUID is different for each architecture.
If you see the same UUID for multiple apps, that’s definitely a problem.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"