错误'_BSMachError:端口1607;(os / kern)无效功能(0x14)在iOS 10的Cordova应用中“无法插入COPY_SEND”


77

一切正常,直到我用Xcode 7.3.0生成cordova应用程序,但每当我将方向从纵向更改为横向时,它就开始仅在iOS 10设备上崩溃,然后再用Xcode 8构建相同的应用程序,因为在iOS上它仍然可以正常工作9.3.1。在调试器中,我得到以下日志:

2016-09-24 18:14:41.212470 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.613460 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.613947 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.614469 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to deallocate send right"
Message from debugger: Terminated due to memory issue

下面是堆栈跟踪

警告:无法从dyld共享缓存中加载任何Objective-C类信息。这将大大降低可用类型信息的质量。

* thread #1: tid = 0xfc80c, 0x00000001000cff00 MyApp`-[MainViewController didReceiveMemoryWarning](self=0x0000000119e0da60, _cmd="didReceiveMemoryWarning") + 40 at MainViewController.m:59, stop reason = breakpoint 7.1

  * frame #0: 0x00000001000cff00 MyApp`-[MainViewController didReceiveMemoryWarning](self=0x0000000119e0da60, _cmd="didReceiveMemoryWarning") + 40 at MainViewController.m:59
    frame #1: 0x0000000192e29964 UIKit`+[UIViewController _traverseViewControllerHierarchyWithDelayedRelease:] + 432
    frame #2: 0x0000000192d5a0f4 UIKit`-[UIApplication _performMemoryWarning] + 232
    frame #3: 0x0000000192d5a294 UIKit`-[UIApplication _receivedMemoryNotification] + 140
    frame #4: 0x0000000100a7d21c libdispatch.dylib`_dispatch_client_callout + 16
    frame #5: 0x0000000100a893a8 libdispatch.dylib`_dispatch_continuation_pop + 708
    frame #6: 0x0000000100a97fa8 libdispatch.dylib`_dispatch_source_latch_and_call + 204
    frame #7: 0x0000000100a7f304 libdispatch.dylib`_dispatch_source_invoke + 836
    frame #8: 0x0000000100a82060 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 652
    frame #9: 0x000000018cc29f2c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    frame #10: 0x000000018cc27b18 CoreFoundation`__CFRunLoopRun + 1660
    frame #11: 0x000000018cb56048 CoreFoundation`CFRunLoopRunSpecific + 444
    frame #12: 0x000000018e5d9198 GraphicsServices`GSEventRunModal + 180
    frame #13: 0x0000000192b2f818 UIKit`-[UIApplication _run] + 684
    frame #14: 0x0000000192b2a550 UIKit`UIApplicationMain + 208
    frame #15: 0x00000001000c7ecc MyApp`main(argc=1, argv=0x000000016fd3fab8) + 76 at main.m:32
    frame #16: 0x000000018bb385b8 libdyld.dylib`start + 4

我在跑

  • Xcode 8
  • 科尔多瓦6.3.0(iOS 4.1.0)
  • iOS 10 iPhone 6

请帮忙。


我发现了问题的根本原因...将其新的svg文件(大小> 1 mb)添加到了以横向模式创建问题的项目中。我不确定问题是否出在iOS Web View组件或svg文件中,因为对于较小的svg,它的工作效果很好。
umesh,2013年

根本原因(根据您粘贴的堆栈跟踪)是应用程序使用了过多的内存,并且在请求时未释放足够的内存。这也似乎与您对.svg文件大小的评论一致。您应该didReceiveMemoryWarning在应用程序委托中实现选择器以释放未使用的对象。
Elist

4
在AlertController的处理程序内调用popViewController()时出现此错误。通过将调用popViewController()的代码异步分发给主线程,可以解决此问题,因为在调用pop之前已清除了警报控制器。我要添加此评论,因为其他收到此错误的人可能是由导致您错误的原因引起的。
David Rector

Answers:


77

我在调试器中收到“无效功能(0x14)“无法插入COPY_SEND”消息,这将阻止该应用程序启动约10秒钟。

我在从项目中删除的文件中设置了断点,但仍显示在Breakpoint导航器中(文件名显示为红色)。

我删除了所有断点,此后再也没有看到错误消息。


8
我知道这听起来很奇怪,但这实际上起到了作用。刚刚删除了所有断点和BAM!一切突然一下!
rak appdev

1
也为我工作。请注意代码,如果得到0x14,则这是您的解决方案。

为我工作:)
xlsmearlx

正在收到该错误:[通用] _BSMachError:端口c203; (os / kern)无效功能(0x14)“无法插入COPY_SEND”。删除断点将其修复。
CMont

1
这是一个曲折的,令人费解的解决方案,但对我有用!请修复这个苹果!
woody121

56

我在iOS10.0 beta阶段遇到了相同的问题,并且它似乎仍然存在于Xcode v11中。

实际上有两个单独的错误:


1. 首先,正如Avaan所说,您必须在info.plist中设置所有隐私使用情况。我相信这是您当机的原因。

从iOS10.0开始,必须明确告知用户您将使用手机的哪些功能以及原因。

项目信息


2.关于错误:

BSMachError:端口1607; (os / kern)功能无效(0x14)“无法插入COPY_SEND”

我通过以下解决方法解决了该错误:

  1. 进入项目设置/常规->部署信息,检查所有方向。

通用设置

  1. 生成并运行后,界面应根据设备方向旋转。
  2. 撤消您刚做的事情(取消选中不需要的方向)。再次生成并运行,错误应该不再出现。

希望这对您有所帮助


6
哇...我没想到这行得通,但确实行得通。+1编辑:XCode v8.1
cloudcal

+1好,第二步解决了我的错误。最初,所有方向都经过检查,然后我仅保留Portrait,然后构建并运行,然后再次检查所有内容。我正在使用WKWebView
anoop4real

1
不适用于我:(。仍会崩溃。Xcode 11.1。在iOS 11.4.1硬件上运行。问题出现在应用启动时,我在启动完成前旋转。仅在Xcode下运行/调试时不会发生当独立我猜这是关系到“无法插入COPY_SEND”,因为当我的Xcode下运行,我看到这样的信息。
克里斯王子

我正在使用Xcode 9.4.1。我已经尝试了所有这些,但仍然收到这个奇怪的错误。我不会崩溃,我可以将任何媒体项目发布到我的聊天表中。还有其他建议吗?
路加·欧文

这对苹果是荒谬而毫无意义的。
维沙尔·达哈兰卡'19

6

我执行核心数据重置时确实收到此错误,但以上解决方案均不适用于我的情况或与我有关。原来是代码在UIAlert的动作中发生的结果,需要将其推入主线程中。通过此处找到解决方案-收到关于CloudKit记录添加的远程通知后,错误_BSMachError:(os / kern)无效功能(20) -并在以下针对Swift 4进行了更新:

alert.addAction(UIAlertAction(title: "Reset Now", style: UIAlertAction.Style.default, handler: { action in
            DispatchQueue.main.async {
                // Core Data reset code goes here...
            }
}))

5

对我而言,原因是[myTextField becomeFirstResponder]; 放置在初始viewWillAppear线程结束之后。


1

我有一个类似的问题(请查看SO上的问题),发现我的UI创建了自己的另一个实例,同时显示了它们。

如果您尚未找到解决问题的方法,但我建议您使用Debug View Hierarchy-tool ...也许您遇到的问题与我相同。

祝好运!


1

我在添加没有匹配字符串的Info.plist键时得到了这个。在我的实例中,我添加了NSLocationAlwaysAndWhenInUseUsageDescription,但没有描述。访问权限对话框会导致发生此错误。添加字符串值解决了该问题。iOs11。


1
原来这是我的问题。奇怪吧?谢谢!
Bill Norman

1

我遇到此错误,尝试了该线程中的每个解决方案,但没有任何效果。我修复了一个看似无关的UIColor(颜色超出范围)错误,这个COPY_SEND问题也消失了。

特定的UIColor错误是UIColorBreakForOutOfRangeColorComponents。


为我工作。谢谢。
加里蒙

1

事实证明-如果您调用EventKit,ContactsKit,麦克风,摄像头等需要权限而没有Info.plist键的应用程序将崩溃,如
隐私-使用时的位置使用说明
隐私-媒体库使用说明

我从https://forums.developer.apple.com/thread/48959 线程获得了这个答案

另外,请检查您是否忘记禁用僵尸。


嗨,NSSam,我尝试了所有选项,但没有解决问题。崩溃仅在真实设备上发生,在模拟器上可以正常运行,但会散发出大量警告。
umesh,2013年

尝试添加NSPhotoLibraryUsageDescription。
阿瓦恩

1

我突然在使用iPhone 11 pro模拟器时遇到此错误,而在其他所有地方(其他模拟器和实际设备)都可以正常使用。

我的解决方案是通过选择硬件>清除所有内容和设置来重置模拟器。

希望它可以在同一情况下为其他人提供帮助。


1

Xcode 11.5引入了新的无效功能: [textField resignFirstResponder]加上难以理解的附加功能"Unable to insert COPY_SEND"

在装有iOS 9.3.6的iPad上:

2020-05-23 20:35:01.576 _BSMachError: (os/kern) invalid capability (20)
2020-05-23 20:35:01.580 _BSMachError: (os/kern) invalid name (15)

在装有iPadOS 13.5的iPad上:

2020-05-23 20:38:49 [Common] _BSMachError: port 12f0f; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

在装有iOS 13.5的iPhone上:

2020-05-23 20:43:34 [Common] _BSMachError: port d503; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

[textField resignFirstResponder]不能再使用了。请参阅当用户轻按其他位置时如何从文本字段中退出第一响应者?供选择。


当我想textField.becomeFirstResponder用Xcode 11.5调用时有同样的问题。这是一个错误还是我们真的需要选择一个替代方法?
SDW

1
您将不得不使用替代方法。请参阅我在回复的最后一行中发布的链接。
Jan Ehrhardt

0

对我来说,是我plist上的翻译。仔细检查您的plist是否已本地化,是否翻译了正确的隐私文本。

花了我几个小时才找到它...我一直都在遇到SFSafariView布局问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.