为什么我可以在 iOS 14.1 而不是 14.2 上安装我的应用程序?
Why can I install my app on iOS 14.1 but not 14.2?
自从安装 Xcode 12.2 后,我无法在模拟器 运行 iOS 14.2 上安装我们的应用程序。我下载了 14.1 和模拟器 运行 14.1 安装应用程序就好了。值得注意的是,我的同事没有这个问题,即使他 运行 与 Xcode 的版本相同,所以我的设置似乎有问题。
我试过卸载 Xcode 并重新安装。我删除了 derivedData 文件夹。似乎没有任何帮助。
该应用程序构建得很好,但是当它在模拟器上安装时 运行 iOS 14.2,我得到这个弹出窗口:
当我点击“详细信息”按钮时,我得到以下信息:
Details
“Cozi” Needs To Be Updated Domain: IXUserPresentableErrorDomain Code:
4 Failure Reason: This app needs to be updated by the developer to
work on this version of iOS. Recovery Suggestion: Failed to find
matching arch for input file:
/Users/j.r.willett/Library/Developer/CoreSimulator/Devices/662A1CB0-4E54-4DEC-8F4B-E2CA5FCB0DE8/data/Library/Caches/com.apple.mobile.installd.staging/temp.o8dPqi/extracted/iCozi-Free.app/PlugIns/NotificationService.appex/NotificationService
-- Failed to find matching arch for input file: /Users/j.r.willett/Library/Developer/CoreSimulator/Devices/662A1CB0-4E54-4DEC-8F4B-E2CA5FCB0DE8/data/Library/Caches/com.apple.mobile.installd.staging/temp.o8dPqi/extracted/iCozi-Free.app/PlugIns/NotificationService.appex/NotificationService
Domain: MIInstallerErrorDomain Code: 15 User Info: {
FunctionName = MIMachOFileMatchesMyArchitecture;
LegacyErrorString = IncorrectArchitecture;
SourceFileLine = 51; }
--
System Information
macOS Version 10.15.7 (Build 19H15) Xcode 12.2 (17535) (Build 12B45b)
Timestamp: 2020-11-20T13:33:05-08:00
我在 Whosebug 上没有看到其他人报告此错误,所以我似乎偶然发现了一些独特的东西。非常感谢任何指点!!
编辑 2020 年 11 月 30 日:尽管创建了赏金,但我仍然没有找到解决此问题的方法。我目前的计划是等待或 iOS 14.3,希望能以某种方式解决问题。
编辑 2020 年 12 月 16 日:iOS14.3 没有帮助,但出现了更多答案,这使我找到了解决方案,您可以在下面看到。谢谢!!
如果您仔细查看错误,您会发现它抱怨架构不正确的地方:
检查您的项目架构设置,然后尝试将目标上的“仅构建活动架构”更改为是,如下所示:
这是我更新到 Xcode 12.x 后遇到的一个值得注意的错误。如果问题仍然存在,您可以开始缩小导致问题的特定依赖项的范围。
我在尝试在 Xcode 12.2 上为 iOS 14.2 构建消息扩展时遇到了同样的问题。
我是这样解决这个问题的:
- 尝试设置 Legacy 构建系统(文件 -> 工作区设置... -> 构建系统 -> Legacy 构建系统)。它以更好的方式显示错误。
- 我有这样的东西:
- 从我的扩展目标中删除了 VALID_ARCHS 设置
如果还不算太晚,这可能会对某人有所帮助。我的问题是在我添加 NotificationService 之后引起的
步骤:
Select 您的项目 -> 目标 -> NotificationService(或您选择的任何名称)。
Select 构建设置 -> 搜索 VALID_ARCHS 并添加值 $(ARCHS_STANDARD)
希望这对遇到同样问题的人有所帮助。
@Nadzeya 和@Sawib 的建议让我找到了适合我的情况的解决方法!!
在我的例子中,我需要编辑我的项目文件并为我的新扩展添加一些 VALID_ARCHS 参数,这些参数由于某种原因丢失了。这是我的 github 桌面 diff 的样子:
我终于可以为 iOS 14.2 和 14.3 再次编译了。谢谢@Nadzeya 和@Saqib!!
我认为@Saqib 的答案与我最接近,所以我将他们的答案标记为正确答案。
自从安装 Xcode 12.2 后,我无法在模拟器 运行 iOS 14.2 上安装我们的应用程序。我下载了 14.1 和模拟器 运行 14.1 安装应用程序就好了。值得注意的是,我的同事没有这个问题,即使他 运行 与 Xcode 的版本相同,所以我的设置似乎有问题。
我试过卸载 Xcode 并重新安装。我删除了 derivedData 文件夹。似乎没有任何帮助。
该应用程序构建得很好,但是当它在模拟器上安装时 运行 iOS 14.2,我得到这个弹出窗口:
当我点击“详细信息”按钮时,我得到以下信息:
Details
“Cozi” Needs To Be Updated Domain: IXUserPresentableErrorDomain Code: 4 Failure Reason: This app needs to be updated by the developer to work on this version of iOS. Recovery Suggestion: Failed to find matching arch for input file: /Users/j.r.willett/Library/Developer/CoreSimulator/Devices/662A1CB0-4E54-4DEC-8F4B-E2CA5FCB0DE8/data/Library/Caches/com.apple.mobile.installd.staging/temp.o8dPqi/extracted/iCozi-Free.app/PlugIns/NotificationService.appex/NotificationService -- Failed to find matching arch for input file: /Users/j.r.willett/Library/Developer/CoreSimulator/Devices/662A1CB0-4E54-4DEC-8F4B-E2CA5FCB0DE8/data/Library/Caches/com.apple.mobile.installd.staging/temp.o8dPqi/extracted/iCozi-Free.app/PlugIns/NotificationService.appex/NotificationService Domain: MIInstallerErrorDomain Code: 15 User Info: { FunctionName = MIMachOFileMatchesMyArchitecture; LegacyErrorString = IncorrectArchitecture; SourceFileLine = 51; } --
System Information
macOS Version 10.15.7 (Build 19H15) Xcode 12.2 (17535) (Build 12B45b) Timestamp: 2020-11-20T13:33:05-08:00
我在 Whosebug 上没有看到其他人报告此错误,所以我似乎偶然发现了一些独特的东西。非常感谢任何指点!!
编辑 2020 年 11 月 30 日:尽管创建了赏金,但我仍然没有找到解决此问题的方法。我目前的计划是等待或 iOS 14.3,希望能以某种方式解决问题。
编辑 2020 年 12 月 16 日:iOS14.3 没有帮助,但出现了更多答案,这使我找到了解决方案,您可以在下面看到。谢谢!!
如果您仔细查看错误,您会发现它抱怨架构不正确的地方:
检查您的项目架构设置,然后尝试将目标上的“仅构建活动架构”更改为是,如下所示:
这是我更新到 Xcode 12.x 后遇到的一个值得注意的错误。如果问题仍然存在,您可以开始缩小导致问题的特定依赖项的范围。
我在尝试在 Xcode 12.2 上为 iOS 14.2 构建消息扩展时遇到了同样的问题。
我是这样解决这个问题的:
- 尝试设置 Legacy 构建系统(文件 -> 工作区设置... -> 构建系统 -> Legacy 构建系统)。它以更好的方式显示错误。
- 我有这样的东西:
- 从我的扩展目标中删除了 VALID_ARCHS 设置
如果还不算太晚,这可能会对某人有所帮助。我的问题是在我添加 NotificationService 之后引起的 步骤: Select 您的项目 -> 目标 -> NotificationService(或您选择的任何名称)。 Select 构建设置 -> 搜索 VALID_ARCHS 并添加值 $(ARCHS_STANDARD)
希望这对遇到同样问题的人有所帮助。
@Nadzeya 和@Sawib 的建议让我找到了适合我的情况的解决方法!!
在我的例子中,我需要编辑我的项目文件并为我的新扩展添加一些 VALID_ARCHS 参数,这些参数由于某种原因丢失了。这是我的 github 桌面 diff 的样子:
我终于可以为 iOS 14.2 和 14.3 再次编译了。谢谢@Nadzeya 和@Saqib!!
我认为@Saqib 的答案与我最接近,所以我将他们的答案标记为正确答案。