I had another issue which I believe got solved here.
Now I have an issue with a Provisioning Profile:
During the previous issue, I deleted the iOS keys in my Keychain. During the archive process, Xcode retrieved them for me, same with the certs.
I created this Provisioning Profile, downloaded, and I have double clicked it to add it, but I keep getting this error when trying to validate.
Any ideas?
If all else, fails, how can I wipe everything clean and start over?
It looks like the certificate you created became invalid because you deleted the private key. Unless you kept a backup somewhere, you should log in to the development center, delete this certificate, and then create a new one.
If you deleted the private key it is gone forever. Your developer account only has the public key to keep the private one from being stolen off the servers. The best thing to do when creating provisioning profiles is to save a copy of the private key (you can export from Keychain Access.app) and store them with a copy of your profiles, etc from Xcode. That way if you change machines or add a new machine you can still use the same profiles.
Related
I'm trying to deploying my flutter app to Google play store as a test. On this document, https://flutter.dev/docs/deployment/android, I think I need to store my keystone file private, but I'm not sure how to do it.
I'm completely a beginner to coding, so if someone can tell me how to make the file private, I want to know. I searched to make the keystone private, but could not find and I'm stuck now.
It simply means keep to yourself somewhere safe. Don't upload it on public git-repo or anywhere. If you lose it then you might not be able to update your application anymore. If you're keeping it inside the app's project folder then add it to the .gitignore file so that it don't get uploaded in public git repo. If you're using private repo then you're good to go.
I did some tests with Actions on Google but it was with the wrong account so I deleted the project. Once I created the new one with the good account, I discovered that the invocation isn't deleted so I can't use it anymore.
Did I miss something to get it completely deleted?
I've received the mail about the 24h hour to recover the project but it's been more than 24h now.
This happened to me. Support told me that there was a way to "undo" the project deletion and once un-deleted I could change the name so that the old one could be re-used. I forget the details but that option wasn't available for me. They told me I could wait a month or so until the project was physically deleted from their cloud or I could submit a ticket to delete it and wait a week. That's what I did.
I am trying to figure out a better way to transfer bundles within our company and to multiple clients account. Which one will be the better way to install a bundle and later update it - Copy or Push? What are the limitations?
Copy is intended for versioning, deprecation and release testing.
You can think about copy as Forking a Project.
When coping a bundle, it will get a new bundle number and will appear on the bundle list.
If you want to move the bundle to client accounts, you have to install/push it on their accounts, never copy.
I have two Team provisioning profiles which I need.
The automatic selection picks the wrong one for me at the moment.
I can't force it to use a specific one, because that choice gets submitted to svn.
Is there a way to influence the automatic selection?
I figured out that XCode picks the Team Provisioning Profile that was last added.
So, When you need to change the default picked profile, just reinstall it on your machine.
The defaults are chosen based on the bundle identifiers associated with each profile. You might think that the selector would choose the most specific identifier which matches your project, but this is not the case.
The selector chooses any profile which matches your project, with a preference for the most distant expiry date. The selection can therefore be shifted by generating your profiles in a specific order. The most recently generated profile will have a slightly later expiration date, and will therefore be preferred over older matching profiles.
(paraphrased from retrodreamer)
In the middle of developing an app, I was asked to switch to a different developer account, which resulted in adding a new app ID and creating new provisioning profiles for adhocs on the new account, as well as updating the XCode settings to sign with the new identity.
The problem is that somewhere, somehow XCode is keeping the old provisioning profile around.
I.e. I had a distribution profile "OLD". I created a "NEW". I deleted "OLD" from Organizer in XCode. When I build and archive, "OLD" REAPPEARS in XCode's Organizer, and the adhoc doesn't work for people.
I've tried doing a
grep -r "AD67EE83" *
in the trunk directory for the app, where "AD67EE83" is the profile id in the Organizer. I get a bunch of results in the build directory that look like this:
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:N/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:CProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:x/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:lSLF07#2#192"ProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision303990620#303990620#0(0"0(0#0#108"/Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision8628715392#445" cd /Users/me/Docume <com.apple.tools.product-pkg-utility> "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" -o /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/m0#p.app/embedded.mobileprovision
(I replaced the actual ID with BLABLA there, in case you wonder about that.)
In any case, OLD is pulled out from somewhere and restored and used. Insane. I deleted in Organizer and searched my disk for that AD... thing and found a few files in /Users/me/Library/MobileDevices/Provisioning Profiles/ which had the same names.
I deleted those and it still pulls them out from somewhere when i Build & Archive. In fact, those files are put back in that directory as well.
I've gone through all the settings trying to find any reference to this AD... profile, but there's none anywhere.
OLD is tied to "com.oldcorp" and NEW is tied to "com.newcorp" -- doing a grep 'newcorp' reveals
myapp-Info.plist: <string>com.newcorp.myapp</string>
Doing a grep 'oldcorp' gives no results.
Any ideas where it might be referring to this old invalid cert? (It's even removed from the developer portal, so I don't think it's possible for it to download it from Apple directly.)
Update: building and archiving ANY project results in the resurrection of the "oldcorp" distribution profile, so it's not related to my project. Problem remains though - adhoc is non-functional.
Solved this by recreating a project and manually putting code in. Long term solution is in answer below.
I create new User accounts on my Mac when dealing with different developer accounts to prevent XCode caching from creating these types of messes.
That might still provide you with a solution. Create a temporary fresh new User account, install only the private keys, certificates and provisions needed for the new developer account in the new User account, make sure not to use any shared user directories in your build settings, check out your project from source control into the new user account, and run Xcode for your Ad Hoc builds there.