I have a TestFlight build that one user has downloaded, then we released a new version and they installed over that build. They got this error when trying to launch the app:
Wed Aug 31 20:13:28 unknown SpringBoard[1176] : The 'X' bundle at /private/var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/X.app does not have an executable path. Please check the bundle's Info.plist file.
I checked the app's plist using PhoneDisk and the executable matched the app name. Any ideas?
Choose the project in the Project Navigator on the left. Select the Configurations target from the Targets section and click the Build Settings tab at the top. The Build Settings tab shows the build settings for the Configurations target. It's possible to expand this list with build settings that you define.
This can be achieved by going to Product > Clean Build Folder . Or by using the keyboard shortcut Cmd + Shift + K. Xcode will begin to clean your build folder - this might take a couple of minutes. Once it's completed, you can try running and building your project again.
In my case, I wasn't updating the CFBundleShortVersionString
between the versions I was trying to download. Once I updated the version from 1.1.9.1 to 1.1.9.2 and re-downloaded the adhoc build, it stopped crashing.
I'd guess Apple is caching some of the information in the Info.plist for adhoc builds, and bumping just the CFBundleVersion
isn't enough to blow the cache.
From "Core Foundation Keys": "CFBundleShortVersionString (String - iOS, Mac OS X) specifies the release version number of the bundle, which identifies a released iteration of the application. The release version number is a string comprised of three period-separated integers. The first integer represents major revisions to the application, such as revisions that implement new features or major changes. The second integer denotes revisions that implement less prominent features. The third integer represents maintenance releases. The value for this key differs from the value for “CFBundleVersion,” which identifies an iteration (released or unreleased) of the application. This key can be localized by including it in your InfoPlist.strings files."
CFBundleShortVersionString also mustn't contain any letters, only integers are allowed. So if you have something like 1.2.5b1 the app won't start, strangely with an error like "...does not have an executable path...".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With