Related
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".
Go to your project targets,
Under the configuration list there will be a clock button called "Validate Settings". Click on it
and click "Perform Changes"
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.
For the life of me, I cannot figure this out. All the installer seems to let me do is choose between my two hard drives, and there is no option to select a directory on the hard drive.
I have seen the similar question here, but this doesn't help me: Install Xcode 4 and keep Xcode 3?
I just don't see a dropdown or option of any kind to change the installation directory.
Any help?
Check this post out. U can see here how to change the directory.. Hope it helps.
Install Multiple xcodes
I have been working the whole day to try to build my app on my device.
I get this error when I try to build on my device.
I have been reading about this problem but do not really understand how to fix it. The following is where I would believe the problem is. I am new on this so I have no experience how to solve this.
When I open the "Dont Code sign" I have "Automatic profile selector (recommended)" with two lines I can select and also "My profile for dev" with one line to select. Do not know if this is where the problem is?
Any help is appreciated.
Here's how I did it.
Shut down Xcode.
Back up the project.pbxproj file.
Edit the project.pbxproj file and remove lines of instances where it mentions the old provisioning profile.
eg. Delete line:
PROVISIONING_PROFILE = "8D024EDA-DC05-40DF-B3EB-536392615EE2";
Restart Xcode and perform a full clean of the project.
It should then build without warnings.
Enjoy!
In my case it was because the xcode 4.0.2 prevented deletion of stale data in the project.pbxpro in the *.xcodepro directory. I ended up hand editing the file after shutting down xcode. In the file I looked for all of the occurrences of "PROVISIONING", something like this:
PRODUCT_NAME = Xyzzy;
PROVISIONING_PROFILE = "CF5F0AEA-92D9-48E1-99DF-301AB36C2BFB";
"PROVISIONING_PROFILE[sdk=*]" = "CF5F0AEA-92D9-48E1-99DF-301AB36C2BFB";
SDKROOT = iphoneos;
and changed it to:
PRODUCT_NAME = Xyzzy;
"PROVISIONING_PROFILE[sdk=*]" = "";
SDKROOT = iphoneos;
I restarted xcode and the build succeeded with out issue. A word of caution make sure that you back up the project directory before make changes to the project files, and only hand edit the files when you have no other options.
I went and changed code signing identity the on project and target to "Don't Code Sign" and then changed back to the correct code signing identity. That fixed it for me.
what exactly is the error message?
Did you add your device including the required provisioning profile in the organizer? What do you see in the organizer when selecting your iPhone under devices? It should be there with the correct valid profile...
If you are working with a project created by someone else as a template, you need to change the code signing identity
screenshot: http://i.stack.imgur.com/UIpGS.png (Xcode 4.2)
ps. OSX would not let me edit the .pbxproj file with a text editor
I had this problem when I had to reissue development provisioning profiles with new names/ids.
The solution was to update all references in Edit Project Settings | Build (Code Sign) referring to Code Sign Developer (name). (Not Edit Active Executable.)
Click on the item(s) and check that the new profile is explicitly selected, and rebuild and run.
I suspect that the reason you get this error in the first place depends on whether or not you have set xCode up to try to resolve these dependencies automatically. In one of my builds replacing the profile was seamless - in the other I had to manually update it. Clearly the best solution would be a seamless one.
I've had this before, and it just worked by restarting Xcode. Probably won't work for you but I'll throw it out there anyway.
I had same error where the very previous build built just fine. I noted that my Build Settings -> Code Signing -> Provisioning Profile had been reset to strange one. All I had do is to point it to correct one to resolve the issue.
This one can be fixed by changing the project settings AND clicking Project > Edit Active Executable > Build and changing the settings there.
I just redid my provisioning profile and re-added devices to the portal in Organizer. Then I clicked my project icon, entered Build Settings, Code Signing and remapped to the new provisioning profile.
I had the provisioning profile set to one thing in Projects and another in Targets. Do a search in your project for the file that is missing and see if it pops up. No hand editing needed!
Like #Jonathan, I just restarted Xcode and it worked after it automatically retrieved the profile from my Apple developer account. This was Xcode 6.2
I have been with this problem already 8 hours unable to solve it.
Whats Cool JLD$ codesign -vvvv build/Distribution-iphoneos/Whats\ cool\?.app
build/Distribution-iphoneos/Whats cool?.app: a sealed resource is missing or invalid
/Users/JLD/Desktop/iOS Development/Whats Cool/build/Distribution-iphoneos/Whats
cool?.app/Whats cool?: resource modified
I have tried the solutions posted on all these threads to no avail:
https://discussions.apple.com/thread/1590980
https://discussions.apple.com/message/9167082
http://www.iphonedevsdk.com/forum/iphone-sdk-development/2256-application-failed-codesign-verification.html
https://forums.macrumors.com/threads/entitlements-plist.584209/
How to solve "Application failed codesign verification" when uploading to iTunes Connect?
I even tried recreating the whole project again redoing all the IB connections and nothing works! It builds everything, but it is unable to code sign it! So I'm unable to upload it through the AppLoader.
I am doing all these following the instructions found at the provisioning profile on the Distribute application page.
https://developer.apple.com/ios/manage/distribution/index.action
I even tried building from another Mac. I have my distribution profile and my distribution certificate both set to WildCard. But it still doesn't work. I made a new app under a different name with another Bundle ID to no avail. I don't know what to try anymore!
Thank you future problem solver! I know you are there so come to my aid, I'll thank you forever!
UPDATE: I tried to make the new project from scratch. Copying the source code and remaking all the connections on IB to no avail. I even followed this link with instructions:
http://techiechok.com/2009/03/30/resolving-iphone-code-signing-error/
Unsuccessful. I don't know what else to do. I'm even considering using one technical incident to solve this problem once and for all.
I just experienced this error trying to sign an archive with Xcode 4 on Lion. The problem turned out to be related to the fact that the archive had been zipped on one machine and transported to another --- the zip utility did not support symbolic links, and the app code signature uses a symlink inside the bundle, so the unzipped archive was invalid.
Possible solutions are:
Use the Finder's contextual (ctrl-click/right-click) menu and choose "Compress" to create the zip file, or:
Use the command line version of zip and provide it with the -y argument to preserve symbolic links.
This isn't a specific answer I'm afraid, but something you may not have thought about.
From your command line snippet, it looks like you're code signing your app bundle after it's been built. Are you moving the bundle (.app folder or maybe an IPA or ZIP file) from another machine, or from another drive? I've had problems with moving app bundles between file systems that don't support symbolic links properly. Are you using a network drive, or have a local drive that's not formatted for Mac OS.
Solved. The problem was a '?' character on the product name. Shouldn't be like that but that's how it is. Nowhere apple says that that makes a codesign verification issue.
Apple's new APFS file system has some bugs to process unicode characters and it is causing the issue.
Moving the whole project to the legacy MacOS Extended volume and archiving again solved the issue.
Another problem could be your app contains image file name with none English characters in your app. Such as 'ş ç ğ'. If you remove those images or change the file name it will proceed.
I passed days on this problem, for me it's because the name of the application contains arabic caracters :(, So apple on xcode 12 doesn't accept arabic caracters ? on xcode 10 i publish without any problem
it's very complicated to be a developper on ios
In my case, I got that error because the disk image I created to distribute my app ran out of space and ditto did not copy all files from the build folder to the disk image. As the script I used generates so much noise, I missed the warning of ditto that it ran out of space in the target disk image. Unfortunately, ditto should have aborted the whole procedure, instead of burying the warning into a myriad of other paths of smaller files that it managed to copy.
I'm going crazy! I'm trying to upload the binary of my first application but I have always the same error!
"The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate."
I did everything, EVERYTHING!!
I created the request for the certificate, used it for both developer and distribution certificate, created the provisioning profile (12 times!!!) always cleaning my keychain and my Xcode deleting the old certificates and profiles..
I reboot the machine, reboot Xcode, the log is correct, but... I can't upload my app!!!!
Checked if my iPhone is connected (i tried with iPhone disconneted too).
I checked the certificate in both my project settings "Distribuition" Configuration (duplicate of "Release" configuration) and in my target settings.
Reveal in finder, compress the app and sent the zip...
I tried with Application Loader and iTunes connect online..
but nothing! NOTHING!!
I've spent 8 hours! And again i can't have my app uploaded!!!
I'm really going crazy!
Can anyone help me pleeease?
Thx!
It seems like there are a LOT of causes for receiving this cryptic and mostly unhelpful email. Even after verifying the use of distribution certificates, cleaning & rebuilding my project, and checking with codesign from the command line (and following instructions from the email), no errors showed up—-but I'd get the "invalid signature" email right after uploading. All the solutions seem anecdotal and obviously depend on what secret error is causing the problem. I've spent the last week pulling my hair out, trying to figure it out for my app—-and finally got it successfully submitted today—so let me share my story and see if it's relevant to your situation.
In my case, I seemed to have a complex cause of having my Entitlement.plist set with an incorrect variable along with the holdover of an old provisioning profile (from a previous Xcode version?) buried deep in the project.pbxproj component of my Xcode project file.
The "aps-environment" variable in my Entitlements.plist was set to "distribution" instead of "production" (I swear I read somewhere in the developer docs that it was supposed to be "distribution"!) But fixing that alone wasn't enough to get my app through. (I must have submitted 100 different combinations of app configurations trying different variables!) Starting with the helpful suggestions from this post on another forum, I dug through the distribution profile and found duplicate entries for some variables. The duplicates had empty quotation marks (i.e. nothing set for the variable) or strange variables or old provisioning profiles which seemed to be causing problems (somehow). Cleaning this up and removing the duplicate lines with bad variables worked in my case. YMMV. But carefully examining the project files ("show contents" on the Xcode project file in finder) seems like a good idea for diagnostics. Good luck!
Been there - done that.
Make sure your certificate is in the "login" keychain, and that that i the default keychain (highlighted bold) in Keychain Access
Make sure you have both the private and public keys for your certificates and that they are valid. You will also need the Apple Worldwide Developer Relations Cert Authority installed.
I assume you have dragged the profile into xcode - easiest to drop them onto the xcode icon on the dock.
Make sure as Paul says, that the bundle identifiers all match up
You say you checked the certificate in the distribution configuration. Its not the certificate you need to concentrate on but the provisioning profile.
Select your Release config top left, click on the project under groups & files and do cmd I. Select build tab and then pick distribution in the top left. Then look at the Code Signing Identity. Pull down the dropdown list and make sure you have the right application identifier, the right profile and the right certificate. Don't use the Automatic Profile Selector.
Hope one of those steps helps!
I was getting the same error when I tried to submit a version update from the Organizer. What solved my issue was using the Application Loader found in the directory /Developer/Applications/Utilities. You'll need to compress your .app file and send the corresponding .zip file. I used this for my initial submission as well, I just thought I'd try the new way. What a pain! Go with Application Loader.
Best solution:
Revoke Distribution Certificate
Create new AppStore provisioning profile
This solved my problem. Spent 4hrs+ :( :)
I just had this problem. I resolved it, after hair-pulling, by going back into Keychain Access one more time and discovering the "Show Expired Certificates" menu item. When I did that, one more expired cert of the kind I had (so far, unsuccessfully) replaced showed up! I had deleted a couple of expired certs already, but this menu item caused another to show up, and after deleting it, my upload worked. I was previously aware that expired certs can get in the way of valid ones, and I STILL wasted a lot of time. Hopefully, this helps some people.