为什么我可以在iOS 14.1上安装我的应用程序,但不能在14.2上安装?

5
自从安装了Xcode 12.2后,我无法在运行iOS 14.2的模拟器上安装我们的应用程序。我下载了14.1版本,运行14.1的模拟器可以正常安装该应用程序。值得注意的是,我的同事没有这个问题,尽管他运行相同版本的Xcode,所以我的设置似乎存在问题。
我已经尝试卸载Xcode并重新安装,删除了derivedData文件夹,但仍然无法解决问题。
该应用程序构建良好,但当它尝试在运行iOS 14.2的模拟器上安装时,会弹出此窗口:

Cozi Needs To Be Updated

当我点击“详情”按钮时,我会得到以下内容:

详情

“Cozi” 需要更新 域名: IXUserPresentableErrorDomain 代码: 4 失败原因: 此应用程序需要由开发人员更新才能在此版本的 iOS 上运行。 恢复建议: 未能找到匹配的 arch 以供输入文件使用: /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 -- 未能找到匹配的 arch 以供输入文件使用:/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 域名: MIInstallerErrorDomain 代码: 15 用户信息: { FunctionName = MIMachOFileMatchesMyArchitecture; LegacyErrorString = IncorrectArchitecture; SourceFileLine = 51; } --

系统信息

macOS 版本 10.15.7 (Build 19H15) Xcode 12.2 (17535) (Build 12B45b) 时间戳: 2020-11-20T13:33:05-08:00

我在StackOverflow上没有看到其他人报告这个错误,所以我似乎遇到了一些独特的问题。我真的很感激任何指针!! 编辑11/30/2020:尽管创建了赏金,但我仍然没有找到解决此问题的方法。我的当前计划是等待iOS 14.3并希望以某种方式解决该问题。 编辑12/16/2020:iOS 14.3没有帮助,但是有更多的答案出现,这使我找到了解决方案,您可以在下面看到。谢谢!!

你是否对项目进行了干净且完整的重建?问题似乎出在通知扩展上。也许这个目标还没有被重新构建。 - Paulw11
谢谢@Paulw11;那是我尝试的第一件事 :) - dacoinminster
我在尝试为iOS 14.2在Xcode 12.2上构建消息扩展时遇到了相同的问题。你并不孤单。在我的客户机器上也无法工作 :/ - Nadzeya
看起来是同样的问题:https://stackoverflow.com/questions/65068111/cant-build-watch-app-to-simulator-due-to-app-needs-to-be-updated - Nadzeya
4个回答

16

如果还来得及的话,这可能对某些人有所帮助。在我的情况下,问题是在我添加了NotificationService之后导致的。

步骤:

选择你的项目 -> 目标 -> NotificationService(或任何你选择的名称)。

选择构建设置 -> 搜索VALID_ARCHS并添加值$(ARCHS_STANDARD)。

希望这能帮助到遇到相同问题的人。


2
这个方法很管用!我在下面发布了自己的答案并附上了详细信息,但我将你的标记为解决方案,希望你能得到一些声望或其他东西。谢谢!! - dacoinminster
这对我有用,我在 VALID_ARCHS 中有一个错误的设置,在 Xcode 11 中可以工作但在 Xcode 12 中不行。 - Matt Sephton

2

我在尝试在iOS 14.2的Xcode 12.2上构建消息扩展时遇到了同样的问题。

以下是我解决这个问题的方法:

  1. 尝试设置传统的构建系统(文件 -> 工作区设置... -> 构建系统 -> 传统构建系统)。它以更好的方式显示错误。
  2. 我得到了类似于以下内容: enter image description here
  1. 从我的扩展目标中删除VALID_ARCHS设置

1
你的建议帮助我找到了解决方案(我会将其作为单独的答案发布)!谢谢!!! - dacoinminster

2

@Nadzeya和@Sawib的建议让我发现了解决我的问题的方法!

在我的情况下,我需要编辑我的项目文件并添加一些VALID_ARCHS参数到我的新扩展中,因为某些原因它们缺失了。这是我的github桌面diff的样子:

Github桌面diff

我终于可以再次编译iOS 14.2和14.3了。谢谢@Nadzeya和@Saqib!

我认为@Saqib的答案最接近我的做法,所以我将其标记为正确答案。


在Xcode 14.3中,VALID_ARCHS已经被弃用,现在该怎么办? - Idelfonso Gutierrez

0

如果你更仔细地看一下错误,你会发现它在抱怨架构不正确:

Incorrect arch

请检查您的项目架构设置,并尝试在目标上将 '仅构建活动架构' 更改为 ,如下所示:

Active Build Arch

这是一个我遇到的显著bug,自从我更新到Xcode 12.x以来。如果问题仍然存在,您可以开始缩小导致问题的具体依赖关系。

他不是,我也不是。我尝试使用传统构建模式构建,但结果相同。 - dacoinminster
你尝试下载早期的模拟器运行时,看看是否会出现相同的错误了吗? - ninehundreds
很奇怪它会出现构架错误,因为在14.1和14.2之间几乎没有任何区别。您是否尝试手动从 /Library/Developer/Xcode/CoreSimulator 移除14.2模拟器,然后通过Xcode重新添加它? - ninehundreds
@dacoinminster 这可能是你的问题。至少在我的机器上,我有14.2个模拟器住在那个文件夹里,还有旧的。你应该看到一个列出模拟器的device_set.plist文件。此时不确定是否有帮助,但也许在重新安装之前倒掉整个文件夹和任何缓存。 - ninehundreds
1
我很感激你的尝试,@ninehundreds!我添加了一份赏金,希望其他人能尽快加入。 - dacoinminster
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接