Cannot run application on simulator after installi

2020-02-09 23:54发布

Yesterday, I've downloaded beta version of Xcode 11. After that, I've opened my project and tried to run with new Xcode. Unfortunately error has occurred with message:


Failed to install the requested application
Domain: NSPOSIXErrorDomain
Code: 22
Failure Reason: The application's CFBundleVersion is invalid.
Recovery Suggestion: Ensure your bundle contains a CFBundleVersion with a valid semantic version number.
--

I've closed beta version and tried to run again with latest stable version of Xcode (10.2.1), but the same error has occurred. I need to mention that before attempting to run a project with Xocde 11, it worked without any problems on Xcode 10. Nothing has been changed before and after running with beta Xcode.

What I've already tried:

  • I've removed Xcode 11 beta
  • I've cleaned my project and pulled it from latest branch
  • I've completely removed Xcode 10 from:
~/Library/Caches/com.apple.dt.Xcode
~/Library/Developer
~/Library/MobileDevice
~/Library/Preferences/com.apple.dt.Xcode.plist
/Library/Preferences/com.apple.dt.Xcode.plist
/System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.bom
/System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.plist
/System/Library/Receipts/com.apple.pkg.XcodeSystemResources.bom
/System/Library/Receipts/com.apple.pkg.XcodeSystemResources.plist
  • And then installed fresh stable version 10.2.1

I can run other projects which was not tested with Xcode 11 without any problems.

My last idea is to just reinstall macOS, but I would like to don't do it.

Edit: I’ve forgot to mention that application is working on physical iPhone XS.

10条回答
ら.Afraid
2楼-- · 2020-02-10 00:09

In my case it was running the simulator/coresimulator version for 11 beta vs the one for 10.1 -> Killing and letting Xcode reopen the simulator solved the problem.

查看更多
老娘就宠你
3楼-- · 2020-02-10 00:10

I had the same problem. I find the Xcode 11 Beta Release Notes had explain it.

Bundles without a CFBundleVersion are invalid and can’t be properly installed on 
devices or simulators. CoreSimulator now checks and rejects such bundles earlier in
the process with a clearer error message. (49892531)

And this link is the format of CFBundleVersion.

When I resolved this problem, I found out if having the CFBundleVersion problem when running App for the first time. Then it always has problem no matter whether the format is correct or not. So I restart the Xcode and the Simulator, and change the CFBundleVersion to a correct format, the App running correctly.

查看更多
干净又极端
4楼-- · 2020-02-10 00:12

I ran into this same issue as well.

I didn't get so far as to trying some of the other options provided here, but I was able to get back to building for simulator by simply deleting the /DerivedData directory.

If you're unsure as to where to find it, simply do this: Xcode -> Preferences -> Locations and select the arrow next to the path for Derived Data

查看更多
家丑人穷心不美
5楼-- · 2020-02-10 00:13

Combining Sgeven.Zheng and Cristik's answers.

CAUSE

Installing Xcode11 Beta installs a new version of CoreSimulator.framework with the following update:

https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes

"Bundles without a CFBundleVersion are invalid and can't be properly installed on devices or simulators. CoreSimulator now checks and rejects such bundles earlier in the process with a clearer error message. (49892531)"

The following won't fix the issue:

  • Uninstalling Xcode11 Beta
  • Uninstalling and reinstalling Xcode 10

This is because CoreSimulator.framework is installed in /Library/Developer/PrivateFrameworks/CoreSimulator.framework, which is outside the Xcode.app bundle. When re-installed, xcode10 detects that the currently installed version of CoreSimulator.framework is newer than what xcode10 would have installed, so it leaves it as-is.

SHORT-TERM FIX

  1. Uninstall xcode11
  2. Install Xcode 10 (No need to re-install if it's already installed)
  3. Remove /Library/Developer/PrivateFrameworks/CoreSimulator.framework
  4. Launch Xcode 10 and agree to install command line tools

LONG-TERM FIX

Since this is not a "real" bug but is instead the intended behavior of Xcode11, steps will eventually need to be taken to ensure that apps are always built with a valid CFBundleVersion.

查看更多
ら.Afraid
6楼-- · 2020-02-10 00:13

It's a new feature in Xcode11.

In release note it said:

Bundles without a CFBundleVersion are invalid and can’t be properly installed on devices or simulators. CoreSimulator now checks and rejects such bundles earlier in the process with a clearer error message. (49892531)

You can:

  1. Edit your CFBundleVersion by the style of this LINK
  2. Reset your Xcode and simulator
  3. Run again, you will see it works again

When you run app in simulator success, you can change back your CFBundleVersion again, you will found it still can work XD

查看更多
我只想做你的唯一
7楼-- · 2020-02-10 00:14

There is a lot of misinformation in the answers here, so I wanted to provide an authoritative response.

The issue here is that the new version of CoreSimulator.framework with Xcode 11 beta does validation on CFBundleVersion that previous versions did not do. These checks are valid, and it does represent an issue in your application, but there's also a bug in how the checks were performed in Xcode 11 Beta 1 which compounds the issue.

First, fix the CFBundleVersion in your Info.plist. It should consist of only numbers and up to two periods (ie ##.[.##[.##]], eg: 12.4.2).

Second, after fixing CFBundleVersion, you need to killall -9 CoreSimulatorBridge because the old value is unfortunately cached in CoreSimulatorBridge, preventing it from recognizing the new value. This part was a bug, and it was addressed in Xcode 11 Beta 2.

查看更多
登录 后发表回答