Вопрос

I am trying to build an IPA file for my app in view of some ad-hoc enterprise distribution. I have been looking at how to do this with Xcode 4.3.2, the version I am using at present, and I reached the point where in the organiser I should select the 'Save for Enterprise or ad-hoc deployment' option. The problem is that this option does not actually appear in the first place. In fact, I only have the 'Save Built Products' and 'export as Xcode archive' options.

I would imagine the issue lies in some configuration settings for my app, but have been unable to find any help over the web. Hence my question here :-) Would appreciate some help in understanding what is wrong with my code.

Thanks in advance to anyone helping here.

Cheers.

Это было полезно?

Решение

If your project uses a third-party lib as a sub-project, there are a couple of settings that you may need to change so that xcode will recognize your app as a single–bundle rather than multiple products. Only single-bundle apps can be saved for enterprise or ad-hoc deployment, or submitted to the app store.

First, in the Build Settings tab of the third-party lib target, set the Skip Install setting to Yes.

Second, in the Build Phases tab of the third-party lib target, look in the Copy Headers phase and ensure that there are no headers in the Public or Private section (they should all be in the Project section).

Другие советы

I finally got around this. It turned out the issue was that I was using third-party libs by including their (source) Xcode project rather than as pre-compiled libs. For some reason Xcode sees them as distinct apps, and won't let me wrap all of them under one single IPA. I removed the project, dropped the actual static libs and headers, produced the archive and...tadaaah: here I could sy my most wanted export option.

Thanks everyone for the help, a special thanks to The Saad who helped me finding out this.

well, I met the same problem when I was using GMGridView. I didn't use Diferdin's solution since I still want to keep the GMGridView project there. My solution is: Go to GMGridView's target, click "Build Phases" -> "Copy Headers", then move all header files under "Public" and "Private" to "Project". Redo the Product -> Archive, then you may find the option "Save for Enterprise or ad-hoc deployment not present". This worked for me, hope it could be helpful to anyone who met the same problem as mine. Also I believe the idea could also be applied to any other thrid-party projects. Good luck!

Maybe you've done that already, but we have to be sure.

Did you specified in both product and target the code signing identity for adhoc distribution to be your new prov. profile?

Then did you try to archive your app ? (Product -> archive) If it's grayed, just specify the target to be iOS Device, even if no device is plugged.

If Archive is successful, you should have an archive in the organizer. Select it, and choose to distribute as usual.

I experienced the something today. There is no option to export the ad-hoc. so fix this, by "Validate Settings".

  1. Go to your project targets,
  2. Under the configuration list there will be a clock button called "Validate Settings". Click on it
  3. and click "Perform Changes"
  4. Build for Archiving again

To explain the issue, It looks like Xcode understand project's file as Mac Application instead of iOS App.

Hope this helps.

Just as a follow-up, I know several others have answered. I ran into this issue, and the answers in this post were very helpful. Some summarized responses:

  • For me, this wasn't a profile issue. I have completed a ton of adhoc and distribution app binary builds successfully, so I knew it wasn't a profile problem in my case.

  • I took one poster's advice, and did the project "validate settings", and it performed some recommended changes...but that didn't solve the issue.

  • the issue was in fact project libraries that were not making it into the primary bundle. In my case, I had some libraries, that had their own resource bundles. The key is, when you do an archive build, make sure and select the build, select "show in finder", and then "show package contents" to see what additional stuff is not making it into the main application bundle. That's how I located a couple additional resource bundles that were being bundled into some libraries that I didn't even need.

Helpful thing I found was to turn Skip Install off on your main project. If upon archiving you still see a package created (organizer pops up) then a sub-project is still creating a product. Turn off all the sub-projects Skip Install to NO and get your project to the point where an archive does not popup in Organizer. You can then safely turn Skip Install to YES on your main project and little sparkles of achievement will appear in your brain.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top