I have an ASP.NET MVC5 Application which I have moved from Microsoft Azure to AWS i.e. Redeployed from Microsoft to AWS. Can moving servers from Azure to AWS affect Firebase service in any way? My push notifications have stopped for my iOS client. Do I need to do something at Apple's end i.e. APNS etc.?
Found the Answer:
I was building a developer App with the developer Profile.
Needed to create an APNS certificate for developer builds.
Needed to upload the APNS to the firebase console.
Related
I've created an Azure DevOps pipeline for building a React Native mobile application for iOS. I have a service connection to Apple's App Store Connect and it uploads the build to TestFlight as expected. I am also passing Release Notes to the AppStoreRelease task and this requires FastLane credentials to get around the Two Factor Authentication.
I tried the approach of creating a fastlane session ID locally and putting that onto the service connection as per https://github.com/fastlane/fastlane/blob/master/spaceship/README.md#support-for-ci-machines. This approach works fine but the session times out and it has to be done again which isn't a sustainable approach.
I've seen documentation on using App Store Connect keys to authenticate (https://docs.fastlane.tools/app-store-connect-api/), but haven't seen any documentation on how to do this for Azure DevOps. Has anyone done this and can provide documentation or a point in the right direction.
In the official Firebase documentation it says that we need go to the Project settings and in Cloud Messaging Tab add APNs authentication key. However, when I go to the Cloud Messaging tab I see only Web Push Certificates, there is no possibility to upload APNs authentication key for IOS app there. How to upload this key to Firebase project?
I figured out what was wrong, I didn't have correct permission in Firebase console, once I got owner permission, I was able to see upload UI for APN key.
We build an iOS app using Apple Push Notification feature. We integrated everything the Apple docs told including provisioning profiles etc... A test in development mode worked fine with Apple tools. Same should be in near future with Google, but I´m talking here just about iOS implementation...
Our backend on Azure collects the registration ids from all iOS apps proper. I mean: We are storing the token retrieved from registration directly at Apple services.
Now we want to use Azure to send Push Notifications to all our apps. But I´m confused from reading the Microsoft documentation:
Must my mobile apps register to Apple or to Microsoft with corresponding SDK?
We don't use the MS SDK on app side. We just register at Apple. Can we send Push Notifications to our iOS apps (just simple broadcast to all registered apps) with Azure?
Our backend on Azure collects the registration ids from all iOS apps proper. I mean: We are storing the token retrieved from registration directly at Apple services.
Where are you storing them? You have to store/register the device tokens at your Azure Notification Hub.
Must my mobile apps register to Apple or to Microsoft with corresponding SDK?
Your app has to get a device token from APNS and then register this token at your Azure Notification Hub, so basically you have to do both.
Have a look at the documentation here. On a high level the whole process looks like this:
We don't use the MS SDK on app side.
You don't have to use the SDK, you can use the REST API.
With Parse, it has the ability to support up to 6 certs.
Following these instructions: https://mobile.awsblog.com/post/Tx3NE69QDHI7LJK/Migrating-from-Parse-Push-to-Amazon-SNS
It appears that it only supports 1 cert, would I have to create a new mobile hub project to support the other iOS .p12 certs?
Tim,
You are correct, the Mobile Hub project was designed for a single Applicaton ID and therefore each project supports a single Apple Push Certificate and/or Google GCM credentials. Creating a project for each certificate/app id is one approach because it also adds the proper permissions for each app user to create push endpoints (SNS Platform Endpoints). Platform Endpoints are what SNS associates with the device token to publish directly to those devices.
The only issue with multiple projects is that each project creates a new Cognito Identity Pool and therefore your apps will not be sharing the same identity pool, if that matters to you. For example you have USER A that logs into Facebook on APP A and then downloads APP B and logs in via the same Facebook account. In this case, this user will have the SAME identity across both apps.
The alternative option is to keep the one Mobile Hub project and create an SNS Platform Application for each Apple Push Certificate if these certificates each have a unique App Identifier (App ID).
If you keep the one Mobile Hub project and create multiple SNS Platform Applications for each certificate, you'll need to make the following changes:
Change the Bundle Identifier of the App to match the Bundle Identifier of the certificate you uploaded to SNS for your application. (eg. "com.yourdomain.yourappname"). Actually, you need to do this for both options.
You'll need to update the IAM roles (created by the Mobile Hub project) by giving each of your apps access to those Platform Applications. For example, each Mobile Hub project sample app has an Authenticated and an UNAuthenticated IAM Role tied to the Cognito Identity Pool for that project. When you enabled Push Notifications and uploaded the .p12, permissions were added to those roles allowing the app users to send their device tokens to SNS and create an SNS Platform Endpoint. Since you can only add one certificate per project, you'll need to update those IAM Roles with permissions to the additional Platform Applications you created in SNS.
I hope you have success with either option.
So im using AWS SNS to send push notifications to apple devices.
I've followed the following steps:
Created an app ID
Created a APNs Production iOS certificate
Created .p12 certificate to use in AWS SNS
Created AWS SNS Application
Config in iOS App (It works. I get deviceToken and creates an EndPoint to AWSSNS App)
When i publish a message to that EndPoint: Message publishe with request...
But the notification never appears on the device.
Then i check the endpoint and Enabled = false
Hope anyone can help. Thanks.
On Amazon SNS AWS Management Console, select Applications > your application > Actions > Configure events. Here you can set up an Amazon SNS topic for Delivery failure. You should take a look at the error published to the topic. It should give you why it is failing and possibly a solution for how to fix it.
See Amazon SNS Documentation for more details.
I'll answer my question:
I've solved it using Dev certificate when creating p12, then use it in AWS SNS website. Go to Xcode-> Use Dev Certificate & Dev Provisioning profile and now it works :)