Xcode validation failure - ios

Validation of an archive for uploading to the store is failing in the Xcode Organizer with this message: "Failed to locate or generate matching signing assets: Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues. Permissions failure - Your account does not have permission to create profiles."
This problem has been reported by several other people on StackOverflow and Apple Development Forums, with no resolution. Here I'll explain some things I've tried with the hopes that maybe someone can suggest a solution. This is a really important problem because it's preventing release of an app.
Does anyone know how to fix this? Does anyone know what the "permission to create profiles" is referring to? From my understanding, the Organizer should just be signing the app with an existing Provisioning Profile, not creating any new ones.
Background information: I have admin privileges in a company team and am able to build the project fine. My development certificate works ok for installing to a phone. There are no expired certificates in my Keychain and the certificates in the key chain look ok. I have rebuilt the Distribution certificate and downloaded it to my Mac successfully.
The problem occurs whether I select manual or automatic provisioning in Project Settings (though this shouldn’t affect archive validation anyway). I have the original distribution Certificate on my machine from importing a .p12 file from the original developers. I’ve tried rebooting my Mac, restarting Xcode.
Issues I can think of looking at next: (1) I am using a wildcard in the app bundle name in the Distribution Provisioning Profile. Is there any problem with this? The wildcard seems to match the app bundle ID in the build. The app has previously been released without an explicit app bundle name in the provisioning profile. (2) The distribution provisioning profile has no services enabled. The app Project Settings include one service: Remote Services under Background Modes. Is there a problem because of this mismatch? (3) Should I try using Application Loader instead of the Xcode Organizer?

The problem, it turns out, was a bad Distribution Certificate. The team I was working for turned out to have two Apple Developer accounts with the same name, but one was an Enterprise account and the other was not. I had been given the Distribution Cert for the Enterprise account. Once I deleted all my relevant certificates from my keychain and XCode Preferences/Accounts and read in the .p12 file for the correct Distribution Cert, everything worked.

Related

Appcenter iOS install error "this app cannot be installed because its integrity could not be verified"

I see that this question has been asked many times but I see no solution that works for me so I'm hoping that providing more info might shed some light.
We use appcenter.ms to test iOS apps. Until our iOS certificate expired this method worked fine. We generated a new enterprise certificate and ad hoc provisioning profile for new releases of the iOS app. Which led to the first curiosity.
I see how to upload a certificate on appcenter.ms but not a provisioning profile. I thought there was an option to do this in the past but perhaps I am mistaken. However, the app is signed with a provisioning profile before upload, so perhaps this is not needed now.
Once the app is uploaded, it can't be installed. It remains grey and when you tap it, you get the "this app cannot be installed because its integrity could not be verified" error. Again, that the .ipa is created with an ad hoc certificate and profile in Xamarin (VS for Mac).
Also, I can't install the provisioning profile on a device from appcenter.ms. You basically get stuck in a loop where you seem to successfully install the profile but have to keep doing it because it never actually installs.
I hope this is enough info for some insight and thanks in advance for any feedback.
We were able to solve this by redoing and downloading development certs and via
And also downloading and double clicking the apple development certificate here
After that our keychain showed both as trusted and we could build to the iPhone again.
The issue can be the your device is simply not registered on the developer portal and/or that ad-hoc provisioning profiles have not been regenerated.
You need to register your device, regenerate a provisioning profile with this device in it and rebuild your app using this profile.
This can also happen because of
Developer ID Notary Service - Outage
which can be checked on https://developer.apple.com/system-status/
Notarization is well explained here:
Notarization gives users more confidence that the Developer ID-signed
software you distribute has been checked by Apple for malicious
components. Notarization is not App Review. The Apple notary service
is an automated system that scans your software for malicious content,
checks for code-signing issues, and returns the results to you
quickly. If there are no issues, the notary service generates a ticket
for you to staple to your software.
Work around fix:
Select your app.
Navigate to TextFlight tab
Create External Testing group
Add one tester
Add build which you want to download using TestFlight
Open TestFlight and download an app.
In my case this was caused by trying to include an entitlement for aps-environment "development" when using an Ad-Hoc provisioning profile. The value for this environment in Entitlements.plist must match what is hard coded into the provisioning profile file - if you open an Ad-Hoc profile in a text editor you will see it expects the "production" environment.
The possible solutions depending on your requirements are to either use the Development profile/certificate, or change the aps-environment to "production" to continue using an Ad-Hoc provisioning profile.
It can also happen if you have other incorrect entitlements - worth checking what entitlements are enabled under the Identifier in Apple Developer portal and removing unnecessary ones.
I had this issue because when building the app on xCode for distribution (Product->Archive then Distribute App), I chose automatic signing. After manually signing the app and choosing my own generated certificate and profile, everything worked again fine.
I removed the Entitlements file from the Addition Resources in iOS Bundle Signing and it worked.
I think the MSAL configuration was set to debug in entitlements.plist
I have also face this issue before but for me the reason was little different
First the build was enterprise one and the build was made on the earlier Xcode version on which the iOS version you are using on the device was not supported by the Xcode.
All I did was to update my Xcode and make a new build and shared the build. After that we were able to install that build over device Hope it works for you as well
This is how I solved for myself.
In you iPhone Settings > General > VPN & Device Management you should see your company name (if an app from it is installed), and if you click on it, you will see a button like "Verify" above the list of apps installed provided by the company. Just click on "Verify".

PhoneGap Build Certificate doesn't match profile error

I am attempting to complete my app build in Phone Gap to create an IPA file for App Store submission. However, I am constantly running into:
"Error:certificate doesn't match profile the default keychain doesn't have an identity matching"
...and I am clueless on how to fix this or what the problem is really indicating. This is my first app build, I created my certificate and mobileprovisioning file in Apple Developers account. I have successfully generated a p12 file from my distribution certificate.
I have been searching the web for days and Phone Gap's forums and even the link of "fix this error here, which takes me to a page that offers no real help, or that which I can make sense of. The information is simply not explicit enough to me to let me know what I need to fix. I've followed the tutorials and examples of certificate generation to a T, but I am stuck with this error time after time.
I simply do not know what the error is stating. I do not know what is the "profile" nor what is meant by "...The default keychain doesn't have an identity matching"
Please can someone let me know what exactly this is telling me so I can begin to know how to fix it?
Thanks
iOS certificates are notoriously difficult. What is most likely happening here is that there is a mismatch between the type of certificate (p12) and the provisioning profile - development or distribution. Meaning, you must use a development cert with a development provisioning profile, and same with distribution.
Steps (start from the beginning to ensure that there's not a mismatch):
Ensure that XCode and MacOS are updated to the latest version.
Extract the distribution certificate from Apple Keychain. Expand the iPhone Developer certificate entry, then select both items - the certificate and the private key together. You can do this by selecting the certificate first, then holding the command key and clicking on the private key. Next, right-click and choose the "export two items" option. You'll be prompted to save the export as a p12 file.
Back over in Apple Dev site, create a new iOS provisioning profile. Choose "Distribution, App Store" as the type.
Upload both to PhoneGap Build and rebuild.

Xcode Signing certificate is invalid when build on ext device

I'm trying to solve an issue with Xcode 8.3.3 that prevents me to test my Apps on my devices.
At the moment I'm using a free provisioning account for my tests.
I've worked many months without any problem, then I've upgraded to Sierra and Xcode 8.3.3.
Unfortunately I don't know exactly after what action/update the problem started, because I have not used Xcode for several months.
The issue: when I try to build my app to run on my iPhone, I get these errors in project page, under General > Signing view:
Automatic signing failed
Xcode failed to provision this target. Please file a bug report at http://bugreport.apple.com/ and include the Update Signing report from the Report navigator.
Signing certificate is invalid.
Signing certificate "iPhone Developer: edoxxx#me.com (xxxxxxx)", serial number "xxxxxxx", is not valid for code signing. It may have been revoked or expired.
The issue happens either on my main Mac account and also if I create a fresh new user account,
it happens also if I use another AppleID account for code signing.
but it doesn't happens if I boot the same machine into another macOS installation (using the same AppleID and same device). In this last case I'm able to build and run the app without any issue on my device.
Because of that behaviour, I think that is something related to some software crap in the first OS installation, and not related to my user's "data" nor my AppleID account.
I've tried everything I've found on internet to clean-up the Xcode installation, including total removal/reinstall plus Keychain cleanup. But nothing solved the problem.
I've found some related informations in this topic:
https://forums.developer.apple.com/thread/83611‌
but no real solution.
Hope that someone could help me :)
Bye,
Edoardo
Here's what worked for me:
Open "Keychain Access"
Find the private key called "iOS Developer"
Delete the private key
Try code signing again, it should work!
I had the same thing happen to me. I discovered my problem was that in my build settings I had set my Code Signing Identity
Debug to iOS Developer
and my
Release to iOS Distribution
Because they were different. One wasn't able to find a signing certificate. The signing certificate I had downloaded was and iOS Developer certificate so when I switched my Code Signing Identity for Release back to iOS Developer everything was fixed.
After further investigation, I've found the problem.
Looking at differences in keychain between my productive machine and the fresh OS installation, I've dicrovered that the "Apple Worldwide Developer Relations" CA was missing in my productive machine (no idea why...).
I've erased all my developer certificates, downloaded new certificates from https://www.apple.com/certificateauthority/.
After the code signing fix in Xcode, I was back able to build and run my app on my device.
Strange that Xcode does not handle this kind of errors correctly, but report a "generic" error about code signing.
Although I added the new, valid certificate to the keychain, it was not working. The solution for me was:
1. Restarting Mac OS (because deleting certificate was not working)
2. Deleting all invalid certificates
You don't have to do something further. The valid certificate is being automatically used for your deployment(/development) provisioning profile.

iOS Provisioning profile: Valid signing identity not found

I am trying to test the push notification functionality on a device. I followed this article. http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
So the issue is when I download the development provisioning profile and import it into xcode then it says the valid code signing identity is not found.
This stops me from building the app as General projects settings says no matching provisioning profiles found.
No matter how many times I push fix button this wont go.
The app ID and provisioning profiles looks good on iOS Dev center.
I have tried deleting them and recreating them again and again but issue remains the same.
Also my build settings are:
There is only one option for code signing identity and that is "iPhone Developer" as no other matching code signing identity is found. I have tried deleting the app and recreating it in xcode also. I have double checked the bundle ID. And I have google a lot. Everyone says revoking the certificate and recreating fixed the issue but not in my case.
Also the keychain seems to have the correct public and private key.
I am stuck on it for last 2 days :(
Make sure to delete the old .cer file from you Keychain and download the latest one.
If the CertificateSigningRequest.certSigningRequest is created from another machine, get the corresponding .p12 file and add it to your Keychain.
Thats it. Now double click on your provisioning profile and it should be valid.
Worst solution:
If you are unable to get the .p12 file, Revoke your existing certificate and configure all again.
Fixed it by deleting all development certificates in iOS dev centre (even my iOS development certificate) and recreating new ones from beginning. I had 2 iOS development certificates and I think Xcode was confused about which to use. This happened because I have revoked my development certificate from another machine and thus creating a new one. Somehow it ended up in two developer certificates managed by xcode. Since then i have'n tested any app on device and so though that was the problem.
Install the valid p12 file (i.e) double click the valid p12 file.

iOS provisioning and keychain generation

I'm using Xcode 4.3.1 on Mac OS X 10.7.3 trying to provision to iOS 5.1 phone. First I used the Development Provisioning Assistant to create a provisioning profile. After dragging/installing the profile in Organizer, it says "valid signing identity not found". I continued with the Development Provisioning Assistant, got a new Development Certificate, installed it. But it didn't help. It's still "valid signing identity not found". After reading this topic on google and other people's solutions, I deleted all keys in Keychain Access, walked through the Development Provisioning Assistant again, did everything it said, but still didn't fix the problem. So I thought I needed a fresh start again. I deleted all provisioning profiles, certificates, keys. Then I redid everything, but no use. I also tried "Add to portal" in the Organizer, which only generated 4 certificates but still no keys.
Should I restart my machine? Just kidding.
If you created your provisioning profile BEFORE you created the certificate, it is invalid. You have to go to the profile and press renew. Then redownload it. The profile is created based on the certificate.
I've been there a couple of times where you are right now. So I tried to understan what was going on and documented it here (Understanding iOS Code Signing) (warning: tl;dr).
Its easy to make mistakes while "following" the steps listed on the portal, and understanding it can help you identify what went wrong.
Here's a quick checklist for you before you go reading the whole thing:
Create a developer certificate from your mac.
Create a provisioning profile on the portal, and make sure to include your developer certificate (created in the previous step) in that profile.
Download and install the profile on your mac (must be same that was used in first step). (You can actually use it on other mac if you export the certificate, but lets not go there)
If you are doing this and still face the problem, you should try 'understanding' then :).

Resources