Cannot generate app-group provisioning profile or get one that matches - ios

I have an iOS app with an app group to receive inbound images from other apps. I simply cannot get it to sign. I have gone through signing a bunch so the process is very familiar but I can't even get the group identifier to show up under provisioning in the developer center. Can someone help? Here is the scenario ->
I cannot create a provisioning profile for my app group group.com.xxxxxx.bookapp.
I have made a new app group identifier group.com.xxxxxx.bookapp.
I have added it to my app identifier in com.xxxxxx.bookapp under capabilities in the dev center, and selected group.com.xxxxxx.bookapp and it looks correct.
I have regenerated all my provisioning profiles.
The app will build fine until it gets to the share extension target and it says Provisioning profile "Provisioning Profile Name" has app ID "com.xxxxxx.bookapp", which does not match the bundle ID "com.xxxxxx.bookapp.shareextension".
I cannot generate a provisioning profile for "com.xxxxxx.bookapp.shareextension" because it does not show up in the lists of available id's in the developer portal when I try to create a new profile.
I cannot use wildcard because I have push notifications and the share extension will not allow it anyways

Ok so, it turns out you have to create a whole new app id that goes with your app group, add the same app group to it as your main target, then create a provisioning profile for it like it is its own app. Now I am able to publish like its two completely different apps, which is kinda is, just a bit convoluted and the docs don't really mention this.

Related

Xcode does not automatically create app id on developer portal

As indicated in the title, Xcode is not being able to automatically create app Id and provisioning profile for an app i’m developing. I have checked the “Automatically manage signing” option but on the developer portal i can’t see any app id or provisioning profile matching the provided bundle identifier.
The problem arises only if I select, in the “team” selection, my developer account . For example, by using my enterprise account, the “waiting to repair” message is shown in Xcode and i can see the new app id created in the enterprise account portal.
If I change the bundle identifier and I select again my developer account, nothing happens, no errors and no warnings. I’m able to install the application on a device and all seems to be good. However, in my developer portal I still do not see the app id and provisioning profile so i can’t send the application to iTunes connect in order to submit to the Apple store.
Moreover, trying with other apps, all is ok even using my developer account.
I searched on line but i can’t be able to find a similar problem, are there any particular settings that are preventing the automatic Xcode app id creation to work for my app?
EDIT
it seems it’s not a problem related to the particular app. In fact I tried to create a new application fromo scratch and i have the same problem. I still do not have the problem on old apps (already uploaded on itunes connect) but i have the problem on all the newly created apps. Is that a problem with my developer certificate?
EDIT 2
I noticed that for all the newly created applications the App ID is set to: " * " (see image below). In my old apps the App ID and iOS Team Provisioning Profile are not equals to " * ". I have also deleted the wildcard id from my developer portal but the problem still remain.
I had a similar problem and i solved with a workaround. I have enabled push notifications in the "capabilities" tab (i.e, adding them to the entitlements), in this way the app id and provisioning profile have been correctly generated on the developer portal. Later, I have disabled push notifications (not needed in my project).
It's only a workaround, hope it helps
Somewhat related: I played around with Apples provisioning profiles in a desperate attempt of trying to wrap my head around their signing nightmare. In the process I deleted all the app ids from apple.developer that Xcode had automatically generated.
Afterwards I couldn't get Xcode to regenerate the app ids and I didn't wanted to manually create them, so what I had to do was to delete the automatically generated provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/.

"None of your accounts are a member of XXXXX" trying to set an app group

I've developed an app for a customer who has their own Apple account and profiles etc.
They have given me their development profiles and dev keychain certificate and want me to deliver the app to them signed with their dev profiles which they will then replace with app store distribution profiles.
I'm having a problem adding an app group to the capabilities. When I click on the + button to add an app group I get the following error:
This is the signing settings. When their developer provisioning profile was imported as the signing profile XCode set the Team to "Unknown Name (XXXXX)" so it must have pulled that team name from the profile.
In XCode's accounts I only have my own Apple IDs added, I don't have their Apple ID added (its not possible to without knowing their password though?, something I won't get). I presume this might be why I am getting that error code?
Is there anyway of adding the group id to the project without having to add their Apple ID to XCode's account section?
They have given me their development profiles and dev keychain certificate and want me to deliver the app to them signed with their dev profiles which they will then replace with app store distribution profiles
That whole approach is mistaken (as you now know). They have two choices:
You can just develop the app under your own banner, making all your own profiles as needed, and they can make all the necessary substitutions and other changes at their end when they have the code. Or:
They must make you formally a member of their team (e.g. an Admin), at least while you're working on the app.

How to remove iOS Team Provisioning Profile / AppID on Xcode?

I am new to Mac and I have to use it for developing Ionic hybrid app for iOS. I am using Mac 10.11 with Xcode 7.
Now, I have get my app ready and want to deploy it to app store. But I am having trouble with the App ID. In my Xcode, when I go to account, I can see Team Name list with 2 items. One is my name with Agent for iOS and Mac. The other one is my name (Personal Team) with Free for iOS and Mac.
The problem is in the Personal Team item, I have the provisioning profiles with the app ID I want to use for deploy into app store. Since it is already in here, I can’t create that app ID again in my developer account. I tried but I can’t find a way to remove it.
So, how can I remove that app ID / Provisioning Profile so that I can use it in my developer account?
Thank you.
The only way I manage to do that is to contact the customer support (Apple Developer Program Support), after few days and few back and forth they finally deleted the bundle id from my Personal Team and I was able to add it to my Developer Program (Agent) profile. I know this is not ideal but at least if you really want to use the same Bundle ID it worked for me.
The issue is not with App ID but Bundle ID that is unique in the AppStore.
Currently, you can't 'restore' Bundle ID in any way.
You can create another App ID with the same Name but different Bundle ID.
Solution: go to your other Developer Program, create new App, choose slight different Bundle ID and you are good to go.
Reference:
Apple Documentation
You can select your App ID in the Developer portal under iOS App IDs to edit and delete.
If you're referring to your iTunes Connect listing, you cannot remove your application listing. You can however use a different Bundle ID with the same App ID. Which, in turn, would solve your problem.
As for Provisioning profiles, you can edit and remove them in the Provisioning Portal.
#Alexandros Trepeklis suggested contacting Apple Developer Program Support; they may be able to help you remove the original app listing.
And as #Krodak mentioned, you should read 's documentation on the subject.
You can delete an App ID and Bundle ID on your own through the developer portal if you have not yet posted the app to iTunes Connect. The TL;DR is that you need to add a capability to your app to force Xcode to generate an explicit listing for your app on the portal. Once the listing is there, you can remove it (and all associated provisioning profiles and whatnots).
Step by step:
Add a capability, say push notifications, to your app.
Now log in to the developer portal. Go to Account > Certificates, IDs, & Profiles > App IDs. You should see the App ID prefixed with "XC"
Click on the App ID you want to delete and then click the Edit button.
Click Delete towards the bottom of the listing.
Confirm the delete. This should free up the App ID and Bundle ID for use with another team.

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.

Do i need a separate Distribution for each Apple AppStore submission?

I'm so confused -
after an entire day's struggle, i finally figured out how to submit my app to Apple via archiving & distributing from xcode.
... that was my free version
now i made my code changes, and on my pList file, i changed the Bundle Identifier to com.blah.mygame.pro instead of com.blah.mygame.lite
i also changed the Bundle name to be My Game Pro instead of My Game Lite
but now i'm confused - when i click on the project in Xcode, and i hit "Target" instead of "Project", i can't find my release/distribution profile! (my develop/debug profile) is still there.
if i were to click Project instead of Targets then i actually do see my previous distribution profile.
however, in my develloper portal, i had actually set my distribution profile to be linked up with the "com.blah.mygame.lite" identifier. was i not supposed to do this???
weirdly enough, when i made my distrubution profile earlier today, i say something like "mygame * -" or something that i coulda linked it to. but i just chose com.blah.mygame.lite without thinking
are you supposed to have multiple distribution profiles? one for every app? what i just want a lite and pro version?
** edit:
bonus points for this:
if i only needed 1 provisioning profile, (and since i messed up naming my previous provisioning profiles)... how do i rename all my distribution profiles without it interfering/messing up with my apps?? it's already submitted and awaiting approval
* EDIT # 2:
okay, i got both apps submitted with 2 separate distribution profiles.
however, is there any way that i can rename a distribution profiles while the app being submitted is still using it??
i had mistakenly named it "My Company Distribution Profile" when i should have named it "Distribution Profile for My Game Pro Version"
You have two options for fixing it:
Use a AppId like. com.blah.mygame.* . You can replace the * with any number of strings and use it for creating different application.
I won't recommend this approach, because the issue with this is you won’t be able to use push services or in-app purchases. You might not plan to use these services now, but if you change your mind, you won’t be able to change your app ID without creating a new app.
Create different AppId for different Apps. It'll be a good approach
Sounds like you're using a single AppID for both of your apps. You can only use one provisioning profile for multiple apps only if the AppID bound to that profile has a wildcard (e.g. "com.sample.*").
quoted from the iOS Provisioning Portal:
The Bundle Identifier portion of an App ID can be substituted with a
wild-card character (asterisk '*') so that a single App ID may be used
to build and install multiple applications. If the wild-card character
is not used, the Bundle Identifier portion of your App ID must be
input as your CF Bundle ID in Xcode to allow the application to
install on your device. The Bundle Seed ID portion of your App ID does
not need to be input into Xcode. Wild-card App IDs cannot be used with
the Push Notifications or for In-App Purchase.
I hope you have created an AppId with this bundle identifier com.blah.mygame.lite and created a distribution profile linked with this AppId. By doing like that, you can run or archive your apps only if it is having the same AppId like this com.blah.mygame.lite. If you want to create an AppId to run all apps, then you need a Wildcard AppId like this com.* . And If you think you need to run the app with AppId com.blah.mygame.pro then you need to create another appId like that and associate that appId with another distribution profile or modify the old one and download and install it and use.
There is no need of distribution profile for every app....one is enough for every time but
your bundle identifier is same as you given in your distribution provisioning profile when
you create it first time....

Resources