问题
After I add Today App Extension Target,I become impossible to compile project. below is error:
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.
Embedded Binary Signing Certificate: iPhone Developer: (Developer name) (number)
Parent App Signing Certificate: iPhone Developer: (Developer name) (number)
but Embedded binary certificate and parent app's cerificate are the same. So I'm confusing now...
回答1:
I had to select my app under 'Targets', then go to the 'Capabilities' tab and click 'Fix Issues' under the 'App Groups' section
回答2:
I had discrepancies under Code Signing. My Extension and Main app had different certificates selected. Once I set both to use distribution it worked fine.
回答3:
In the case of using WatchKit, make sure that your Watch App has the correct "Team" selected in the Watch App Target settings (under General > Signing > Team). I had set the phone app's team, but not the watch app's team.
回答4:
If your Xcode has been working fine but stopped working after you add an extension target to your project, most of the time is that your app was signed using a older certificate (still valid with your name etc.), while your extension is signed with a newer certificate with entitlement for the extension. This is why the error. In this case, you most likely have two certificates with the same name, and this what you can do:1.Go to Xcode->Preference;
2. Select Accounts Tab;
3. Select your Apple ID then click on View Details;
4. Under signing Identities List Window, select IOS Development, then click on the
little Configuration icon, and select Revoke;
5. Xcode will then try to download a new certificate.
You can do a clean build after this so both your app and extension will be signed using the new certificate.
回答5:
I solved it by deleting my Apple ID account in
Preferences -> Accounts
and then logging back in again with my Apple ID
回答6:
I had the same issue in Xcode 6, but in my case it occured because of having two active developer certificates. Revoking one had fixed the issue.
回答7:
This issue might arise in the case where the embedded app targets like extensions or watchapp does not have the matching team selected in the General section, as the main iOS app.
Selecting the right team for all relevant targets fixed the issue for me.
回答8:
I had a similar issue. For me the issue was with the certificate showing, 'signed by unknown authority'. I had followed the below steps and it is resolved. The problem was missing apple WWDR intermediate certificate.
We must also install the WWDR intermediate certificate issued by Apple’s worldwide developer relations. It can be downloaded from the portal or directly at http://developer.apple.com/certificationauthority/AppleWWDRCA.cer Make sure you add this to your keychain as well.
To add the certificate: open your keychain utility software on your Mac computer, then go to File→Import items, then select AppleWWDRCA.cer.
回答9:
There are quite a few reasons the issue may emanate from. If none of the other answers are working for you - would like to add another plausible check that helped me. Ensure the certificate you are signing with doesn't have 'Always Trust' (you will see a green '+' sign if the setting is such).
- Go to Key Chain access, double click on the certificate you are using.
- Expand the 'Trust' drop down and change/set to 'Use System Defaults' from 'Always Trust'.
It's especially true if you are using Swift in your project as the 'Always Trust' setting breaks pertinent Swift libraries.
回答10:
I tried to run project in iPhone5,but App Extension does'nt support 32-bit architecture.So When I build project in iPhone5S,I can build the project !
回答11:
You need to create Provisioning Profile for that target and make sure to include the same certificate in it.
Targets has their own bundle id se you will need to create an AppId also. This solved the same problem that you are having
best
回答12:
Just let Xcode handle the provisioning work. This solved the same issue in my case. http://aplus.rs/2014/embedded-binary-is-not-signed-with-the-same-certificate-as-the-parent-app/
回答13:
In case this helps anyone, my fix was that I had updated my archive scheme for release when submitting to the store, but never changed it back to adhoc for testing. Editing my archive scheme to use ad hoc worked.
回答14:
When I had this issue I went to the Apple Member Center and realized that the Provisioning Profile (for the extension) that I had created was marked as 'Invalid'. I just re-created the Provisioning Profile with the same certificate that the app is signed with and then downloaded it via Xcode > Preferences > Account > refresh.
Once I had the new provisioning profiles I selected them in the build settings. I selected the provisioning profile that was just created and also selected the corresponding certificate in the Code signing entity in the build settings and that fixed the issue.
Note that the extension has its own app id and hence its own provisioning profile.
回答15:
For Xcode 8 beta 3
My build numbers were off on my different Targets in my Xcode project file.
My iOS target had a build version 3, but my watch app target and my share extension target both had build version 1.
All I did was match all the targets' build numbers (changed them all to 3) and it fixed the issue.
Hope this helps.
回答16:
Refreshing my provisioning profiles fixed it for me (Preferences -> Accounts -> Double tap the account -> tap refresh button in lower left)
回答17:
Open your key chain and It's the Apple Worldwide Developer Relations Certification Authority, if I choose always trust, Xcode archives failed. When I changed to system defaults, Xcode archives successfully. Yes you will enjoy!!
回答18:
For some reason, my developer certificate was stored in my keychain twice. Deleting one of them fixed the issue.
回答19:
I had got the same issue.
So I did a provisioning profil for each bundle ID and configuration of the WatchKit App :
- Watch App Development
Watch Extension Development
Watch App Production
- Watch Extension Prod
/!\ Be careful because the app ID of the watch app in the developer portal is something like :
com.example.projectname.watchkitapp.watchkitextension
and when i created the watchkit app the bundle ID in Xcode was :
com.example.projectname.watchkitapp
maybe it something which changed since WatchOS 2.0.
回答20:
I had to go to:
Xcode-> preferences -> Accounts -> View Details -> select all Provisioning Profiles -> press DEL-key on keyboard after deletion is completed press Download All button!
回答21:
I had the same issue with an app in Xcode 7.1. The app had a Watch extension and therefore an App Group. What worked for me was to:
- Go to
~/Library/MobileDevice/Provisioning Profiles
- Delete all provisioning profiles listed there
- Go to the iOS Dev Center in Safari and regenerate all provisioning profiles
- Go back to Xcode => Preferences => Apple IDs and choose the Apple ID associated with the app
- Click "View Details..." (lower right)
- Download the provisioning profiles that were just created
- Clean and build again
I believe my provisioning profiles got mixed up because I was using Xcode's "fix automatically" feature for another issue I had with Capabilities => Associated Domains.
回答22:
Open KeyChain Access on your mac, delete the other one certificate that is diff from your own certificate.This issue was general appeared after you loged in another account in your Xcode.
回答23:
I faced the same issue too, I solved it by the procedure as follows:
First, I re Create my team develop certificate(Because we renewed our root certificate)
2、 edit the Iphone Apps develop certificate ,be sure include your certificate you just create.
3、doing same to the watchkit extension And watch kit App
4、go to Your Xocde "Preference ", double click your "Team Name",delete the old Certificate of Iphone 、watchApps、 watchExtention
5、download your new certificate and install.
Then it works.
回答24:
In my case my App and my Widget profile were signed with different certificate. So I had to go to to iOS Developer site, select parent app provisioning profile->Edit and choose the same certificate as the widget. Then click "generate" and "download". Onece you have download it, double click on it to install in XCode. Then select the new provisioning profile for your parent app in Build Settings->Provisionig Profile. Finally Rebuild your project!
回答25:
For me this was happening because some of my provisioning profiles were expired. Created new profiles on developer.apple.com, removed the old ones, set them to Automatic in Xcode, and the error went away.
回答26:
In my case the profile my extension target uses contains different certificates than the profile the parent target uses contains. This was exactly the error messages complained about!
The reason was I generated a new certificate for the extension profile.
So log in to developer.apple.com to see if these profiles contains different certificate.
回答27:
After a whole day it turns out "Apple Worldwide Developer Relations Certification Authority" in the Root Certs had been deleted. I export one from another machine and installed, everything works fine.
回答28:
If you are using any extension (in my case I was using OneSignal Extension) in that case your parent app bundle will be com.app.xyz but for extension/widget your bundle id would be com.app.xyz.extension
So we will create an app id with the bundle identifier com.app.xyz.extension and we will create provisioning profiles for this app id.
We would use same development and production certificates which we used for parent app.
Here is link which can be helpful provisioning profile for a widget
Finally I am not using automatic settings. So I set my provisioning profiles and certificates manually
来源:https://stackoverflow.com/questions/25927604/xcode6embedded-binary-is-not-signed-with-the-same-certificate-as-the-parent-app