【问题标题】:Xcode: "This app could not be installed at this time."Xcode:“此时无法安装此应用程序。”
【发布时间】:2018-05-25 10:21:27
【问题描述】:

使用我的第一个应用程序进行学习。它进展顺利,但遇到了 Xcode 的问题。当我尝试在 iPhone 模拟器上运行该应用程序时,此消息总是弹出“此时无法安装此应用程序”。

怎么了?尝试构建应用程序时没有错误。已尝试清理构建。重新安装豆荚。重新启动 Xcode。擦除了模拟器设备上的所有设置,但是问题仍然存在。

错误消息没有给我任何信息。我可以查看另一个日志文件吗?

【问题讨论】:

  • 你问怎么了? Xcode 有问题。退出 Xcode 并重新启动它通常会有所帮助。
  • 哈!发布这篇文章后,我确实找到了灵魂。错误与 plist 文件有关。在位于 ~/Library/Logs/CoreSimulator/ 的日志文件中发现错误
  • @PureRushh 你能提供更多细节吗?也许将发生的事情描述为您自己问题的答案。可能会帮助别人。
  • 检查正在运行的模拟器,首先删除你的应用程序已经安装。我通过这种方式解决了我的问题。
  • 强制退出模拟器并构建并运行 Xcode !

标签: ios xcode ios11 xcode9.2


【解决方案1】:

我设法找到了问题所在。问题是我在属性列表文件中添加了一些无效的键。我通过查看位于此处的日志文件发现了错误:~/Library/Logs/CoreSimulator/

【讨论】:

  • 解决了我的问题,该问题是由于将 Info.plist 留在错误的位置而导致本地化停滞不前。
  • 谢谢,这真的很有帮助。也许 Apple 可以建议检查模拟器日志,而不是给我们这个无用且令人沮丧的错误消息,即使它留给开发人员来确定确切的错误。
  • 我的日志中有一个潜在的错误,即我在Info.plist 中有一个错误的密钥。谢谢!
  • ~/Library/Logs/CoreSimulator/ 目录下的文件名为:CoreSimulator.log
  • 又遇到了这个问题。模拟器应用程序中的模拟器日志没有报告任何问题。 Simulator -> Debug -> Open System Log...。仅使用tail -f ~/Library/Logs/CoreSimulator/CoreSimulator.logCoreSimulator.log 报告问题。
【解决方案2】:

重置模拟器:

Hardware -> Erase All content and settings...

清理你的项目:

shift+cmd+K

shift+opt+cmd+K

这应该可以解决您的问题

【讨论】:

  • FWIW:我只需要清理项目即可再次安装应用程序。
  • 为我修复了它。真烦人。
  • @Ethan 完全同意!很高兴我提供了帮助
  • FWIW:我只需要重置模拟器即可再次安装应用程序:P
【解决方案3】:

我知道问题已得到解答,但对于遇到相同问题的其他人,我建议如下:

  • 检查模拟器日志,如果它打印有用的东西。首先,选择模拟器,然后从菜单选项中打开 Debug -> Open System Logs

  • 确保只有 1 个模拟器在运行。

  • 从模拟器中删除旧版本的应用程序。

  • 如果您导入自定义框架,请确保自定义框架->bundle-id 与 currentAppProject->bundle-id 不同。如果您不确定,只需更改当前项目的 bundle-id。

  • 另外一些模拟器可能有问题 -> 只需更换模拟器,它可能会解决问题,对我来说更换模拟器有效。

【讨论】:

  • 从 sim 中删除旧版本的应用程序为我修复了它。
  • 对我来说问题又出现了。实际上,我正在创建 Umbrella 框架,并且我的两个框架都有相同的 Bundle-Identifiers,更改 bundle id 永久解决了我的问题。
  • 就我而言,我不知道它们有何不同,但 Objective-C 项目运行正常,但 Swift 不行
  • 在我的情况下,“自定义框架->bundle-id”与目标项目相同。
【解决方案4】:

在 ~/Library/Logs/CoreSimulator//MobileInstallation 中发现问题

WatchKit 2 应用扩展 NSExtension.NSExtensionAttributes.WKAppBundleIdentifier 值不 匹配 WatchKit 应用的捆绑 ID

【讨论】:

  • 感谢您的提示。我在更改捆绑 ID 后遇到了这个问题,但由于某种原因在 Apple Watch 应用程序的 WKAppBundleIdentifier 和 Apple Watch 扩展中,ID 不正确
【解决方案5】:

对于任何在这个晦涩的错误上浪费时间的人。如果您没有任何相关日志并且所有其他答案都失败了,您可以检查您最近是否添加了一个由于某种原因(没有调查原因)无法嵌入,只能链接的框架。 GoogleMaps for iOS 发生在我身上。

【讨论】:

  • 如果您尝试使用指向框架的符号链接,您可能会收到此错误。
【解决方案6】:

我解决了这个问题以从 Xcode Preferences 中删除 DerivedData。并从硬件重新启动模拟器。

【讨论】:

    【解决方案7】:
    rm -rf ~/Library/Developer/Xcode/DerivedData/
    

    【讨论】:

    • 你能解释一下你的答案吗?
    • 我认为这与 Xcode 缓存有关;我的错误对话框消息(此 SO 线程的主题)包含无法找到 /caches/ 文件夹中的某些内容的详细信息;我不久前就认出了上面的命令(不确定它是否是为了解决同样的问题)并运行它;为我解决了问题;一个有用的命令,一定要保存在你的 xcode 工具箱中。
    【解决方案8】:

    更改 InfoPlist.strings 中的 CFBundleShortVersionString 以匹配 info.plist 中的那个,为我解决了这个问题。进行此更改后,我必须使用模拟器的“擦除所有内容和设置”。

    尝试在装有 iOS 9.0(而不是 11.2)的模拟器上启动却出现了这个错误,这帮助我找到了更多关于明显相同问题的答案:

    操作无法完成。 (LaunchServicesError 错误 0。)

    【讨论】:

      【解决方案9】:

      我在所有模拟器和所有设备上都看到了这一点。卸载该应用程序可以运行一次,但对我来说仍然失败。

      解决方法是清除我项目的所有 pod:

      pod deintegrate
      

      然后重新安装:

      pod install
      

      这适用于 XCode 9.3 和 iOS 11.2/11.3。

      【讨论】:

        【解决方案10】:

        在我的情况下,只需重新启动模拟器即可修复它。

        【讨论】:

          【解决方案11】:

          当我与另一个使用不同版本的 CocoaPods 的开发人员切换分支时发生在我身上,删除派生数据文件夹有效!

          【讨论】:

          • 我也有类似的情况,删除派生数据也对我有用
          【解决方案12】:

          只是模拟器并重新开始对我有用。在我的情况下,如果我更改捆绑标识符并随后运行 iPhone X 模拟器,总是会发生错误。

          【讨论】:

            【解决方案13】:

            我遇到了这个错误,但它与我的Info.plist 或 Cocoapods 无关。我在我的 Xcode 项目中错误地删除了重复的 NotificationServiceExtension 组,这导致我最终得到一个没有源文件的 NotificationServiceExtension 目标(我只需要一个源文件来集成/搭载 Urban Airship SDK 的丰富通知)。

            在恢复我删除重复组的提交,然后删除正确的重复组(没有将源文件列为目标的一部分)之后,我能够构建并运行得很好。

            【讨论】:

              【解决方案14】:

              在这里添加一些附加信息。虽然 Xcode 无法告诉您为什么该应用程序无法安装,但控制台有相当不错的错误消息。只需启动 Console.app (Applications > Utilities > Console) 并通过 installcoordinationd 过滤输出。

              它会给你这样的东西来描述错误:

              installcoordinationd -[IXSCoordinatedAppInstall _onQueue_acquireAssertionAndDoInstall]_block_invoke:安装标识符:com.acme.location-thingy uuid:blah-blah-blah-foo intent:IXCoordinatorIntentInitiating creator/appDRI:InstallCoordination Simple SPI userInitiated: N state:IXAppCoordinationStateWaitingForInstall> failed: Error Domain=MIInstallerErrorDomain Code=99 "WatchKit v3 app has disallowed Info.plist key: NSLocationUsageDescription" UserInfo={LegacyErrorString=WatchKitAppIllegalInfoPlistKey, FunctionName=-[MIExecutableBundle hasOnlyAllowedWatchKitAppInfoPlistKeysForWatchKitVersion:error: ], SourceFileLine=1841, NSLocalizedDescription=WatchKit v3 应用不允许 Info.plist 键:NSLocationUsageDescription}

              希望这对某人有帮助!

              【讨论】:

                【解决方案15】:

                我在开发我的第一个 WatchKit 应用程序时遇到了这个错误。按照@PureRushh、@Antonioni 和其他人的指导转储以下内容:

                ~/Library/Logs/CoreSimulator/CoreSimulator.log

                日志内容导致我出现错误。我将提供详细信息,以防其他人在开发 WatchKit 应用程序时遇到此错误。

                日志消息

                com.apple.dt.Xcode[89555] : installApplication:withOptions:error:: Error Domain=IXUserPresentableErrorDomain Code=1 "此时无法安装此应用。" UserInfo={ NSLocalizedDescription=此时无法安装此应用。,NSUnderlyingError=0x7f9ab87d1f20 {Error Domain=MIInstallerErrorDomain Code=101 "WatchKit 2.0 应用的捆绑 ID com.somecompany.AirTime2.watchkitapp 没有前缀由父应用的捆绑 ID 后跟“.”;预期前缀 com.somecompany.AirTime。”

                原因:我修改了父应用的 Info.plist(通过 General-> Bundle Identifier)中与 BundleIdentifier 键关联的值,以匹配 URL 类型(用于 SSO 重定向);但是,我未能更新与 WKCompanionAppBundleIdentifier 键关联的 WatchKit App Info.plist 值(见第二个粗线)。

                修复:将键 WKCompanionAppBundleIdentifier 的 WatchKit App Info.plist 值修改为同意与父应用的捆绑 ID

                【讨论】:

                  【解决方案16】:

                  您可能还想在功能下查看您的不同目标。我最终遇到了我的 App ID 的问题

                  【讨论】:

                    【解决方案17】:

                    我也遇到了这个错误。这一切都是在我让 Xcode 更新我的项目设置后不久开始的。特别是在我的 CocoaPod 子项目中。我删除了豆荚并重新安装它们,这解决了我的问题。希望这对您或其他也发现此问题的人有用。

                    【讨论】:

                      【解决方案18】:

                      您也可以从模拟器中删除应用,而不是重新启动模拟器。当您准备好应用程序进行生产然后尝试在手机上构建它时,会导致此错误。当您尝试两次构建同一个应用程序时会出现问题(这也是您在测试模式下运行时没有遇到此问题的原因)。

                      【讨论】:

                        【解决方案19】:

                        如果您导入自定义框架,请确保自定义框架->bundle-id 与 currentAppProject->bundle-id 不同。如果您不确定,那么只需更改当前项目的 bundle-id。它对我有用:)

                        【讨论】:

                          【解决方案20】:

                          在我的例子中,当我从 Cocoapods 迁移到 Carthage 并且在我的依赖项中包含 Firebase iOS SDK 时出现了该消息。

                          当我意识到 Firebase 不需要在 carthage copy-frameworks 阶段复制的框架中时,问题得到了解决。

                          有关 Firebase 和 Carthage 的更多信息,请参阅official documentation

                          【讨论】:

                            【解决方案21】:

                            我也遇到过这样的问题。但没有什么对我有用。然后我注意到我的 info.Plist 文件中有一个问题。可执行文件名称与编辑架构中的架构名称不同。因此,请确保这两者相同,然后尝试运行您的项目。它应该工作。

                            【讨论】:

                              【解决方案22】:

                              如果有人仍然面临这个问题,请检查这些步骤。 这通常发生在您的 Info.plist 中有错误时。就我而言,有两个支持的界面方向条目。

                              按照这些步骤,您一定会找到解决方案。其中大部分已经在上面提到过

                              1. 模拟器 > 设备 > 擦除所有内容和设置
                              2. 删除支持的界面方向的重复条目或检查您的 plist 文件是否有任何错误
                              3. 在您的 Xcode > 产品 > 清理构建文件夹 (Cmd + Shift + K)
                              4. 尝试构建并运行项目

                              希望您在此之后能够解决这个恼人的问题。

                              请检查附上的参考图片

                              【讨论】:

                                【解决方案23】:

                                我在使用 Xcode 9.2 时遇到了这个问题。解决方案是简单地删除该应用并重新安装。

                                【讨论】:

                                • 一旦安装了应用程序,它就不允许我重新安装 - 所以这对我不起作用。
                                • @Ethan:为什么会这样?
                                • 要明确我没有投反对票。但这对我不起作用。最终的工作是重置设备并清理构建和项目
                                • 这个答案没有错,是这个问题的解决方案之一。我也用它。
                                【解决方案24】:

                                当我在 Xcode 10.0 中为目标设置了一个空的内部版本号时,就会发生这种情况。

                                【讨论】:

                                  【解决方案25】:

                                  在我的例子中,我试图运行一个小部件。小部件的方案设置应为: 运行 -> 信息 -> 可执行文件:“启动时询问”

                                  【讨论】:

                                    【解决方案26】:

                                    大家好,只是想让你们知道,以上方法都不适合我。

                                    我正忙于将动态库集成到我的项目中。我知道图书馆工作,所以我没有多想。我所做的只是为了 删除对MyLibrary1的引用,重新编译MyLibrary1并再次嵌入 成功构建。希望这对某人有所帮助。

                                    问候 罗尔夫

                                    【讨论】:

                                      【解决方案27】:

                                      我删除了 ~/Library/Logs/CoreSimulator/ 中的文件,但问题仍然存在。然后我抹掉所有内容和设置就ok了!

                                      【讨论】:

                                      • “清除所有内容和设置”是什么意思...?
                                      • @Robbie Simulator -> 硬件 -> 擦除所有内容和设置...
                                      【解决方案28】:

                                      当您使用非字母作为显示名称时,可能会出现此错误。有关更多信息,请查看此。 Xcode11でCould not hardlink copyってエラーが出る

                                      【讨论】:

                                        【解决方案29】:

                                        对我来说,将 Xcode 移动到 Applications 文件夹解决了这个问题。如果您确实从网上下载了 Xcode,请考虑这样做。

                                        【讨论】:

                                          【解决方案30】:

                                          只需在模拟器中自行删除您的应用程序 并再次运行。 它对我有用。

                                          【讨论】:

                                            猜你喜欢
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2018-11-20
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2015-07-02
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            相关资源
                                            最近更新 更多