Xcode 9.0.1 及更高版本的 100+ "Class implemented in both MapKit and VectorKit" 个警告
100+ "Class implemented in both MapKit and VectorKit" warnings with Xcode 9.0.1 and above
虽然 运行 我的项目(甚至不使用 MapKit
),但我的控制台收到一百多个 class 重复警告的垃圾邮件:
objc[6377]: Class ___MKPlaceBusinessInfoItemAccessibility_super is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit (0x12f128f00) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/VectorKit.axbundle/VectorKit (0x12f2187b0). One of the two will be used. Which one is undefined.
这些警告 不存在 Xcode 9.0.0,我只在 Xcode 9.0.1及以上.
我知道这是一个错误,I found a radar 是关于这个问题的。有没有办法在不影响其他 SDK 警告可见性的情况下使这些警告静音?
在 9.0.1 上遇到了同样的问题。
- 您应该退出 Xcode 和所有模拟器。
- 运行
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
。
- 再次开始Xcode。
这个问题帮我解决了。
已解决!
-在模拟器上
- 硬件
----清除所有内容和设置
-关闭xcode和模拟器
-删除 ~/Library/Developer/Xcode/DerivedData/ModuleCache 的内容
-开始xcode...
重置 iOS 模拟器为我解决了这个问题。
模拟器 -> 硬件 -> 清除所有内容和设置...
完全一样的问题,在我的例子中,我试图删除DerivedData文件夹中的所有文件,但仍然没有用。
后来我发现如果我切换到另一种模拟器,比如从'iPhone 8'切换到'iPhone 8 plus',警告就会消失。
因此,只需从模拟器列表中删除 'iPhone 8' 模拟器,然后再次添加 'iPhone 8' 模拟器即可。
不知道会不会再次出现这个问题,因为这也是我第三次遇到这个问题
这实际上是当前 iOS 框架中的一个错误,与您的应用程序、模块缓存、库等中的任何内容都无关。这似乎是不确定的原因是它只是当辅助功能层处于活动状态时,它不在模拟器上,除非在非常特殊的情况下。我知道的三个:
- 辅助功能检查器已开启
- UI 仪器化测试
- OSX 的 VoiceOver 已开启(其他 AT 也一样)
要消除此问题,您应该:
- 退出辅助功能检查器(如果打开)
- 打开模拟器
- 硬件 -> "Erase All Content and Settings"
- 回复运行申请。
- 从不运行这个带有辅助功能检查器的模拟器
- 从不运行 UI 在这个模拟器上测试,它也依赖于辅助层来完成他们的工作,但我不认为这样做会导致错误一直存在直到你再次"Erase all....",它只会出现在那个测试运行。
每次执行最后两个要点之一时,您都必须再次清除数据...
核心问题是 MapKit 和 VectorKit 都 link 到核心可访问性包,但显然没有动态地这样做,所以这些包都包含在两个模块中。尽管非常冗长且令人沮丧,但可以非常安全地忽略此类警告。
不幸的是,没有其他修复方法...如果您不需要 iOS 11 个功能,也许您可以下载旧版本的模拟器。或者只是不 运行 检测 tests/Accessibility Inspector/VoiceOver/I 希望他们尽快解决这个问题!
如您所见,/Applications/Xcode.app
的 CoreSimulator
有问题。 Apple Xcode 开发者在 MapKit
和 VectorKit
中都定义了这个符号,这是根本错误。
无法修改Xcode,只有Apple的Staff才能解决。
只是停止浪费你的时间,除了回到Xcode 9.0
我根本不在乎模拟器的可访问性,所以我只是重命名了其中一个重复文件,这样它就不会被发现了:
mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit_
哈哈
我的情况有点不同:我在 运行 XCUITest 时遇到了这个问题。
启动 XCUITest 进程后,目标应用程序在启动时崩溃。
但是,在我删除了所有的网络代理之后,这个问题就解决了!
虽然 运行 我的项目(甚至不使用 MapKit
),但我的控制台收到一百多个 class 重复警告的垃圾邮件:
objc[6377]: Class ___MKPlaceBusinessInfoItemAccessibility_super is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit (0x12f128f00) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/VectorKit.axbundle/VectorKit (0x12f2187b0). One of the two will be used. Which one is undefined.
这些警告 不存在 Xcode 9.0.0,我只在 Xcode 9.0.1及以上.
我知道这是一个错误,I found a radar 是关于这个问题的。有没有办法在不影响其他 SDK 警告可见性的情况下使这些警告静音?
在 9.0.1 上遇到了同样的问题。
- 您应该退出 Xcode 和所有模拟器。
- 运行
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
。 - 再次开始Xcode。
这个问题帮我解决了。
已解决!
-在模拟器上 - 硬件 ----清除所有内容和设置 -关闭xcode和模拟器 -删除 ~/Library/Developer/Xcode/DerivedData/ModuleCache 的内容 -开始xcode...
重置 iOS 模拟器为我解决了这个问题。 模拟器 -> 硬件 -> 清除所有内容和设置...
完全一样的问题,在我的例子中,我试图删除DerivedData文件夹中的所有文件,但仍然没有用。
后来我发现如果我切换到另一种模拟器,比如从'iPhone 8'切换到'iPhone 8 plus',警告就会消失。
因此,只需从模拟器列表中删除 'iPhone 8' 模拟器,然后再次添加 'iPhone 8' 模拟器即可。
不知道会不会再次出现这个问题,因为这也是我第三次遇到这个问题
这实际上是当前 iOS 框架中的一个错误,与您的应用程序、模块缓存、库等中的任何内容都无关。这似乎是不确定的原因是它只是当辅助功能层处于活动状态时,它不在模拟器上,除非在非常特殊的情况下。我知道的三个:
- 辅助功能检查器已开启
- UI 仪器化测试
- OSX 的 VoiceOver 已开启(其他 AT 也一样)
要消除此问题,您应该:
- 退出辅助功能检查器(如果打开)
- 打开模拟器
- 硬件 -> "Erase All Content and Settings"
- 回复运行申请。
- 从不运行这个带有辅助功能检查器的模拟器
- 从不运行 UI 在这个模拟器上测试,它也依赖于辅助层来完成他们的工作,但我不认为这样做会导致错误一直存在直到你再次"Erase all....",它只会出现在那个测试运行。
每次执行最后两个要点之一时,您都必须再次清除数据...
核心问题是 MapKit 和 VectorKit 都 link 到核心可访问性包,但显然没有动态地这样做,所以这些包都包含在两个模块中。尽管非常冗长且令人沮丧,但可以非常安全地忽略此类警告。
不幸的是,没有其他修复方法...如果您不需要 iOS 11 个功能,也许您可以下载旧版本的模拟器。或者只是不 运行 检测 tests/Accessibility Inspector/VoiceOver/I 希望他们尽快解决这个问题!
如您所见,/Applications/Xcode.app
的 CoreSimulator
有问题。 Apple Xcode 开发者在 MapKit
和 VectorKit
中都定义了这个符号,这是根本错误。
无法修改Xcode,只有Apple的Staff才能解决。
只是停止浪费你的时间,除了回到Xcode 9.0
我根本不在乎模拟器的可访问性,所以我只是重命名了其中一个重复文件,这样它就不会被发现了:
mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit_
哈哈
我的情况有点不同:我在 运行 XCUITest 时遇到了这个问题。 启动 XCUITest 进程后,目标应用程序在启动时崩溃。 但是,在我删除了所有的网络代理之后,这个问题就解决了!