Embedded Binary - xcode

error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's.
Also, why does my profile keep getting replaced with a XC wildcard profile?

Solved the issue. I followed this steps to solve.
go to my Build setting and changed all Code Signing Identify to iOS Distribution.
Compile m Project
XCode throws error message that Signing identity is wrong with an option to fix it. I clicked Fix it button.
It happened twice.
Now XCode change it back to IOS Developer.
Now it is working.

For code sign issue please check if this works
https://stackoverflow.com/a/42244194/1084174
For auto profile creation,
You must disable automatic management for all targets in your app.

Related

error itms-90451 "CFBundleIdentifier Collision Error"

I uploaded a version of my app – this error pop ups and I dont have any changes from the Google Maps portion of my app. On my first upload, there was no problem.
Just remove the embed frameworks build phase from your extension.
Click on extension in target section -> Build phases -> remove the embed pods frameworks
See attached picture:
This issue is probably Apple's iTunesConnect side of the problem.
see my question:
ITMS-90451:CFBundleIdentifier Collision Error
I also encountered the same problem in the submission of the application using the Qt framework.
I have submitted a report in https://bugreport.apple.com/.
Something I will even write if there is a reply from Apple.
I am wondering if iTunes Connect is having a temporary issue. I have the same exact error, now with a different third party library
I Solve the problem. I just deleted the 3rd party framework. Then add it again. I don't why it cause this but it works.
Frameworks Signing set to None and Don't Code Sign.
Build Phases - Copy Files - Code Sign On Copy Enabled
This issue is either iTunesConnect issue or Cocoapods.
When you archive and submit the App, you get this “CFBundleIdentifier Collision Error” because iTunesConnect is considering info.plist of one of pod dependency not your Watchkit App or its parent App.
In our case, it was considering Google Maps and Instabug's info.plist file.
Solution :
To solve this issue we deleted all the values of info.plist from our pod dependency. Clean archive and successfully submitted.
GoogleMap iOS SDK contains info.plist on following path : GoogleMapSDK -> Resources -> GoogleMaps.bundle -> info.plist
Screenshots of Errors :

Error when trying to submit app: No matching provisional profiles found

I am trying to submit my app to the App Store however I am having issues with Provisioning Profiles.
When I click Submit after having archived the app, I receive the error:
No matching provisional profiles found - None of the valid provisioning profiles allowed the specific entitlements: applications-identifier, beta-reports-active, keychain-access-groups.
Here is my settings (I have the both the same settings in build settings in both the project and the target):
How can I fix this?
I was able to fix this problem by changing the Architectures setting. I assume this was just a problem with Architectures/Valid Architectures being incompatible with one another.
For me, the issue was that a tool I was using for image resize got into the images resources that the app was bundling up. So, whilst it happily build and archived all the .png's and this rogue .app the app store barfed on it.
In the end, looking at the console log gave me the clue I needed. As soon as that file was taken out the warnings about applications-identifier, beta-reports-active and keychain-access-groups.

The identity 'iPhone Developer' doesn't match any valid, non-expired certificate/private key pair

It never happened to me before, I already downloaded sample code before, but now im getting this error:
I saw some questions with this error, but they say to check your "code signing" and I dont see what is wrong there...
Please help, im freaking out
The error means provisioning profile doesn't exist So
Check the Bundle Identifier in the plist file .
Go to Codesign Identity and click on the dropdown menu and click on the matching Provisioning Profile ( Matching provisioning profile appears in Black color )
Since the problem deals with code signing, you just have to uncheck the "Code Sign Application" box on Summary Properties. It worked fine for me.
I am suffering the same problem. Most of the answers saying things like Bundle Identifier, provisioning profile, or crap like that.
If people know what those are, they won't come to internet, OK?
check this
http://www.techotopia.com/index.php/Testing_Apps_on_the_iPhone_–_Developer_Certificates_and_Provisioning_Profiles
it explains everything.
Possible fix (that worked for me) :
I changed the scheme "iOS Device" to "iPad 6.1 Simulator" or "iPhone 6.1 Simulator" then I rebuilt the project without this error.
I had the same error and I found this: How to make an IPA on XCode 4.6?
These steps work for me:
1. Go to /Applications.
Right click on XCode and select 'Show Package Contents'.
CopyContents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/SDKSettings.plist to your desktop. (Make sure to actually copy and paste. No drag and drop)
Open it and under DefaultProperties set CODE_SIGNING_REQUIRED to NO.
Copy it back and replace the original file.
Restart XCode.
Open your project.
In Project Navigator select your project and open Build Settings section of your porject (and not any particular target)
Under Code Signing find Code Signing Identity and for both Debug and Release modes setAny iOS SKD to Don't Code Sign.
Now you should be able to build your project without any errors.

TestFlight rejecting build "get-task-allow" error

So I'm using testflightapp to distribute an ad-hoc build.
But I keep getting this message: 'Invalid Profile: distribution build entitlements must have get-task-allow set to false.'
I don't have an entitlements file for my App, so XCode automatically produces one and includes it in the build.
I unzip the App.ipa and open up the embedded.mobileprovision file and look at the entitlement dictionary.
It looks like this:
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>E9PBH9V8TB.*</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>E9PBH9V8TB.*</string>
</array>
</dict>
Anyone else experienced this before?
I don't understand why I'm getting this error.
Turns out the Code-Signing Identity in my build configuration didn't match the one I selected when I saved the archive for Ad-Hoc distribution.
Heh, i suddenly found that Code Signing Identity for Release build was changed to iOS Developer.
You should change it to iOS Distribution. If it doesn't fix your problem, set Provisioning profile for Release build.
It works for me. Happy coding!
Update: Sometimes XCode doesn't apply this changes and restarting of XCode could help. Anyway before uploading to Testflight I strongly recommend you to check build logs. You should find this line "Using code signing identity" and see if XCode use the right Code Identity (distribution) to sign. It could save you a lot of time.
Oddly enough, restarting xcode, and rearchiving can help. It sure did for me. :-)
(TestFlight iOS App get-task-allow Issue)
I had this issue in XCode 5. My provisioning profile was setup correctly but I didn't have an "entitlements" file. To fix this issue I selected the target application and then the "Capabilities" tab. I turned on one or two of the available options (iCloud, Game Center, Passbook, etc.) so XCode would create an "entitlements" file. After the file was created I turned off the options that I had just turned on. Again, I built and archived the project and was able to use the .ipa file with TestFlight.(see screenshot below)
I have the same problem.
If you follow the TestFlight instructions the Entitlement configuration in the Target --> Summary should be disabled.
"Scroll down and expand the Entitlements section in the Summary tab. In previous versions of Xcode, you were required to create an Entitlements file and create a get-task-allow key. This is no longer necessary. Unless your application requires special permissions surrounding iCloud or Keychain Access, you are not required to create this file. Leave the Enable Entitlements checkbox unchecked."
But doesn't works for me, hopefully works for you.
Most often you are signing your application with a Development Provisioning Profile.
You MUST ensure that your are signing your application with an Ad Hoc Provisioning Profile.
From Testflight web site
I had the same problem. I logged in to the Apple Provisioning Portal and it turned out my Ad-hoc distribution provisioning profile was invalid with a yellow warning sign.
I deleted the old provisioning profile, created a new and selected it in XCode release settings. (Make sure you go to XCode Preferences, Account and refresh provisoring profiles first)
I had the same problem. Solved it by checking and changing the identities I had used to sign the build. Fixed it for me.
Another thing that might work, if you don't have anything of importance in your Entitlements.plist file, is to just delete the file. Weirdly enough, this worked for me.
I face this issue multiple times even after setting the correct code signing in the project and target settings.
I restarted the XCode, created another IPA and uploaded it to Testflight. That worked perfectly.
So I conclude it as:
1) First check if the code signing details and the provisioning profiles are correct.
2) If you still face the issue, quite XCode. Restart it and archive once again. Re upload the newly created archive and everything should be fine at this point.
If someone encounters this issue in Xcode 7.3.1 and if a restart doesn't help, try first to Validate bunle, then to do Upload to App Store...

Entitlements are not valid

Recently, I have upgraded my iPhone SDK OS from version 2.2.1 to 3.0 version. After that, while building my application, I get an error that the provisioning profile has expired. So I created a new provisioning profile.
Then I made the distribution of my application with the provisioning profile. But I get an error in iTunes while synchronising my application into an iPhone device. The error message is "The application 'iGVA' was not installed on the iPhone because the entitlements are not valid."
I checked the code signing Entitlements contains the correct entitlement plist file.
How can this be solved?
Michael's answer above is spot on (or the link he points to is). Here are the steps I had to take to get it to work:
Have an ad-hoc certificate for which the device UDID is checked. Install that cert by dragging it onto the XCode icon.
On the project, create a distribution configuration and set your build params to the appropriate device | distribution. Right now, we build for Device 3.0 | Distribution.
My project did not include an Entitlements.plist file - I had to add it by selecting from the menu File | Add File | IPhone OS | Entitlements, and call the new file Entitlements.plist
The new plist file has only one row - set the value of that row to unchecked.
In the project build configuration, in the line for Code Signing Entitlements, enter the Entitlements.plist filename as the value.
In the Code Signing Identity, select the ad-hoc certificate identity (though I have found that you can also use your distribution certificate identity)
NOW BUILD :)
Deliver the resulting app file plus the ad-hoc cert to the person who gave you their UDID. Should work :).
An Entitlements.plist file is required for testers to install ad-hoc builds. The default iOS templates don't include one. In XCode 3.2.4 you create one like this:
From the menu, choose "File > New File…"
Under iOS Templates, there's a Code Signing section. Choose the certificate icon named Entitlements. Name the file "Entitlements.plist"
Select Entitlements.plist in your source tree.
Choose "View > Property List Type > iPhone Entitlements Plist"
Add a new key to the property list (select the top line, press return)
The item will probably be named "Can be debugged". If not, choose that from the available options. This is equivalent to "get-task-allow".
If you don't yet have one, create an 'ad-hoc' build profile:
Select your target in the source tree.
From the menu, choose "File > Get Info"
In the inspector. select the "Build" tab.
Under 'Configuration', choose "Edit Configurations…'
Select your 'Release' configuration, click 'Duplicate' at the bottom of the screen.
Rename the new configuration "Ad-Hoc Distribution"
Now you've created an Entitlements.plist, you need to add it to your build settings.
Select your target in the source tree.
From the menu, choose "File > Get Info"
In the inspector. select the "Build" tab.
Make sure the configuration selector is set to "Ad-Hoc Distribution"
In the "Code Signing" group, change the value of "Code Signing Entitlements" to "Entitlements.plist" - XCode may have put in a relative path for you. If so, change it.
Note - you'll have errors installing the app on your own device if you build & run with "Code Signing Entitlements" set for other build configurations.
Finally, check that the Entitlements.plist has been added to your target.
Select Entitlements.plist in the source tree.
From the menu, choose "File > Get Info".
Select the "Targets" tab.
Make sure the checkbox next to your target is checked.
You should now be able to distribute your ad-hoc builds without this error.
Most of this was gleaned from Apple's Managing Application Entitlements Guide, the rest by trial & error.
I got bit by this as well and found the answer in Ad-Hoc Apps and Entitlements.
You may need to make sure the path to your Entitlements.plist file is entered in your project settings under "Code Signing Entitlements".
I was getting crazy over this. Finally, I guess I got it. In project settings, I was setting entitlements and code signing stuff properly in the correct Adhoc configuration. However, although all seemed OK there, when I checked "Project -> Edit Active Target" my code signing entity was still stuck at "iPhone Developer".
After switching that to the correct "iPhone Distribution" and recompiled, Xcode asked me to allow code signing for the first time. And it all compiled and is transferred to my phone now!
I hope that helps. I seriously believe this problem is a bug or defect on Apple's side. I lost several hours for a simple thing, thanks to their undocumented IDE...
For record's sake, as all these wonderful answers didn't help me, I thought I'd share my Entitlements glitch.
So yes, I added UDIDs, got the provisioning, verified on the phone, in build settings, etc.
My glitch (thanks http://www.musicalgeometry.com/?p=1237) was that the Ad Hoc scheme was set as Ad Hoc configuration only for the Run settings.
For archive settings it was still pointing to the old Release configuration.
(These settings are the left side tabs in the edit scheme window.)
If I save someone my frustration - I've done my bit.
Code signing entitlements are no longer necessary for Ad Hoc builds in Xcode 4 - see details notes in Apple Technical Note TN2250
You also need to make sure that you have an unexpired provisioning profile, which foiled me on this one for a while (Ad Hoc provisioning profiles seem to expire after a year). Error message is the same, but it has nothing to do with not having a valid Entitlements.plist file.
Be sure that when you 'Build and Archive' that you are building for 'Device' and your configuration is not 'Debug'. It will seem to create the archive correctly, but will fail upon installing the .ipa the device if you are set to a Debug profile when you do the 'Build and Archive'.
This problem might not have anything to do with the Entitlements plist per se. I have two iPod Touches I use to test with. When I went to sync the apps with them, one worked perfectly, but for the other I got the 'entitlements are not valid' error. As it turns out, one device (the one that worked) had the mobile provision file on it, while the other one did not. This was an obvious oversight on my part. However, what threw me was I never explicitly added the provision file to the first device either. Not sure how it got onto that device (I'm still new at this - lol) - in the past I always just dragged it into the Organizer with the device attached, but I didn't do that this time.
So the provisioning profile and xcode were all set up perfectly with the correct IDs, etc. but the app still failed to sync. Obviously if the device isn't properly provisioned, you will get the error. Would be nice if the error was more helpful in this case.
I had this in XCode 4. I tried cleaning, deleting and recreating the entitlements file but still no joy. Then I changed the Value for "Can be debugged" from YES to NO .. and it worked. Anyway it seems to work fine now, I hope this helps!
This happened to me as well, and the other answers did not solve it for me.
After spending half a day building, installing, cleaning, clicking to no avail - I finally erased Entitlements.plist from the box under Code Signing Entitlements, saved, and typed it in again - voila! It worked again! I never touched the actual Entitlements file, just the setting.
I had this same problem, using Xcode 4. It turned out to be caused by a wrong selection for Identity in the "Share..." dialog in the (Archives section of the) Organizer.
The correct selection (for me) is: "Don't Re-sign".
I had this issue as well. As it turned out, sure I had edited a configuration to support ad hoc, and sure I was building using the distribution configuration. BUT. I hadn't edited the distribution configuration's properties, but the release's instead (I thought I was editing the distribution).
This might not be it. But even though you're certain, double check you're using the correct configuration, and that this configuration is adjusted properly.
From the docs:
Building an app for Ad Hoc
distribution is similar to building an
app for App Store distribution, with
an exception of two additional steps.
First, you need to create an Ad Hoc
Distribution Provisioning profile and
add the UDIDs of the iOS devices that
you want to distribute to using the
iPhone Developer Program Provisioning
Portal. Second, you need to create a
code-signing Entitlements file. For
information about how to create an
Entitlements file read the Managing
Application Entitlements section of
the iOS Development Guide.
Managing Application Entitlements
iOS provides access to special
resources and capabilities—such as
whether your application can be
debugged—through properties called
entitlements. To specify entitlement
information in your application, you
add an entitlement property-list file
containing entitlement definitions
(key/value pairs) to your project.
When you build your application, Xcode
copies the file to the generated
application bundle.
To add an entitlements property-list
file to your project:
In the Groups & Files list, select the
Resources group. Choose File > New
File. Choose the iOS > Code Signing >
Entitlements template. Name the file
Entitlements.plist. (You can use any
name; just ensure it matches the value
of the Code Signing Entitlements build
setting, as explained later in this
section.) Set the type of the
property-list file to iPhone
Entitlements. With the file selected
in the text editor, choose View >
Property List Type > iPhone
Entitlements plist.
Add your entitlement entries to the
file. For each entitlement property
you need to define:
Click the Add Child or Add Sibling
buttons to the right of the selected
row. The Add Child button has three
lines depicting a hierarchy, the Add
Sibling button has a plus (+) sign on
it. Choose the entitlement property
from the pop-up menu that appears. If
the entitlement you need to add
doesn’t appear in the menu, choose
View > Property List Type > Default
for File Type. Then enter the
entitlement-key name and type.
Enter the value for the property. Set
the Code Signing Entitlements build
setting for the target to the name of
the newly added entitlements
property-list file.
Once you
have created your Entitlements file
and added it to your Code Signing
Entitlements build setting, open the
Entitlements file and add or edit the
get-task-allow key and set it to
false.
In addition to compressing your .app
bundle to distribute your Ad Hoc build
to testers, etc. it is recommended
that you also compress the
provisioning profile before
distributing because certain email
clients and servers may corrupt the
provisioning profile.
For information about Ad Hoc
distribution please read the
Publishing Applications for Testing
section in the iOS Development Guide.
I just found another circumstance that causes this problem. You have to make sure you include the correct provisioning profile. I have an application that has both an iPhone and an iPod version, and an iPad version built from the same project. I apparently sent out the iPad ad hoc profile with the iPad version of the application, and it doesn't work. Worse, I installed the correct profile locally with Xcode, so everything works correctly on my machine.
I experienced a problem whenever I added a new device in the device list, and then made the new profiles by selecting the new devices and drag them to Xcode and prepare the build.
The moment I use that build for device installation I get the error
ENTITLEMENTS ARE NOT VALID
I tried to resolve it by all the ways I could think of but nothing positive came out. Anyhow, I have to make the new App-ID or have to repeat the whole process of creating profiles. Then I can install the build on the device.
make shure to select the Signing Identity in the TARGETS ;)

Resources