Testflight complains about developer certificate being used to sign the app - ios

Suddenly I started getting this from Testflight when uploading a new build of an app:
This build is signed with a Developer certificate, it can only be installed by devices with the Developer feature enabled. We recommend signing with a distribution provisioning profile for best results.
And my users have problems installing the app. I've gone over the project settings again and again, but everything looks right.
I've set the team provisioning profile to be the provisioning profile for both debug and release, I've even changed to a different team, but still the same problem.
Am I looking in the wrong place here?

I just came across this exact same issue. It looks like TestFlight have added a new check and are flagging developer provisioning profiles when they didn't in the past. Take a read of this (posted yesterday):
Testflight article
I've just uploaded a build to test flight using my normal approach to signing (with a developer certificate), ignored the testflight message, and distributed to my test users. Seemed to work OK.

Related

Appcenter iOS install error "this app cannot be installed because its integrity could not be verified"

I see that this question has been asked many times but I see no solution that works for me so I'm hoping that providing more info might shed some light.
We use appcenter.ms to test iOS apps. Until our iOS certificate expired this method worked fine. We generated a new enterprise certificate and ad hoc provisioning profile for new releases of the iOS app. Which led to the first curiosity.
I see how to upload a certificate on appcenter.ms but not a provisioning profile. I thought there was an option to do this in the past but perhaps I am mistaken. However, the app is signed with a provisioning profile before upload, so perhaps this is not needed now.
Once the app is uploaded, it can't be installed. It remains grey and when you tap it, you get the "this app cannot be installed because its integrity could not be verified" error. Again, that the .ipa is created with an ad hoc certificate and profile in Xamarin (VS for Mac).
Also, I can't install the provisioning profile on a device from appcenter.ms. You basically get stuck in a loop where you seem to successfully install the profile but have to keep doing it because it never actually installs.
I hope this is enough info for some insight and thanks in advance for any feedback.
We were able to solve this by redoing and downloading development certs and via
And also downloading and double clicking the apple development certificate here
After that our keychain showed both as trusted and we could build to the iPhone again.
The issue can be the your device is simply not registered on the developer portal and/or that ad-hoc provisioning profiles have not been regenerated.
You need to register your device, regenerate a provisioning profile with this device in it and rebuild your app using this profile.
This can also happen because of
Developer ID Notary Service - Outage
which can be checked on https://developer.apple.com/system-status/
Notarization is well explained here:
Notarization gives users more confidence that the Developer ID-signed
software you distribute has been checked by Apple for malicious
components. Notarization is not App Review. The Apple notary service
is an automated system that scans your software for malicious content,
checks for code-signing issues, and returns the results to you
quickly. If there are no issues, the notary service generates a ticket
for you to staple to your software.
Work around fix:
Select your app.
Navigate to TextFlight tab
Create External Testing group
Add one tester
Add build which you want to download using TestFlight
Open TestFlight and download an app.
In my case this was caused by trying to include an entitlement for aps-environment "development" when using an Ad-Hoc provisioning profile. The value for this environment in Entitlements.plist must match what is hard coded into the provisioning profile file - if you open an Ad-Hoc profile in a text editor you will see it expects the "production" environment.
The possible solutions depending on your requirements are to either use the Development profile/certificate, or change the aps-environment to "production" to continue using an Ad-Hoc provisioning profile.
It can also happen if you have other incorrect entitlements - worth checking what entitlements are enabled under the Identifier in Apple Developer portal and removing unnecessary ones.
I had this issue because when building the app on xCode for distribution (Product->Archive then Distribute App), I chose automatic signing. After manually signing the app and choosing my own generated certificate and profile, everything worked again fine.
I removed the Entitlements file from the Addition Resources in iOS Bundle Signing and it worked.
I think the MSAL configuration was set to debug in entitlements.plist
I have also face this issue before but for me the reason was little different
First the build was enterprise one and the build was made on the earlier Xcode version on which the iOS version you are using on the device was not supported by the Xcode.
All I did was to update my Xcode and make a new build and shared the build. After that we were able to install that build over device Hope it works for you as well
This is how I solved for myself.
In you iPhone Settings > General > VPN & Device Management you should see your company name (if an app from it is installed), and if you click on it, you will see a button like "Verify" above the list of apps installed provided by the company. Just click on "Verify".

Missing Beta Entitlement iTunes Connect "error" - Xamarin Forms PCL

I have a problem, I have the same project in Xamarin on visual studio 2017.
When I deploy transmission certificates and load it all on itunes connect through Application Loader.
The problem is that, with one of the two applications (
I change the certificate every time I release an app or another.), I can not make the release for beta testers.
As you can see in the image below:
With the first App all goes well, but when the second load gives me the error that you see when you try to release it with testflight: Missing Beta Entitlement.
I looked online and I tried to put in info.plist file the following string:
<key>beta-reports-active</key> <true/>
But without success. Can anyone advise me how to solve? Thank you.
I uploaded to connect itunes version 1.13 but I get the same problem.
What I recommend here is to clean/clear your provisioning profile from Apple Developer Website.
Are you letting Xcode manage code signing identity ?
If so then it will create provisioning profile for you when you will be building for Release.
Indeed, it happens to me, it was a terrible mess in my configuration on Apple Developer.
I just removed everything, provisioning profile, create 1 Development and 1 Production certificate.
Then when you build for Release, Xcode will create provisioning profile for you, it starts with "XC".
Your issue is
likely a different provisioning profile from the Ad Hoc Distribution
Provisioning Profile you were probably using to sign TestFlight builds
TBH changing certificate evertytime you release an app or an other might also create a mess in Xcode configuration.
Helpful Post Here

Missing code sign certificate when trying to deploy app to new TestFlight

We've been developing an app based on Appcelerator Titanium the last couple of months and to deploy the app to our testers, we've used TestFlight. Now, Apple have shut down the "old" TestFlight and integrated it into ItunesConnect.
Now we want to deploy an update to our testers. So we created a new app within Itunes Connect with the same app bundle as the app bundle the provisioning profile we're building the app with are using. We build an IPA file which we try to deploy using Apples tool "Application Loader".
When we try to deploy the app, we get the following error:
ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle nu.kodfabriken.ourapp [Payload/OurApp.app]" is invalid. [Missing code-signing certificate.] For more information, visit the iOS Developer Portal"
Some Googling and trial-and-error told us to recreate our certificates and provisioning profiles. So we did, and got the same result. We don't know what to do here. Feels like we are stuck, with no clue what to do.
Worth noting is that when Apple switched to "new TestFlight" we didn't change anything at first. We used the very same provisioning profiles as we used with old TestFlight, which worked.
What are we doing wrong? Is this somehow related to how Titanium packages the apps (as far as I know, it's actually Xcode which creates the final build)?

"TestFlight Users In The Provisioning Profile" doesn't coincide with users in the AdHoc provisioning profile

I have created a totally new TestFlight account, when I add the build to the account I see 79 users under TestFlight Users In The Provisioning Profile. The problem is that I have built the application using an ADHoc provisioning profile that contains just 3 devices, so why I'm seeing the full list of devices that I've registered with the Apple Developer Portal and not just the device that are available in the Provisioning profile (as stated by the sentence TestFlight Users In The Provisioning Profile) ?
I occasionally run into this problem and get it working again after trying a few things.
Restart Xcode. (It's amazing how often that solves the problem.)
Make sure that you are bundling the correct provisioning profile with the app when archiving and exporting. If you're using Xcode 6, the process has been changed a bit and you might be including the wrong profile. (Look in your Build Settings and then also look at the details on each screen as you are exporting the archive.)
Try re-generating your provisioning profile.
Make sure you have refreshed your account in Xcode so that it has the latest provisioning profile.
If those don't work, try creating a new signing certificate and generating your profile with that.
Then refresh your account in Xcode again.
If that's still not working, try removing your account from Xcode completely, restarting Xcode, and adding your account again.
Those are some of the tricks I use to get things working again. Maybe there is a more definitive answer out there.
I have also face the same problem.
This is because the provisioning profile you create from apple developer account.
Have that 79 devices register with that apple developer account.
Please check that account once.

The app couldn't be installed because developer certificate is no longer valid

I have invited one TestFlight user from iTunes to test my app. The app is currently under review status. When that user tried to install the app, at the time of launching in iTunes, it throws the following error :
Could not install XXXX.
The app couldn't be installed because the developer's certificate is no longer valid. To resolve the issue, contact the developer.
Anyone can provide brief explanation what could be the reason for this and how it can be resolved.
I encountered this error because the build was signed using a provisioning profile whose certificate had been revoked.
When i checked in the developer center, the provisioning profile was marked as "Invalid".
I just clicked "Edit", selected the new developer certificate and regenerated the provisioning profile. When the new build was uploaded on testflight signed with the new provisioning profile, the error went away.
However, i do think Apple should be checking if the provisioning profile is still valid rather than developers finding it out after build is already approved by TestFlight and testers complain about this error.
It simply means that the developer account from which this app is uploaded is expired OR the development/distribution certificates of the app are expired or revoked. It can be resolved by activating the certificates of the app on apple's developer portal.
We have uploaded a version to apple-test flight and apple approved app for external testers. Now we're trying to download and is not working, got same message.
But if we run app from dev phone push notification works so P12 still valid. And distributed with old test flight process works.
We're trying to upload another version and see if works.
I try and try again until I read a comment on the apple forum:
This XC profile will be acceptable for upload, but is incompatible with Testflight
When you have to check provisioning profile, be sure any "XC" provisioning profile is selected (you can change it by clicking on the right arrow)
more details on the "goldstee" answer : https://forums.developer.apple.com/thread/18446
The error CLearly states what is wrong, your Certificate needs to be renewed, as your certificate may have expired or revoked, Try to create the Certificate again along with the provisioning profiles, and it will work fine
I had a slightly different issue which was a bit more puzzling as everything was 'valid'. I encountered the issue when I needed a production push certificate (which I already set 2-3 months before and tested!).
This is what I've done to resolve the issue:
Check xocde - both Code Signing and Provisioning Profile:
I had the correct settings (they matched what I was expecting and what I used for a previous build).
Check my apple developer account - it stated that my 'prod' profile was 'Active'
Check xcode -> prefrences -> provisioning profiles - I found the profile I could see in apple developer. It had the same expiry date too!
Wet back to my Apple Developer account, clicked on the profile, downloaded it and double clicked on it.
That fixed the problem for me.
If you encounter any issues, I suggest you check Parse guide (yes, I know they are shutting down but their doc is very good!). It covers more than just profiles but you can choose the step you are having an issue with.
In my case, I found everything is fine, both provisioning profile and certificates were valid.
What I did wrong is, I upload the build to TestFligth using Transporter app, which usually needs an .ipa for same but choose adHoc type instead of AppStore while exporting the binary in the organiser.
Which somehow allow the build to upload to TestFlight but didn't authorised to install on the user's device.
So make sure you're choosing the right option while exporting the build.

Resources