iOS Enterprise provisioning profile distribution - ios

I am signing a dylib in my application with an Enterprise certificate and noticed that on some devices I get the following error:
0xe8008015: A valid provisioning profile for this executable was not found.
The strange thing is on the devices where this works I never manually installed a provisioning profile. I think when I used XCode it got automated installed somehow.
Manually installing the 'Distribution in house' profile associated with the cert on these devices fixed the problem, but I'm trying to understand how to deploy my software without requiring this extra step.
What is the standard way of pushing out the enterprise provisioning profile?

Does the mentioned Enterprise certificate appear under Settings ➞ Profiles on the iOS devices that experience the problem?
Is said Enterprise certificate available as a valid (signable) certificate on the Xcode installation where you package the final .ipa?
Do you use the same certificate for signing the dylibs and the app?
The standard way of pushing an Enterprise certificate to devices is to include it when packaging/archiving an app. Xcode should do this automatically - at least for the certificate used to sign the app itself.
You can extract an .ipa (rename to .zip) and look for a file called "embedded.mobileprovision" in the .app package.

Related

Issue with Provisioning profiles for IOS when using Archive for Publishing on VS for Mac

I am trying to Publish my first App for IOS Distribution, on my Macbook Air using VS Studio for Mac V17.4.2 and XCode V14.2.
I have created and downloaded the certificates and provisioning profiles.
When I try the Archive for Publish on VS I get an error:
Could not find any provisioning profiles for project on IOS
When I look at the project Bundle Signing settings I get following screen:
The bundle identfier eg com.companyname.project is the same in project properties and provisioning profile.
The signing certificates for IOS Distribution are loaded into Xcode.
Can anyone please indicate to me as how to resolve the above error.
One thing I am not sure is where VS is looking for the provisioning profile file as it is currently in my downloads folder and I have clicked on.
Thanks
Have tried looking online but could not find any solution.

"A valid provisioning profile for this executable was not found" for Xamarin.Forms iOS RELEASE build to an iPhone Device

So my certificates recently expired, and I had to create new ones. I created both an Apple Development and an Apple Distribution certificate from Visual Studio and they both show up as valid and/or in keychain in Apple Developer, Visual Studio, and Xcode.
I of course updated the app's development and distribution profiles to use these new certificates and made sure to re-download them to my workstation.
The iOS component of the (Xamarin.Forms) app can deploy the Debug build to both a simulator and a real device. It can also deploy the Release build on simulators. Archiving a build for publishing also worked fine. It uploaded on TestFlight and was successfully installed by a tester.
The issue is only with deploying a Release build to my test device. The Release build has been deployed successfully to this same device before, so I am very unclear as to what has happened.
The bundle signing identity and provisioning profile were set to automatic as recommended. To make sure the bundle was using the correct profile, I set them instead to the expected/correct distribution identity and profile, and the deployment still fails.
The app did use to have an iOS Distribution certificate, but that seems to have been replaced by Apple Distribution as far as I can tell. I see that iOS * certificates can still be created on Apple Developer, but they're not listed as options when creating certificates from Xcode or Visual Studio for Mac. I did try pointing the provisioning profile to an iOS Distribution certificate created online, and it still did not work.
I've also restarted Visual Studio, Xcode, the iPhone device, and my Mac workstation to no avail.
Is there something else I could be missing? I am new to app development and am very unclear as to what else "invalid provisioning profile" could mean.
Any additional help/tips/ideas would be appreciated!
Error message when deploying:
ApplicationVerificationFailed: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.FSRtzC/extracted/{XAMARIN_IOS_PROJECT_NAME}.app : 0xe8008015 (A valid provisioning profile for this executable was not found.)
error MT1006: Could not install the application '{PATH TO XAMARIN_IOS_PROJECT}/bin/iPhone/Release/{XAMARIN_IOS_PROJECT_NAME}.app' on the device '{IPHONE DEVICE NAME} iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8008015.
Application could not be uploaded to the device.
Provisioning Profile Info:
Status: Active
Type: App Store
Enabled Capabilities:
Associated Domains, Game Center, In-App Purchase, Push Notifications
Software Versions:
Visual Studio Community 2019 for Mac
Version 8.6.5 (build 23)
Apple Developer Tools
Xcode 11.5 (16139)
Build 11E608c
Xamarin.Mac
Version: 6.18.2.1 (Visual Studio Community)
Xamarin.iOS
Version: 13.18.2.1 (Visual Studio Community)
iPhone 7 Plus running iOS 13.5.1
I simply had to use a Distribution Profile of type Ad Hoc. The Distribution Profile the app was using was of type App Store as it was what was needed to create a build archive for Test Flight.
I do wish the error message had been more informative and less generic. Multiple types of issues seem to result in the same error message.
Useful References:
This provides useful info about using the Device Log and debugging Entitlements that helped me start getting somewhere. My custom Entitlements and enabled Capabilities for the Bundle Identifier matched, so I couldn't figure out what else to try initially. The Device Log gave me no info, but taking out the Entitlements file worked, and it went from there.
This reassured me that my one custom entitlement that's different between Debug and Release mode, APS Environment, is using the correct value of "production" even though it was causing the installation to fail with the (then App Store) Distribution Profile.
This provides detailed explanation on each Provisioning Profile Type.

No installed provisioning profiles match the installed iOS signing identities

I am attempting to launch my test app to a real iOS device through iOS xamarin. However, upon building or deploying, the error notes:
No installed provisioning profiles match the installed iOS signing identities
I have followed every step concerning creating certificates for the app, partitioning devices, creating an apple developer account and linking to Xcode, yet this error persists...
update:
I revoked the certificate an recreated the provisioning file, now downloaded through Xcode. However, Xamarin can now build, but not deploy out to my iPhone as there is no Run option:
How can this be alleviated?

Problems with installing AppStore distribution build on device with AdHoc profile

I have problem with installing Appstore distribution build/release into my iphone.
After reading the post Testing App Store "Distribution" version and How to test the final distribution build before submitting it for review to the iPhone app store?
I know that it is possible to install Appstore distribution build into iphone/device after installing AdHoc provisioning profile (see the posts I read). However, I couldn't do it and i dont know why.
Here is a list of what I have done:
Created AppID from developer portal.
Added the device.
Created certificate.
Created Adhoc provisioning profile with the device.
Created AppStore provisioning profile with the same certificate.
Installed both profiles and certificate into build machine.
Build the AdHoc release.
Installed the Adhoc profile to device.
Test the Adhoc build. The app works on device.
Remove the app from device.
Build the AppStore release with AppStore profile.
Install the app to device and error.
Error message: "Unable to Download Application".
If I drag and drop it from xcode, it will give me the following errors: The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
0xE8008016
Any idea how i can resolve it?
Thank you. B.
If you created build with distribution certificate ( AppStore release ) then you can not install it on device from any tools. You should upload this build to appstore and install if from appstore( after it approved from apple)

Re-signing xcarchive file, but IPA does not install

A third-party-company has sent us an xcarchive file so that we can export their application as an IPA for our client. They've done this because we control our client's provisioning profiles and certificates. They don't have our certificates and keys and so cannot build a distribution version of the app.
I opened the xcarchive in Organizer and attempted to export an ad-hoc IPA using the client's Enterprise distribution provisioning profile. However, when I attempt to install the app on my iPad, the installation fails.
I've verified that I'm using the correct provisioning profile, and I checked to make sure that I have the correct certificate for the profile as well as the private key. I've never signed an app with this provisioning profile before, but I've used the certificate and key for other profiles.
From what I understand, re-signing an archive should be possible. I'm not sure why this isn't working, though. Does the third-party company need to do anything specific when they export the xcarchive file - do they need to build with a specific certificate or provisioning profile?
Any insight on this would be helpful. Thanks!
I was able to re-sign an ipa following the instructions found at this link: http://sholtz9421.wordpress.com/2012/06/08/digitally-resigning-ipa/. However, I used Xcode to edit the plist, not emacs.

Resources