In Xcode 4.3.3 I am able to submit my app to the app store and it is "waiting for review." I deleted my app from my device(iPad) then I decided I wanted it back on. I cannot not accomplish this. Xcode says the build is a success but then a message stating "no valid provisioning profiles for this executable can be found" appears. it does not appear as a red flag in Xcode but rather it's own window.
I've never dealt with such a frustrating apple product as Xcode and the provisioning portal and code signing. Apple, do something about this never ending circle of frustration. UGH!!!
I felt this way too when I first learned this:
I've never dealt with such a frustrating apple product as Xcode and
the provisioning portal and code signing.
If you just submitted the app to the App Store, you used a distribution profile. You should check to make sure, though, that your developer profile is still working. Click on your project in Xcode at the top of the left column, then Build Settings > Code Signing > Code Signing Identity > Debug > Any iOS SDK. It should say something like:
iPhone Developer (currently matches 'iPhone Developer blah blah blah')
If it doesn't say that, select your profile from the drop down list. If there's no matching profile. You need to download it again. Let me know if this helps.
Related
Last week, with Xcode 7, I was able to upload without any issue. But today I am getting the message your app has changed to invalid binary.
I have seen that now with Xcode 8 a new icon 20x20 2x and 3x is added. I added one, but still getting the error.
Does anyone had similar problem?
Сheck your email!
In my case, I wasted a lot of time because I did not check my email. When you get such an error, Apple sends you an email with it's description.
For example, this is what Apple sent me:
"This app attempts to access privacy-sensitive data without a usage
description. The app's Info.plist must contain an
NSCameraUsageDescription key with a string value explaining to the
user how the app uses this data."
After days of wrestling with the same problem I finally got my app successfully submitted, but only after being on the phone with Apple Developer support.
A couple of things to keep in mind:
Make sure you set the Info.plist description keys for any entitlements. This is necessary for iOS apps. Mine was a macOS app, so this didn't apply.
Head over to iTunes Connect, and recreate all your provisioning profiles and code signing certificates if you're not 100% sure that they're valid. You can do it for both Developer and Distribution.
In Xcode, turn off automatic code signing for your app, and any build targets (you can try automatic code signing in Xcode after completing steps #2 and #4 but that wasn't what worked for me).
Go to Xcode preferences, and click your development team, and in the sheet that comes up, you should see some "Download" buttons beside the newly created (in iTunes Connect) code signing certificates and provisioning profiles. Click them all. And so you don't get confused in step #5, delete all the other stale provisioning profiles and code signing identities for this app.
In Build Settings for each of your targets, make sure that the Release build setting for code signing, and provision profile are set to the above newly created code signing certificate and provisioning profile.
Bump your build number.
Deep clean your project (Option-Shift-Command-K).
Archive build your app.
In the Organizer that opens up, select the newly archived app, and validate (it always validated, but I still would get Invalid Binary later).
Export the build and select the option "Save for Mac App Store Deployment" or similar.
When prompted, use the same Provisioning Profiles you used previously and save.
Open the .pkg in Application Loader which you can launch from Xcode > Open Developer Tool > Application Loader menu.
I was't getting any emails on the Invalid Binary issue. Instead, I was lucky enough to have set up my iPad with iTunes Connect, and so, like clock-work, I was getting notifications within a couple minutes of uploading the app: "Your app ... has changed to Invalid Binary."
If you don't get one of these Invalid Binary notifications, that's a good sign. Another 10-15 minutes later, I checked the iTunes Connect portal, and I could finally add the uploaded build and submit for review.
After a while of searching, as a last-ditch effort I added every possible 'NS...UsageDescription into each of my target's Info.plist and this seems to have worked. After process of elimination, I deduced that it was either the NSAppleMusicUsageDescription or the NSFaceIDUsageDescription key-string pair that was preventing the upload from being successful so I just added them even though I don't use either in my project. I have also read on some other threads that something with a new version of Xcode required them to have the NSAppleMusicUsageDescription even though they didn't use anything related to Apple Music.
I have a problem getting a iOS Development signing identity into Xcode. I have tried loads of things to get it working but I keep failing.
I have went the automatic way and let Xcode do it all but I kept going in circles where Xcode kept saying:
No signing identity found. Xcode can request a new iOS Development
signing identity for you.
Followed by:
Your account already has a valid certificate. If you have your signing
identity on another Mac, you can import a developer profile. You can
also revoke the current certificate and request one again.
I have done many steps:
Removing my account from within Xcode's preferences.
removing everything from the key chain app.
clearing everything from within the developer member center (apple developer website)
removing all provisioning profiles
removed my device
revoked all all my certificates
restarted Xcode to perform a 'Clean' project from the Product menu.
even went into my project.pbxproj file to clear anything related to PROVISIONING_PROFILE
removed all provisioning profiles from my device.
After this I went back into Xcode:
added my account into the preferences section
clicked View Details
did a refresh
Xcode automatically creates two certificates
Xcode automatically creates provisioning profiles
Xcode only creates a single Signing Identity: only for iOS Distribution.
This is my problem: I can not get an iOS Development signing identity.
After not getting it to work I went the old fashion manual way:
first clearing everything like the above
created new certificates manually, downloaded them and added them to the key chain app.
created new provisioning profiles manually, downloaded them and dropped them onto the xcode app icon.
At the end the result is the same; When I am in Xcode > preferences > accounts > view details:
I do have a distribution signing identity
I do NOT have a development signing identity
When I click the + button under the Signing Identities and choose 'iOS Development' nothing happens..
I have found lots of posts here on StackOverflow, I tried their suggestions but it won't work for me. Examples of other posts:
here, here and here
I am working with the latest version of Xcode: 6.2.
I am working on an app which is already in the App store.
Edited:
I have also changed the code signing build settings of my project and target into Don't code sign and put it back to iOS Distribution for ad-hoc and iOS Development for Debug.
Together with a very helpful person on the Apple Developer forums we have tried to figure this out.
I was so blinded by it not working, it never came to mind to try out and build another project and to see if that would work. I was completely focused on my certificates and profiles within the member center and my account details within xcode.
When I did try to build another (random) project, it worked in one go. This told us it must had something to do with the Build Settings of that one specific project which xcode could not code sign.
At the end, in xcode I went to the Build Settings of my Target. Within the Code Signing section I changed the values of Any iOS SDK to point to a specific Identity in my Keychain instead of having them on automatic (iOS Developer / iOS Distribution).
This fixed my issue and I was able to build/deploy to my device and I was able to upload a new build to iTunes Connect.
It takes a long time, and we did all the above solutions and they didn't work at all so our team decided to remove Pod files and run pod install again. finally, our OTA uploaded ipa installed on the user's device.
best Solution
clean project menu > Product > Clean Build Folder and /Users/{you user name}/Library/Developer/Xcode/DerivedData
go to your project directory and remove Podfile.lock ,Pods
folder,pod_***.framework
run pod install again
Brabbeldas, did those build setting changes end up getting the iOS Developer certificate showing in the Xcode > Preferences > Accounts > (your account) > View Details > Signing Identities pane?
There was a transient certificate generation issue resolved yesterday (March 26) at around 2:30PM PDT which restored missing Organization Unit fields to iOS developer certificates that also exhibited this symptom (missing developer certificate in the accounts > view details > signing identities pane).
If it's still missing you are probably still affected by this problem. To confirm, double click your iPhone Developer certificate in Keychain Access. The issue is still present if the certificate is missing its Organization Unit field. If your Organization Unit field is present, you're fine. The Organization Unit should be set to the value of your Team ID.
The full symptoms of this problem are:
iOS Developer certificate either shows as Revoked, or doesn't show at all in the Preferences > Accounts > (your account) > View Details > Signing Identities pane.
frameworks signed with the certificate fail to load with dyld: Library not loaded: [your_signed_framework]
Since the certificate server issue is now fixed, resolve the problem with:
revoke affected developer certificate on the website
click the "⟳" button in Xcode > Preferences > Accounts > (your account) > View Details
regenerate any custom developer profiles on the website, download and install those into Xcode
As an additional way to diagnose the problem with signed frameworks, use codesign -dvvv your_signing_framework.dylib. The TeamIdentifier field will be not set for affected certificates instead of your Team ID.
This has been asked before, but the answers to previous questions are not solving my issue.
I'm trying to build a simple Hello World app called (CalculatorBrain) from Stanford iTunes U courses. I can run it in the Simulator fine, but I'd like to get it on my iPhone 4S.
I sync my iPhone 4S through iTunes on my Windows machine. Always have. Figured I should list this detail.
Anyway, back to my Macbook (Mountain Lion). I'm running the most recent XCode 4.6.2 (4H1003) and my iPhone is also the most recent at 6.1.3 I believe.
I went to the Provisioning Portal at the Apple developer page. I added my 4S. I called it JohnSmith, and gave it the phones UDID.
In XCode, I opened the Organizer, Devices is highlighted by default. I put the passcode in my iPhone, and plugged it into my Macbook. Devices finds my iPhone. If I click on Provisioning Profiles and try 'Add Device to Provisioning Portal', I get a "A device with number already exists on this team." Great. I know it's added for sure then. All good news so far.
In my Hello World app, CalculatorBrain-Info.plist my Bundle Identifier is "com.JohnSmith.CalculatorBrain". Bundle display name is "${PRODUCT_NAME}" and executable file is "${EXECUTABLE_NAME}" if that matters.
In the Navigator, if I highlight my project, and bring up the Build Settings, under Code Signing Identity I get the options...
Don't Sign Code
Automatic Profile Selector
- iPhone Developer
- iPhone Distribution
Identities without Provisioning Profiles
- iPhone Developer: John Smith (R............K)
- iPhone Distribution: John Smith (Y.............5)
Other...
I've tried all of these. I'm assuming I'm supposed to use the iPhone Developer: John Smith one... but it's saying it's an identity without Provisioning Profiles.
What's going on here? What do I need to do to get this to work?
Based on your description, it sounds like the missing element is that you need to go back to the 'Certificates, Identifiers, and Profiles' tool, generate a Development Provisioning Profile for the AppID of your HelloWorld app, then install that profile on your development machine. At a high level, this is composed of the following steps:
Locate the AppID for your project in Xcode.
Verify that you've setup that AppID in 'Certificates, Identifiers, and Profiles'.
Create a Development Provisioning Profile for that AppId, your development certificate, and one or more registered test devices.
Download and Install the Provisioning Profile in Xcode.
Configure your project to Code Sign using this Profile and Linked Code Signing Identity.
Build to device!
The 'Code Signing Identity' build configuration item you have mentioned is very much dependent on both your project's settings as well as the Provisioning Profiles available on your development machine. I recently answered a tangentially related question 'What are code signing identities?' that may be helpful in seeing what information Code Signing is using and how you can check that you've got your development machine setup to be able to Code Sign your project.
...and now, on to more specific HOWTOs to help work through your Code Signing question:
Locating Project's AppID
The AppID uniquely defines an application in the iOS ecosystem and is one of the things you first create when starting a new Xcode project. This AppID is what you need to register in the 'Certificates, Identifiers, and Profiles' tool to get started with Provisioning.
In the Project Navigator (CMD+1), click on your project name (likely 'CalculatorBrain'). This will present the project's settings.
Select [Your Project Name] > Summary Tab as shown in the screen clipping from above (MyiOSApplication).
Your iOS AppID is presented in the 'Bundle Identifier' field. Snag a copy of this string, you'll need it next.
Verify (or Setup) the AppID
Navigate to http://developer.apple.com/ios and access the 'Certificates, Identifiers, and Profiles' tool.
After logging in, select 'Identifiers'.
Check that the AppID you found in the previous section is present in the list of App Identifiers. If so, take note of the App ID Name and skip to the next section, otherwise...
Click the 'Add' (Plus) button in the upper right corner, provide a name for this App ID (can be whatever you want, just so long as it doesn't have special characters.)
Scroll to the bottom of the page, and paste a copy of your App ID from the previous section in the 'Bundle ID' field. under 'Explicit App ID'.
Click 'Continue'.
Do note that the AppID must be unique across the iOS Ecosystem -- you may get an error if the AppID you've selected is already in use. If so, change your 'Bundle ID' to something unique -- just be sure to update the 'Bundle ID' setting in your Xcode project to match whatever you settle on.
Creating a Development Provisioning Profile
Now that the App ID is registered, you are now ready to create a Development Provisioning Profile linking your App ID, Development Certificate, and Test Device ID(s) together.
Within the 'Certificates, Identities, Profiles' tool, navigate to 'Provisioning Profiles'.
Click on the 'Add' (Plus) button in the upper right corner.
Select 'iOS App Development' in the 'Select Type' step and then click 'Continue'.
Select your App ID from the drop down list of App IDs and then click 'Continue'.
Check the box next to your Development Certificate and then click 'Continue'.
Check the box next to the test device(s) you want to authorize to install this app and then click 'Continue'.
Key in a Profile Name (again omitting special characters) then click 'Generate'.
Download and Install Provisioning Profile
Once the Provisioning Profile is generated, the tool will provide you with a link to be able to download
Download the Provisioning Profile by clicking on the 'Download' link.
Drag Provisioning Profile from your Download location and drop it on the Xcode Dock Icon or double-click to open it.
Configure Code Signing Identity
Sounds like you already know where this is located, but just in case:
In the Project Navigator (CMD+1), click on your project name (likely 'CalculatorBrain'). This will present the project's settings.
Select [Your Project Name] > Build Settings Tab.
Scroll to the 'Code Signing Identity' item.
In theory you would like to use the 'Automatic Profile Selector' option which will attempt to match your AppID to an installed Provisioning Profile, but you can also scroll through the list and pick a specific mapping of Bundle ID/AppId to iOS Certificate.
Also, my own Xcode doesn't always seem to catch on to changes to freshly-installed provisioning profiles -- It is unclear if this is just a quirk of my own Xcode install or if there is a bug in Xcode. Either way, quitting and relaunching Xcode seems to trigger a reindex/refresh of profiles.
Anyway, select the option that matches your AppId/BundleId and your Developer Certificate.
Assuming the problem was a missing/incomplete/expired Provisioning Profile, then this should help get you up and running. If not, we'll have to dig into other potential settings or certificates issues that could be tripping up your Code Signature operation.
I had very similar kind of problem, tried every option to those Code Signing's and the actual solution to mine was:
- Restarted Xcode
- Go to "Window->Organizer"
- Then "Editor" and
- "Refresh from Developer Portal"
Then I just "Set the active scheme" to "iPhone (Petri)" on beside the Run and Stop buttons.
Please make sure Targets is checked instead of projects.
In my case device has 3 provision profiles of the same name. During development I updated provision profile a few times and every time new updated profile was added to device without removing the old one. So xcode searched first provision profile wich was wrong at that moment and throwed error in my face.
So, what should you do:
Open "Devices" window (Cmd + Shif + 2)
Search for your Device and select It
In the left bottom corner press on the "settings" button
Press "Provision profiles"
Search for dublicates. I found 3 items of profiles with the same name
removed all but the latest one
I am working on an app that I would like to put onto some iPads (not the App Store). I bought the developer license, and added the provisions on Xcode. Now when I try to build the app for the iPad which I have connected to my computer, I get the error:
A valid provisioning profile matching the application's Identifier '' could not be found
I think that this problem has been caused because I have two different teams running on my Xcode, and I don't know how to specify the correct one (one has expired). Also, I remember when I first created my App that I didn't really pay attention to the fields like 'Company Name', can I change those now?
EDIT: Here are the provisions I do have:
I had the same issue when i first installed the provisioning profile on the XCode. i'm using Xcode 4.5.* version. Although I installed the prov profile and certs in my mac, when i go to the Devices tab in the organizer in Xcode and clicked my device, i still couldn't see the new provisioning profile was added to the device. So I clicked the "Add to Portal" button with a + mark on it. It did the trick and i was able to test my app successfully without any errors about missing prov profile. Hope this helps for some of you with the issue i had.
This is a very common (to me at least) error. It sounds like you just don't have a mobile provision for the app you're trying to put on your iPad. You need a .mobileprovision file for each app identifier. As for the various names of things, you can edit them in the info tab of your project or in info.plist.
If one of your profiles has expired then delete it, although this shouldn't affect anything.
To get a provision for your app, go to the apple provisioning portal and add a provisioning profile. Then you just have to put all of the specifications (UDID, development cert, application ID) in and it'll kick out a provision. There's a how-to guide on the apple developer site for both making provisions and putting them where they're supposed to be.
For some reason it also looks like your app's identifier is empty; you can change this in your project's info tab. The .mobileprovision app ID and your app's ID have to match EXACTLY otherwise nothing works.
In my case, I had to first BUILD the app with Cmd-B.
This popped up a keychain window access asking me to "Allow" (or "Always Allow") Xcode to access the keychain.
Only THEN could I actually run the program to launch it on my iPhone.
Apparently, hitting only run didn't do the trick.
(Btw, remember to first sign your app with the "iPhone Developer: Your Name ()" key.
As Dustin said:
The .mobileprovision app ID and your app's ID have to match EXACTLY
otherwise nothing works.
In your info.plist XCode automatically sets the 'Bundle identifier' to something like:
com.domainname.applicationname${PRODUCT_NAME:rfc1034identifier}
Delete the '${PRODUCT_NAME:rfc1034identifier}' and leave only 'com.domainname.applicationname' so that it exactly matches your provisioning profile ID.
This worked for me when I had the same issue. Hope it helps.
This progress is a chaos. the hardest issue in the universe and the world I think.
it should be simple.
in xcode5 "fix issues" button doesn't fix issues. but hey ! this isnt take a day. but some hours to fix.
I have XCode 3.2.2 and am trying to build an app to my jailbroken iPad. I have followed the tutorial to Fake Code Sign Apps here on Multi-Touch forums. On the iPad, I installed AppSync. Still, when I tried to build my app, I got
Error Starting Executable
No provisioned iPhone OS device is connected.
I think next, I'll try Cydia's tutorial....which probably woulda made sense to do first anyway. I'll post progress here. But in the meanwhile, any suggestions are welcome.
Thanks!
Thomas
OK so clearly, I'm just an idiot. I'm using XCode 3.2.2, which only supports iPad 3.2. My iPad has 3.2.1 installed. Updating my XCode will probably fix this (non) issue lol.
There are three ways to do this:
Self-Signing (from Xcode)
Pseudo-Signing (from device)
Disable Signing
All are detailed and explained here on Saurik's site.
I went with self-signing. Here's the process for those interested.
Self-Signing
Edit Info.plist file
Located at /Developer/Platforms/iPhoneOS.platform/.
Find three occurrences of "XCiPhoneOSCodeSignContext" and replace with "XCCodeSignContext"
Create certificate.
Open Keychain Access >> Click Keychain Access >> Certificate Assistant >> Create a Certificate
give it any name
Self-signed Root
Change type to "Code Signing"
Check "Override defaults"
Click "Continue" until done
Build the app in Xcode.
Edit Project Settings >> Set "Code Signing Identity" to the name of the certificate you just created.
Select the device you want to build to from the dropdown menu (not simulator)
Cmd + B to build
Copy to Device
Get the .app file from the build directory (/build/Debug-iphoneos/AppName.app)
SSH the file over to /Applications directory on the device
Respring/ reboot
In xcode's menu bar, go to windows->organizer. I don't remember exactly what it looks like, but once you plug in an ios device (aka the iPad) it should appear under devices on the left hand side. Click on it, and it will take you to a screen with 2 or so buttons on it, one of which will be 'use for development', or something like that. Clicking this will provision the iPad for development, and everything should work fine after that. Repeat for all other ipads/phones/touches.