Pio*_*ara 43 xcode ios xcode10 xcode11
昨天,我下载了Xcode 11的Beta版。之后,我打开了项目并尝试使用新的Xcode运行。不幸的是,消息出现了错误:
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.
--
Run Code Online (Sandbox Code Playgroud)
我已经关闭了Beta版,并尝试使用Xcode的最新稳定版本(10.2.1)再次运行,但是发生了相同的错误。我需要提及的是,在尝试使用Xocde 11运行项目之前,它在Xcode 10上运行时没有任何问题。在使用beta Xcode运行之前和之后,都没有任何改变。
我已经尝试过的:
~/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
Run Code Online (Sandbox Code Playgroud)
我可以运行没有经过Xcode 11测试的其他项目,而不会出现任何问题。
我的最后一个想法是仅重新安装macOS,但我不想这样做。
编辑:我忘了提到该应用程序在物理iPhone XS上运行。
Jer*_*oia 43
这里的答案有很多错误的信息,因此我想提供权威的答复。
这里的问题是带有Xcode 11 beta的CoreSimulator.framework新版本在CFBundleVersion上进行了验证,而以前的版本则没有。这些检查是有效的,并且确实代表您的应用程序中的问题,但是在Xcode 11 Beta 1中如何执行检查也存在一个错误,这使问题更加复杂。
首先,在您的Info.plist中修复CFBundleVersion。它只能由数字组成,并且最多可以包含两个句点(即##。[。## [。##]],例如:12.4.2)。
其次,修复CFBundleVersion后,您需killall -9 CoreSimulatorBridge要这样做,因为很遗憾,旧值已缓存在CoreSimulatorBridge中,从而阻止了它识别新值。这部分是一个错误,已在Xcode 11 Beta 2中解决。
Cri*_*tik 18
我也遇到了,几乎整天都在浪费时间寻找可能的原因。
最终解决问题并允许我在模拟器上安装的步骤:
/Library/Developer(从根目录删除),或者如果要保留备份,请重命名除了问题中提到的步骤(完全卸载Xcode 11,完全卸载Xcode 10,然后再重新安装)之外,我还尝试了将项目克隆到另一个位置,遍历所有可能的位置以获取派生数据,安装其他模拟器运行时并在这些位置上进行尝试。它们都不起作用,幸运的是,控制台日志应用程序显示了拒绝应用程序包的进程的路径,这是Xcode在中安装的二进制文件之一/Library/Developer/PrivateFrameworks/CoreSimulator.framework。
似乎Xcode 11安装了较新版本的框架,而Xcode 10并未覆盖它们。删除整个/Library/Developer文件夹会触发命令行工具的安装,最终使模拟器运行时恢复到可以在Xcode 10中正常运行的状态。
您一定喜欢Beta版:)
小智 8
我有同样的问题。我发现Xcode 11 Beta发行说明已经对此进行了解释。
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)
Run Code Online (Sandbox Code Playgroud)
并且此链接是CFBundleVersion的格式。
解决此问题后,我发现首次运行App时是否存在CFBundleVersion问题。然后,无论格式是否正确,总是会出现问题。因此,我重新启动了Xcode和Simulator,并将CFBundleVersion更改为正确的格式,从而使App正常运行。
结合Sgeven.Zheng和Cristik的答案。
原因
安装Xcode11 Beta将安装CoreSimulator.framework具有以下更新的新版本:
https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes
“没有CFBundleVersion的捆绑包是无效的,不能在设备或模拟器上正确安装。CoreSimulator现在会在过程中更早地检查并拒绝此类捆绑包,并显示一条更清晰的错误消息。(49892531)”
以下内容无法解决该问题:
这是因为CoreSimulator.framework安装在包/Library/Developer/PrivateFrameworks/CoreSimulator.framework外部的中Xcode.app。重新安装后,xcode10会检测到当前安装的版本CoreSimulator.framework比xcode10会安装的版本新,因此它保持原样。
短期固定
/Library/Developer/PrivateFrameworks/CoreSimulator.framework长期固定
由于这不是“真正的”错误,而是Xcode11的预期行为,因此最终需要采取步骤来确保始终使用有效的构建应用程序CFBundleVersion。
| 归档时间: |
|
| 查看次数: |
12366 次 |
| 最近记录: |