ChatGPT解决这个技术问题 Extra ChatGPT

Xcode Product -> Archive disabled

I have been archiving for ad hoc distribution fine for many months and suddenly today I cannot do so as the Archive menu item is disabled. I have not changed anything. I went through the provisioning setup for the project and it looks ok.

My Ad Hoc profile is about to expire in 14 days. Could this be the problem? I don't believe I can renew it until the day it expires. There is a a "renew" button for my ad hoc profile in the organizer but when I click it I get...

The given profile was not found on the provisioning portal. Please refresh your provisioning profiles before attempting to renew “MyAddHocProfile”

The profile in the provisioning portal shows active, expiring on the 30th. I noticed that I had not yet upgraded to 4.6.2 and did so. Then I downloaded my profile and double cliked it thinking that would refresh the profile in Xcode, still no joy. I also tried manually replacing the profile file MyAddHocProfile.mobileprovision in the Library.

What do they mean "refresh your provisioning profile"?

Even so, I would think that as long as the profile is active, I should be able to create an archive. I must be doing something else wrong.

Product > Archive is only enabled when your scheme has a destination of “iOS Device” or an actual iOS device. Have you checked that?
Darn! That was easy. Thanks! Please post your comment as an answer so I can give you credit and mark this as ansered.
Does that even make sense?
Archiving a sim version is possible on the terminal. Looking forward to Apple to enable it in Xcode, since you need it when distributing XCFrameworks.

p
pkamb

You've changed your scheme destination to a simulator instead of Generic iOS Device.

That's why it is greyed out.

https://i.stack.imgur.com/bvn1f.png


Well, it's just a guess... Maybe Apple wants you to actually test your on a real device before you actually package it for the App Store. Just a hunch :)
@user278859 if this is the right answer you should mark it as such.
Thanks for the answer. That's so completely non-obvious from a UI perspective that it catches even those of us who have been building apps for many years off guard. Apple should at least float a tooltip or something when it is in that state....
If your phone is not available, choose Generic IOS device
OMG... so much time wasted!!
C
C Baraliya

Select "Any iOS Device" in newer versions of Xcode. And Archive Option will be enabled!


Xcode 13.1 uses this. Thanx
p
pkamb

Change the active scheme Device from Simulator to Generic iOS Device


F
Faisal Mulya

Select active scheme to Generic iOs Device.

https://i.stack.imgur.com/DJy5b.jpg


M
MasterAM

In addition to the generic device (or "Any iOS Device" in newer versions of Xcode) mentioned in the other answers, it is possible that the "Archive" action is not selected for the current target in the scheme.

To view and edit at the current scheme, select Product > Schemes > Edit Scheme... (Cmd+<), then make sure that the "Archive" action is checked in the line corresponding to the desired target.

In the image below, Archive is not checked and the Archive action is greyed out in the Product menu. Checking the indicated checkbox fixed the issue for me.

https://i.stack.imgur.com/SmyYE.png


p
pkamb

If you are sure that you selected the Generic iOS device and still can't see the option, then you simply have to restart Xcode.

This was the missing solution for me as a cordova developer with Xcode 11.2