iOS device won't allow to open the app with distribution certificate not expired nor revoked - xcode

Our enterprise app was distributed through Fabric Crashlytics Beta but after a year the app won't open from the device. When you tap the icon it will just close. It can't be download also.
The distribution certificate was not expired nor revoked.
And releasing a build with a new generated certificate fixed the issue but the cause is still unknown.

The certificate is valid for 3 years, but the provisioning profile you used to build the app with is valid for 1 year at most. You can push a new provisioning profile to the devices without having to re-build the app, but without a non-expired provisioning profile that is valid for the app's bundle ID and the certificate used to sign it, the app will refuse to run.
Long story short, if you are doing enterprise distributions, you will need to push out a provisioning profile (either through mobile device management [MDM] or by building the app again with a new provisioning profile [the profile is bundled with the ipa when you package the app]) at least once a year. Then once every 3 years, you will need to get a new certificate, generate a new profile for that certificate, and build and deploy a new binary that has been signed with the new cert.

Related

Re-signing an Apple Developer Distribution cert signed app with an Apple Enterprise Developer Distribution cert

We have been re-signing an app developed and signed with a sub-contractor’s Apple Enterprise Developer Distribution certificate, with our Apple Enterprise Developer Distribution certificate for MDM distribution through Intune. The sub-contractor says due to a change in Apple policy, they now need to sign the app with an Apple Developer Distribution certificate. During a test, we could re-sign the .ipa file with our Apple Enterprise Developer Distribution certificate. However, when we attempt to install the app on a managed device, we get an error that says, “Unable to install [app name] This app cannot be installed because its integrity could not be verified.”
When the sub-contractor was signing with an Apple Enterprise Developer Distribution certificate, our bundle ID could match theirs. In the test of the new process, were unable to use a bundle ID that matches the one the sub-contractor is using. If we try to use the same bundle ID, we get an error saying “An App ID with identifier [bundle ID] is not available. Please use another string.” Would not using the same bundle ID be causing the integrity verification issue?

Regenerating iOS certificate for a free account

I know that, you can now run your iOS app on any device with the advent of Xcode 7 and above, without having a Paid Developer Membership account. Unfortunately my free account's certificate got revoked and hence while running any application on my device I get this error -
A valid provisioning profile for this executable was not found.
This is quite obvious as any provisioning profile containing my free certificate will now be invalid.
My question is how do i solve this issue and still run my app on a device without buying a Paid membership?
P.S - As it is a free account, I am not able to see Certificates, Provisioning Profile button on my apple developer homepage. (I guess you already know that)

What happens to Mac applications if the developer's distribution certificate expires?

My "Mac App Distribution" certificate will expire in a couple of weeks. When this happens, will my applications cease to function properly?
This has been asked a lot, except in my situation, my applications are not distributed through the Mac App Store.
Users can still download, install, and run versions of your Mac apps that were signed with your certificate before it expired. However, you’ll need new Developer ID certs to sign updates and create new apps.
Developer ID signatures carry cryptographic timestamps by default.
Signatures with cryptographic timestamps are validated against the
signing time, and signatures made with expired (at signing time)
certificates are invalid.
OS X Code Signing In Depth
Replacing Expired Certificates

Test application on iPod with Xcode?

How can I put my incomplete application on my iPod before I publish it on the appstore? So I want to test it on my iPod.
This requires a provisioning profile and developer identity. These things are available via the provisioning portal and requires a paid developer program membership.
You must generate an identity (by means of a certificate, and signing request) with keychain, and use the provisioning portal to upload the CSR and get a signed certificate matched to the identity. With this identity downloaded and installed, you'll use it to sign your binaries.
Applications have a unique bundle identifier. Using the provisioning portal, you must create a development provisioning profile associated with your device ID(s). Download and install the provisioning portal, and you should be set to build and run on your device.
The provisioning portal has concise steps to walk you through this process..
developer.apple.com/ios/manage/overview/index.action
You have to have a provisioning profile and if you do you have to do some things in the account which you then put in xcode and transport it to the iPhone

Do I need certificates for each app?

I have read about it so much and i couldn't find a specific direct answer.
Each app must have its provisioning for development and distribution. The provisioning is using the certificates I already have.
Do I need to create a new certificate(dev/distribute) for each new app, and connect the provisioning to that specific certificate?
Do I need to create the certificates for dev/distribution and connect them to the provisioning dev/distribution?
I have read about it here, and it wasn't clear to me: iOS Developer Library: Creating Your Signing Certificates
As a developer, you create a single Development certificate. You can create many development profiles (one dev profile per app) that use this certificate.
The same principle applies to Distribution certificates (single certificate, multiple profiles), however you only have one Distribution certificate per iOS Development account (not per developer).

Resources