Provisioning profile for Today Widget extension - ios

I am trying to archieve my app for submission however I am running into issues with code signing.
Basically I have a Today Widget extension for my app. I am unsure about what I should be setting the provisioning profile as. I assumed that I would just use the same profile that I have used for my app, however I get this error:
The provisioning profile specified in your build settings (“AppName”) has an AppID of “BundleID” which does not match your bundle identifier “BundleID2”. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.
I can of course click 'Fix Issue', but does this actually solve the problem? It just changes my distribution settings to 'iOS Developer' and providing profile to 'Automatic'.

I was struggling with the same problem, and resolved it this way:
You need one App ID configured to the provisioning portal (I assume you have your com.apple.yourappname there)
You need to then configure the second App ID for the Today Widget (which should be com.apple.yourappname.something, where something is the name for your widget, like Today)
Then you need to create two App Store Distribution provisioning profiles:
One for the main App
Second one for the widget
Then assign the correct provisioning profiles for each target to the project settings and set to build for Distribution.

My problem was because of i added "arm" in the Excluded architecture section. I revert it and the problem goes away. It is weird.

Try to create a new App Id for your App extension in Certificates, Identifiers & Profiles (https://developer.apple.com/account). Then create a Provisioing profile for the newly created App id.
If the bundle id for your App is com.apple.appname you create an app extensions with the bundle id com.apple.appname.appextensionname. The same id is then used in Xcode for the widget.

Related

Signing .extension of app not in provisioning profile

I would like to export a new build of my Xcode app to iTunes Connect, but I always get the following error:
Failed to create provisioning profile.
The app ID "[myappid].OneSignalNotificationServiceExtension" cannot be registered to
your development team. Change your bundle identifier to a unique string
to try again.
Provisioning profile failed qualification
Profile doesn't include the selected signing certificate.
I tried the following:
Cleaning the build
Restart xCode
Creating new profiles (distribution/development)
Removing .OneSignalNotificationServiceExtension (gives another error)
I don't want to change the app id since I want to continue on the same app (for my testers).
I had to change my password of my Apple ID due to security issues, but I changed it everywhere they asked for it.
Does anybody know how to fix this?
As oneSignalNotification is an Extension, the App Id of the extension should have main App id as prefix. ie, If your main App id is : com.xx.xxapp, then the app id for your extension should be com.xx.xxapp.someExtention. Also you need to have separate provisioning profile for main App and extension target.

Xcode error: no provisioning profiles with a valid signing identity matching the bundle identifier

I'm trying to run an iOS app on my iPhone in xCode. The app is essentially a third party keyboard for iOS, and it was made by a group of friends. They have added me as 'developer' in iTunes connect. When I try to run the app on my iPhone I get the following error:
No provisioning profiles with a valid signing identity (i.e.
certificate and private key pair) matching the bundle identifier
“com.nameofteam.nameofapp.nameofapp-keyboard” were found. Xcode can
attempt to fix this issue. This will reset your code signing and
provisioning settings to recommended values and resolve issues with
signing identities and provisioning profiles.
When I click on 'Fix Issue', it says:
An App ID with Identifier "com.nameofteam.nameofapp.nameofapp-keyboard" is not available. Please enter a different string.
TL;DR Xcode is very particular about the name you give your App ID in the member center. Having the correct bundle identifier is not enough. You must use the specific format shown below for Xcode to "see" your App ID.
#romrom's solution of deleting the App ID and having Xcode create a new one was a clue. Unfortunately it was a nonstarter for me since my App ID was used by a Store app and therefore could not be deleted.
However, I discovered through some experimentation that I could solve the problem by manually editing the exiting App ID. It turns out that Xcode is really picky about the name of the ID, and not just the bundle ID.
For a typical bundle ID such as com.mycompany.appname, the App ID name must be in this format:
XC com mycompany appname
a name in any other format won't be seen by Xcode.
How to check if you're affected / How to Fix
Log in to the Member Center.
Click on "Certificates, Identifiers & Profiles".
One the left-hand navigation bar, click on "App IDs".
Locate the App ID with your bundle identifier.
If that App ID doesn't have the correct name format (as shown above), click on it then click the Edit button.
Change the name and click Done.
Enjoy the reduction in stress and anger.
P.S. There are some related problems if you're using Xcode 7.3 in which it won't automatically create proper distribution profiles for you, even if you fix the name as I mentioned above. The solution is to downgrade to 7.2.1 or 7.3 Beta or use a tool like fastlane/sigh.
Try this,
Add your Apple ID to Accounts preferences in Xcode.
Go to General tab in Project and choose your team name from the Team pop-up menu.
Below the Team pop-up menu, click Fix Issue.
For starters you want to make sure your bundle identifier is exactly the same as the one on iTunes connect otherwise,
since you seem to have the source code it appears the bundle id you are trying to use is already in use, try a different unique identifier.
Also make sure you have your Apple ID connected to Xcode, it can be added in the accounts section of Xcode preferences. You may also need to create a self signing certificate in keychain access.
as stupid as it sounds - make sure your Provisioning Profile is set correctly in the "Build Settings" tab, under "Code Signing" section, and that it matches the Code Signing Identity certificates.
In my case, I had the Ad-Hoc dist & Release provisioning profiles set correctly, but the the DEBUG was set to Automatic.

iOS8 extension needs own provisioning profile?

I am starting an iOS 8 extension but I can't run it on my device. The error when trying to run it is:
No matching provisioning profiles found
The provisioning profile specified in your build settings
(“ExtensionName”) has an AppID of net.company.AppName which does not
match your bundle identifier net.company.AppName.ExtensionName.
Xcode can resolve this issue by downloading a new provisioning profile
from the Member Center.
Do I need a separate provisioning profile for both the main app and the extension ?
Should they share a bundle identifier (by default it adds the extension name to the bundle identifier, so perhaps not) ?
If it has a separate bundle identifier how is that reflected in the provisioning profile (if there is a separate one) ?
It would seem that Xcode would prefer it that way, however there's nothing stopping you from using a wildcard profile until you want to do an Adhoc or Release to the App Store. More to the point of your question though, for every target that you have, you need a profile and bundle ID. So yes, you "need" another provisioning profile for your Extension, although I expect Apple to streamline this process.
All in all, it's probably best to just use a WildCard dev profile until you need a provisioning profile. Remember this is all a beta, and they're still working on pretty much everything.
Extensions are separate targets from the host app. You have to treat them as though they are separate apps with different bundle identifiers and different provisioning profiles.
It's best if you just create them during testing instead of using wildcards because you may need to test some capabilities that you enabled, for example App Group so that your extension and host app can access the same container.
Note that if you want to have any capabilities enabled for your host app and extensions, you have to enable them individually for all of them.
I've located this documentation pertaining to App Extensions. If you read the bottom of page 20 if seems that using the same distribution certificate is actually suggested. I've gone ahead and changed my bundle identifier for the Today Extension to extend my applications. For example, com.DeveloperName.AppName.TodayExtension, created an App ID in the Dev Center to correspond with that, and created a distribution profile for it.
My app +Quotes has successfully been updated by following these steps. I have not experienced any issues with the app or extension, but Xcode does seem to get a little confused when trying to auto assign the correct provisioning profiles for my extension now. Selecting them manually solves this.
You do need a separate provisioning profile for you extension but with the same certificate your main app has. When you are creating a new provisioning profile, your Extension's app id will also appear in the list, choose that, and proceed to create a new provisioning profile.
Also choose that provisioning profile in the target of your extension.
I simply use "Automatically manage sign in" until I need to push to App store. This works out of the box with simulators, haven't tried with devices yet.
Few pointers for Appstore Build:
I created one wildcard id for every notification extension, but the prefix of this wildcard bundle id should match your app's bundle id as prefixed. If it's not like this, this error will come up: "Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier". So, if your app's bundle-id is: "com.companyName.appName", the wildcard bundle-id for your extension should be "com.companyName.appName.*". You can then replace * with a specific notification extension in the XCode. Note apple only allows one period(".") after the app's bundle id for naming your extension's bundle id.
The version and build number of your extension should match that of your app.
Once App Id is created, create a distribution provisioning profile with this and use it in XCode.

No Matching provisioning profiles found ios7 xcode5

I am having a fairly annoying problem with my provisioning profile, The app I am working on started off with a name lets call it awesomeapp, so in the provisioning portal at apple I have a ios app identifier with the id "com.mydomain.awesomeapp".
but my apps bundle identifier is called AwesomeApp, and it turns out that the provisioning profile that is used the app identifier I have created is case sensitive. as I get this error
The provisioning profile specified in your build settings (“iOS Team
Provisioning Profile: com.mydomain.awsmomeapp”) has an AppID of
“com.mydomain.awsomeapp” which does not match your bundle identifier
“com.mydomain.AwsomeApp”. Xcode can resolve this issue by
downloading a new provisioning profile from the Member Center.
If I click okay it goes ahead and removes the provisioning profile and uses a wildcard one i set up.. However I dont want to use the wild card provisioning profile.
So, I went back to create a new app identifier and I entered the id to be com.mydomain.AwsomeApp however this prompts an error
An App ID with Identifier 'com.mydomain.AwesomeApp' is not available.
Please enter a different string.
which suggests to me that when you create an app ID it is case Insensitive.. how do I get around this problem?
I think there is no other solution than deleting the app id and recreating it with the proper identifier.
Originally Apple had no options to edit, rename or delete an App-Id at all.
However at some point in 2013 they've added an delete button available in your members
provisioning center -> App-Id -> Edit one specific -> delete
Some users have reported, that the delete button has been disabled again but for me, it is still working:

iOS Code Signing Error after App Name Change

Fellow Devs,
I used xCode 4 to develop an app called 'myApp1'. Now I changed the name to myApp2 in the xCode Project Settings, created a new provisioning profile in the Apple prov portal and downloaded it.
However, when I try to compile I get the following error:
Code Sign error: Provisioning profile 'myApp1' specifies the Application Identifier 'com.company.mobile.myApp1' which doesn't match the current setting 'com.company.mobile.myApp2'
Apparently xCode thinks it still needs to use the myApp1 provisioning profile with the new app. How can I point the project to use the new provisioning profile?
Any help greatly appreciated!
thanks!
select your project in the Navigation panel
select your target in the main window
select the Build Settings tab
scroll to the Code Signing section
choose the appropriate provisioning profile for the appropriate build configuration
You can change your application name without getting a new provisioning profile. If you just want to change the name and keep the same bundler ID, use the existing provisioning profile. When the user updates the app this way, their MyApp1 will be replaced with MyApp2.
This question contains the solution to my issue. The question is slightly different though.
Stackoverflow question

Resources