Incomplete Organizer Window

We are prepping to move from Developer Distribution with notarization to App Store distribution.

Our product uses multiple components and is based on Qt with some hybrid Obj-C extensions. We run the app from Xcode for debugging and do not use Qt Creator at all.

Up to now, I had set up build scripts that “package” the app including bundled Frameworks (MACH-O link names need adjustment, etc.), signing with entitlements (Developer ID: Application,) and notarization. That all worked fine for several years. The app has a 14-year history on macOS.

I revised our project to be run and packaged completely from within Xcode. Signing is Automatic using "Developer." That worked great on the first try a couple of weeks ago.

I could archive, pull up the organizer, and get the full dialog. Developer ID Distribution/Export worked great.

Last week I was polishing a few items. Without any project changes, I get a crippled dialog.

I used a checkout on another system with same result. I switched to a different developer account. I cleared out Xcode DT settings (' defaults delete com.apple.dt.Xcode’) and set up fresh identities for the team. I have spent hours trying variations of signing etc.

BTW, another pure Obj-C iOS project has no issues.

Any other ideas to track this down? I found nothing on Internet searches? What controls the configuration of the Distribution window?

I am now using Monterey 12.2 and Xcode 13.2. I have tried older versions with the same problem. It must be related to the project or signing.

Thanks and Happy Holidays.

-- Harald

Replies

Note that, in your second screen shot, the button’s title is Distribute Content not Distribute App. This suggests that Xcode thinks that your archive is not an app archive but rather a generic archive. The most common cause of this problem is that you have a dependent target in your project — building an app extension, a helper tool, a framework, or whatever — and you’ve forgotten to set Skip Install on that target.

Try this:

  1. In that second screen shot, select Built Products and click Next.

  2. Save that to disk. This will create a directory with a name like Test696681 2022-01-10 16-32-33, where Test696681 is your app name.

  3. In the Finder, open that directory and look inside Products. What’s do you see?

For a standard application you should see something like this:

Test696681 2022-01-10 16-32-33/
  Products/
    Applications/
      Test696681.app

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thank you, The exported archive has the full app that you can run. It is not a dependent target. Exporting the archive I can double-click on the app, it is complete and runs fine. This used to work, what could have changed? How can I tell Xcode to treat this as an app?

BTW, the Distribute App vs Content is a very good lead I will investigate further.

The exported archive has the full app that you can run.

Right. But does the Products directory contain anything else?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Resolved.

You are correct. Any additional content apart from the app will make Xcode treat it as content.

I followed through and the directory contained a lock file used as a workaround for the inability to have a custom script for the Clean Product option. Since we use Qt integrated into the project, cleaning requires some extra directories to be cleaned up. I moved that function to a prebuild script that was triggered by the absence of a lock file in the project.

Removing it and just testing for the App Bundle shell resolved the issue. We can now use Developer ID/Notarization or App Store submission from the Organizer.

Thanks for your help.

I followed through and the directory contained a lock file

Oh, wow!, that’s not what I was expecting. And I’m glad to hear you have it all sorted.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

BTW, I figured out the lock file issue waking from a dream in the middle of the night, but your second response would have led me to it without that sudden enlightenment.