674

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.

pkamb
  • 33,281
  • 23
  • 160
  • 191
user278859
  • 10,379
  • 12
  • 51
  • 74
  • 264
    Product > Archive is only enabled when your scheme has a destination of “iOS Device” or an actual iOS device. Have you checked that? – rob mayoff Apr 17 '13 at 04:08
  • 5
    Darn! That was easy. Thanks! Please post your comment as an answer so I can give you credit and mark this as ansered. – user278859 Apr 17 '13 at 04:46
  • 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. – naz May 30 '20 at 03:56

8 Answers8

1834

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

That's why it is greyed out.

Change from a simulator to Generic iOS Device

pkamb
  • 33,281
  • 23
  • 160
  • 191
wiseindy
  • 19,434
  • 5
  • 27
  • 38
  • 1
    Thanks for this, the perfect fix. Any ideas why this happens though? – Matt Oct 28 '13 at 15:05
  • 9
    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 :) – wiseindy Oct 28 '13 at 17:27
  • 2
    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.... – dgatwood Aug 28 '15 at 17:43
  • Yep. This was back in the iOS 6 days. Still applicable :) – wiseindy Oct 11 '15 at 17:23
  • 1
    Si I cannot archive a ios product if I don't have an ios pluged on the mac ? I'm using a cloud access to a Mac, so I cannot plug a device on it... – Nicolas Janel Dec 07 '15 at 11:48
  • I can't believe I spend over 6 months using xCode and this never was an issue with me until just now. Good solution, but just surprised how long it took for me to run into this problem given how simple the solution is. – JCutting8 Jan 17 '16 at 02:02
  • I guess this has to do with the simulator not being an emulator. This means the device simulator on OS X executes Intel processor code whereas the actual iOS devices are provided with ARM processor code. So, in order to generate ARM code, the code generation has to be switched to real devices which is done by selecting such a device as target. – Stefan Feb 08 '16 at 12:38
  • 28
    If your phone is not available, choose **Generic IOS device** – redolent Jun 19 '16 at 22:58
  • Come on Apple!! show some indication as to why it is grayed out!! – user1366265 Aug 15 '16 at 14:15
  • 1
    voting second time :( – Heshan Sandeepa Jul 02 '18 at 14:26
  • A few people have asked for the reason 'Archive' is disabled when a simulator is selected. I don't know for sure but I suspect it's because building for a simulator will compile the code for x86, whereas building for a device will compile for ARM, which the App Store requires. – shauneba Jun 28 '20 at 15:36
120

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

C Baraliya
  • 1,201
  • 1
  • 4
  • 3
22

Change the active scheme Device from Simulator to Generic iOS Device

pkamb
  • 33,281
  • 23
  • 160
  • 191
Rabie
  • 513
  • 5
  • 10
19

Select active scheme to Generic iOs Device.

select to Generic iOs Device

Faisal Mulya
  • 653
  • 7
  • 7
13

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.

scheme settings

MasterAM
  • 16,283
  • 6
  • 45
  • 66
6

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

pkamb
  • 33,281
  • 23
  • 160
  • 191
Steckdoserich
  • 834
  • 2
  • 11
  • 24
3

You can choose option "Any iOS Device (arm64)" in new versions of XCode and this will enable "Archive" Button in your XCode.

enter image description here

Rajat Jain
  • 1,339
  • 2
  • 16
  • 29
0

Organiser was empty after try every here recommended settings, also it was impossible to do 'Product > Archive' but... Only when device connected on cable and app run then 'Archive' show up. and then was possible to do 'Archive' and app shows up in Organiser