Questions about iOS Push - ios

I'm wondering two questions about iOS Push notifications :
I'm managing in-house apps that I send to lot of people. Is it possible to enable push notifications without a fixed app id ? Actually, I have an app id for all my apps (which looks like com.company.*) in order to not create an id for each app.
My aim is to make my in-house apps able to receive push notifications :)
Can we use a generated iOS SSL certificate for other use or is it created specifically for iOS Push ?
Thanks a lot !

Wildcard App ID is not applicable for Game Center, Apple Push Notification Service (APNS), In-App Purchase (IAP), Data Protection, and iCloud.
Conclusion: Explicit App ID has to be used.
From Apple's Provisioning Portal documentation:
An App ID is the combination of a unique ten character string called
the "Bundle Seed ID" and a traditional CF Bundle ID (or Bundle
Identifier). The Bundle Seed ID portion of your App ID can be utilized
to share keychain access between multiple applications you build with
a single App ID. In addition, it can be incorporated into any external
hardware accessories you wish to pair your iOS application with.
Registration of your App ID is required to utilize the Apple Push
Notification service (APNs) and to register an application to
incorporate In App Purchases.
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 Apple Push Notification service or for In App Purchase.
Reference: https://developer.apple.com/library/ios/#documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html

Related

Maintain same Apple App Prefix and Bundle Identifier for B2B and AppStore apps?

We have an existing AppStore app and we also want to create a version of the app that our clients can distribute through their MDMs without re-signing it. The main reason they want to use an MDM is so they can control when they upgrade to new versions of our app irregardless of their App Store upgrades.
We've successfully done that using a second Apple Enterprise account but that app has a different App Prefix and Bundle Identifier and so the deeplinks we've configured through our Branch.io no longer work because we have to to specify the App Prefix and Bundle Identifier in the Branch configuration. The Branch configuration allows multiple Bundle Identifiers but only one App Prefix.
Ideally, we can have one deeplink for both the App Store and MDM versions of the app.
If we join the Apple B2B program, can we:
Give them an app through the B2B program with the same App Prefix as the App Store and signed as an App Store app
That they can use with their MDM without them having to re-sign it
That they can choose to update whenever they want (or at least on a different schedule than App Store)
And it will have the same Apple App Prefix and Bundle Identifier?
The bundle id is the app. You cannot have the same bundle id for an App Store app and a custom app, as then you would have two apps with the same bundle id.
Custom B2B apps are still distributed through App Store Connect: an app is either a custom app or an App Store app. It can't be both at the same time.
All of the apps you publish under a particular developer program membership have the same app prefix.
So, you can publish two different versions of your app, one public and one custom, with different bundle ids, but they will have the same app prefix.
The only problem you would have is if a user had both the public and private apps on their device; which one is launched to handle the deep link isn't defined, it presumably your client would use their MDM to manage this.

How to submit an iOS app to the App Store without changing the Bundle Identifier

I was developing an iOS app for a few months and now my client wants to publish the app to his developer account. In the development process we were using Testflight to test it and I've put it on our developer account.
The situation right now look like this: we were using Firebase and Push notifications so if I change the bundle identifier for client submission it will not work properly.
What should I do to upload an app with the same bundle identifier from another developer account? Should I delete App ID from our account and then try to make certificate on the client account?
The answer is NO.
You cannot change the bundle ID. If you try to delete the bundle id from developer portal it will throw an error saying that the bundle id is in use.
If you try to delete the app from itunesconnect, there is no option to delete (yes! its true).
There are 2 options here:
1) Change the bundle id of the app and re-register and upload a new build to clients account, then you have to change the push notification and firebase configuration.
2) Transfer the app: In this you have to make the app live from your account and then transfer it to your client's account. Yes you have to make the app live to transfer the app, you cannot transfer the app while the status is preparing to submit. Then you can keep the bundle id same. More details here
Hope this helps.
I as knew we can transfer the app from one account to another account, please check the below link...
https://support.appmachine.com/hc/en-us/articles/360000012284-Transfer-your-app-to-another-iOS-Developer-Account

Can 2 same bundle ID cause any conflict?

I read from Cocoa Core Competencies
that
An App ID is a two-part string used to identify one or more apps from
a single development team. The string consists of a Team ID and a
bundle ID search string, with a period (.) separating the two parts.
However it also says that,
The bundle ID is a unique identifier that identifies a single app and
cannot be used by other teams.
I see that we can't register an App ID in the Developer account portal with same bundle ID of an app that is on the appstore.
An App ID with Identifier 'com.example.myapp' is not available. Please enter a different string.
So I don't know if 2 apps from 2 developers can have same bundle ID (like com.example.MyApp), and if this causes any conflicts?
Can these 2 apps be installed on the device?
Can these 2 apps be allowed on the app store?
How does Push Notification work with these 2 apps ?
I see that many services like Fabric Crashlytics, Urban Airship, Google App Invites, ... depends on the Bundle ID to differentiate among apps.
Can these 2 apps be installed on the device?
No, it won't. It will replace the existing app.
Can these 2 apps be allowed on the app store?
No, you cannot create Apps on App Store with same bundle ID.
How does Push Notification work with these 2 apps ?
Push Notifications will show for the app it is made for whose Push Certificates etc are made
Can these 2 apps be installed on the device?
No. If you tried to install another application with same bundle ID it will replace the existing one.
Can these 2 apps be allowed on the app store?
No. When you upload the application on an App store it will ask for unique bundle ID.
If you use same bundle identifier for two different application and try to run on device then previous application is replaced from Device and current application is installed on Device. if you want to run two different application then you can use wild card id.
for App store when you creating application in iTunes connect first it check with existing App ID(same with bundle identifier in Xcode) on app store if exits the you have to put different app id.

iOS app transfer - Bundle id not available

It's the first time I'm transferring an app, and now I want to release un update for the app I received.
I have some questions:
I tried to create the bundle id as the old one (com.example.app) but the developer center said it's not available. Should I use that one or another one?
If I use another bundle, will old users receive the update?
If I should use the original app bundle, how can I unlock it?
You definitely want to use the old one. If you use a different bundle ID (e.g., com.example.app2), then users will not receive an update as you expect: iTunes Connect and App Store treats them as separate apps.
My understanding is that you wouldn't "create" the new bundle ID either, it will already exist in Apple's systems. You should be able to use the Developer Center to create Development and/or Distribution provisioning profiles for the newly transferred App ID, then ensure that ID is in use in your Xcode project. When you're ready to distribute, archive the product (or use your build system to sign with the App Store Distribution profile), and then upload it to iTunes Connect using the login associated with the iTunes Connect account that received the incoming ID.
This is all contingent upon the iTunes Connect login and Developer Account login belonging to the same organization that received the transfer. For single developers, that's probably not an issue.

Getting warning while validating app from organizer in Xcode

I am having an app which is ready to upload on appStore.
I have successfully created my profiles and now trying to validate my app through xCode.
But As my apps are transferred from another developer account. It gives me error like shown in the below screenshot.
There is not Entitlement.plist file in my project anywhere.
This is the newer version of my app so I can't change the bundle Id also.
How can I solve this issue?
Please help me on this.
Seems like the AppId is different (the first part) in the current bundle, ideally it should get transferred to your developer account when the app is transferred. Check on that first and also ,
Make Sure you signing with the correct provision file from your developer account.
On the iTunes Connect developer guide says ,
To maintain a great user experience within the app, make sure the
recipient is informed about any special functionality such as keychain
details or push notifications. In this way, that functionality will be
maintained in the app for future updates. App IDs are transferred
automatically in the Provisioning Portal.
and also
After an app is transferred, its associated App ID is also transferred
to the recipient’s Member Center account. If the transferor’s App ID
was a wildcard App ID, it’s converted to an explicit App ID that
exactly matches the app’s bundle ID. Associated client SSL
certificates for push notifications aren’t transferred. If the app
uses Apple Push Notifications service (APNs), the recipient needs to
create a client SSL certificate using Member Center to reenable it.

Resources