I encountered this issue and noticed this in the log:
-[MIBundle pluginKitBundlesSkippingPlatformValidation:withError:]: Ignoring plugin at (path to my app extension) because it doesn't work on this OS version
Updating the Deployment Target version in Build Settings for my extension fixed this.
Very strangely, renaming the root folder of my project to something else did the trick for me. Probably some caching of xcode somewhere with the existing name of the folder was the reason.
I had the same issue when I was working on a share extension. None of the suggested solutions here worked for me.
I cared for debugging and logging. I wasn't able to debug and/or log. I thought at first that the extension wasn't working, but ran a test and verified it was actually executing but for some reason I wasn't able to debug or log.
The best I was able to come up with is to manually attach a debugger, add breakpoints where I wanted to log, edited the breakpoints and added actions to log and continue after evaluation. The following is the steps to do so:
Set the active scheme to the extension you want (from the top bar, or from Product/Scheme/Choose-Your-Scheme
Debug/Attach to Process by ID or Name.... Then type the name of the extension or its bundle id.
Add breakpoints where you wanted to add logs. Edit the breakpoint. Add action (Log Message) and enter the log you want. Check Automatically continue after evaluating the actions.
I ran into the same issue while testing a Cordova app on iOS 13 via XCode 11 Beta 4.
Building via the legacy system solved it (File > Workspace Settings... > Build System > Legacy Build System).
In Xcode 11 beta 5, I had the same error. I couldn't install the app. I even uploaded the app to App Store Connect, then tried to install with TestFlight, but the app failed to install after being downloaded, very weird. No error from App Store Connect. I found the issue by running the app with the Simulator. After running the app on the Simulator, Xcode gave me a detailed error message. In my case, I had multiple frameworks with the same Bundle IDs.
I had this same exact error, but none of the above solutions worked for me.
In my case, I am using a free Apple developer account and got this error after trying to install a 4th app. The install limit for free accounts is 3. I deleted one of the 3 apps I already had and the installation worked as expected.
In my case I was using Xcode 11 GM seed with iOS 13 beta, and I had code signing to manual (distribution) since the "Automatic" was failing.
I had my team agent allow my user "Admin" role, went into the Apple Developer's portal and edited the "invalid" provisioning profiles to check the checkbox explicitly mentioning "Xcode 11".
After I downloaded the profile my team agent put back my role to "member" and all went well.
For me the issue was related to Alamofire library that was downloaded with Carthage. Ensure to select "Do not embed" and let Carthage to copy the Library.
This is a code signing issue. Xcode 11 requires you to add the "Apple Development" certificate to your development provisioning profile that they automatically added to your certificates and profiles. Add that certificate to your profile, redownload your development profile and vwala.
in the top of the Xcode window, next to run/stop click on your app icon, and select manage schemes. Make sure run and test uses the build configuration "Debug". Xcode changed these to "release". Do not ask me why! Using Xcode v 11 (11a420a)
Could not locate installed application Install claimed to have
succeeded, but application could not be found on device. bundleId =
(MY_BUNDLE_ID)" but with MY_BUNDLE_ID instead "null
I got this error after Xcode11 update
Solution:
My Project and ProjectTests had different developments team.
Project had Owner Team, ProjectTests had Personal Team
And I had't opportunity to change team to owner's by Xcode interface. So I make it in build settings - just entered my team (automate manage certificates enabled too).
Yes, its look an error in Xcode UI (red label), but was able to install on real devices.
I faced a similar issue, tried all the above solutions(eg.changing to legacy, clean and build, etc.) ... but ultimately the solution was with the external framework I used, I solved this by changing the option to Embed & Sign from Embed without Signing ..... Not sure this might be Xcode issue
Fixed mine. Was caused by Alamofire framework (via Carthage) not being copied during build phase (used to be in Embedded libraries section in Xcode before, but it's gone now and choosing embedding type didn't work).
The script body is: /usr/local/bin/carthage copy-frameworks
The paths are $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework for input files and $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Alamofire.framework for output ones.
In my case the issue was found using the console log
going through the logs I cloud see an error from the installd process saying there was something wrong with my plist.info file.
It did not say what exactly
But fixing my plist file solved it.
In my case I had 3 plist files (iPhone, watch, and watch extension), the problem was my watch plist.info file (I added the NSLocationAlwaysUsageDescription accidentally, removing this solved the problem).
For me it was that I had a build phase script that was intended to strip simulator architectures from the app (for when it's published to the App Store).
I'd read a suggestion that building for the simulator would give better error details and found that the script was running on every build so I switched it to 'run script only when installing' and that seems to have resolved the issue for me.
I was seeing this error with an "iPhone Distribution" provisioning profile / signing certificate selected - it cleared up when I switched to "iPhone Developer"
I also had this problem. If anyone couldn't solve it with another answer and uses a framework in his app, my solution:
I used a framework (tesseract), but didn't sign it, so I couldn't use the app, but Xcode didnt recognize the problem. To solve this, go to your project file, to general and change the "embed" option for your frameworks to embed&sign.
Go to Project General -> Frameworks, Libraries, and Embedded Content and change framework as Do Not Embed (in my case Alamofire.framework was the problem)
Go to Build Phases, select +New Run Scrip Phase, insert /usr/local/bin/carthage copy-frameworksfor the script shell, and for the Input files add $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
Solution #101 - Old instance needed deleted from device
Encountered this issue when running on my iOS 13 device, using Xcode 11.1, Mac OS recently updated to Catalina and expected it to have something to do with this.....but no.
Solution was much simpler....
I deleted a very old instance of the app from within the device, (long hold, press the x of course). Re-spun the build from XC and all worked fine!
Looks like there's various correct answers to this one, mine was this and may it help someone else.
I was with facing this problem (that appears from nowhere) and maybe is some issue with the Dev/Production certificate. I have a Manual config on "signing & Capabilities" so when I switch to Automatic just fix the problem.
(sorry for my bad english)
I had this happen to me just recently when I updated to Xcode 11; if you are testing on a device, go to "Build Settings", then change everything to "iOS Developer" under "Code Signing Identity". This SHOULD fix the issue. Then once you're ready to launch, make sure you have iOS Distribution set up.
It caused on my project because of Siri Extension. In "Build Phases" "Embed App Extension" remove xxxSiriExtension.appex build and add it again. It solved on my project
I was getting a similar error when trying to install our app on device. We have recently switched teams for the app for various reasons, and apparently, some identifiers had not been changed.
If this is the case for you, go to Apple Developer portal and find your team identifiers. They look something like this. NXD2KNAXM.
Open your yourproject.xcodeproj/project.pbxproj file and simply search-replace the old identifier with the new identifier.
The approach is really ghetto, but it worked for me.
I faced the same issue and my code was not having any of the issues mentioned in other answers (frameworks using same bundle identifiers, legacy system etc).
My solution was to install the app first as side load, and then running the app in normal way (Cmd+R).
First, make an IPA of your project (there are many ways to do this, I made it by compressing folder named Payload having app file. You may choose other ways, all you need is an IPA file).
Next, open devices and simulators (Cmd+Shift+2) in Xcode.
Now click on the small plus button (+) in the INSTALLED APPS section, and you would be asked to select the IPA. Select your IPA, and it will be installed on the device.
Now that an application of given bundle identifier is existing on the device, your run command would work as expected.
Simply hit Cmd+R, and your project would run on the device.
This has been addressed in Xcode 11.2. With Xcode 11.2, you should now get an error that indicates that the app failed to install rather than an error that indicates that it installed but failed to launch. The error should also contain some details as to why the install failed. If the details are insufficient, I suggest targeting a simulator device instead of a real device as that should produce a higher fidelity error.
This happens when you are trying to run App on device using Provisioning Profiles for App Store. Make sure you are running using Development or Adhoc Profiles.
Another reason for this could , you could running some architecture stripping script for IPA generation. Check if this is throwing any errors.
tl;dr You can NOT build from Xcode to your device with a App Store Distribution certificate. You can only install apps signed by Apple from TestFlight or App Store.
The reason is because that app built with distribution certificates can be installed on any device and that's a big no no for Apple.
I ran into this issue when I was purposely trying to test my release process from Xcode. I wanted to see if the provisioning profiles of my app extensions were having the correct entitlements, but turns out that's impossible from an architectural perspective.
What happens when you download an app from app store?
You just install it. No prompts to trust the developer team.
What happens when you install an app from Xcode (with your development or Enterprise Provisioning profile) or if you download it from your Enterprise Distribution Service (e.g. AppCenter) or some other service for delivering to Enterprise user?
You get a prompt that the developer team isn't trusted and you need to manually trust it:
So Apps signed with App store distribution certs don't prompt users with that message, hence Apple does NOT want to allow that ipa to be freely installed on every device and hack users information!