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

时间:2016-09-24 13:19:05

标签: objective-c cordova ios10 xcode8

一切正常,直到我用Xcode 7.3.0构建我的cordova应用程序,但是当我用Xcode 8构建相同的应用程序时,只要我从 Portrait 更改方向,它就开始在iOS 10设备上崩溃到横向,因为它在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
  • Cordova 6.3.0(iOS 4.1.0)
  • iOS 10 iPhone 6

请帮忙。

11 个答案:

答案 0 :(得分:49)

我得到了"无效功能(0x14)"无法插入COPY_SEND"调试器中的消息会阻止应用程序启动大约10秒钟。

我在文件中设置了断点,这些断点已经从项目中删除但仍然出现在Breakpoint导航器中(文件名为红色)。

我删除了所有断点,但从那以后没有看到错误消息。

答案 1 :(得分:41)

我在iOS10.0 beta阶段遇到了同样的问题,它似乎仍然存在于Xcode v8.1中。

实际上有两个不同的错误:

<强> 1 首先,正如Avaan评论的那样,您必须在info.plist中设置所有隐私使用。我相信这是你崩溃的原因。

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

Project Info

2。关于错误:

  

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

我用这个小解决方法解决了错误:

  1. 进入项目设置/常规 - &gt;部署信息,检查所有方向。
  2. General settings

    1. 构建并运行,界面应根据设备方向旋转。
    2. 撤消刚刚做的事情(取消选中您不需要的方向)。再次构建和运行,错误不应再出现。
    3. 我希望这有帮助

答案 2 :(得分:4)

在执行Core Data重置时,我恰好收到此错误,但以上解决方案均不适用于我的情况。原来是代码在UIAlert的动作中发生的结果,需要将其推送到主线程中。通过此处找到的解决方案-Error _BSMachError: (os/kern) invalid capability (20) after receiving remote notification on CloudKit record addition-并在下面针对Swift 4进行了更新:

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

答案 3 :(得分:3)

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

答案 4 :(得分:1)

结果 - 如果您调用EventKit,ContactsKit,麦克风,相机等需要权限但没有Info.plist键的应用程序将崩溃 隐私 - 使用中的位置用法说明
隐私 - 媒体库使用说明

我从https://forums.developer.apple.com/thread/48959主题

得到了这个答案

还要检查你是否忘记禁用僵尸。

答案 5 :(得分:1)

我遇到了类似的问题(请查看my question on SO)并发现我的用户界面已经创建了另一个自己的实例,同时展示了这两个实例。

如果你还没有找到问题的解决方案,我建议你使用Debug View Hierarchy-tool ...也许你遇到了和我一样的问题。

祝你好运!

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

特定的UIColor错误是UIColorBreakForOutOfRangeColorComponents。

答案 8 :(得分:1)

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

对我来说,解决方案是通过选择“硬件”>“擦除所有内容和设置...”来重置模拟器。

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

答案 9 :(得分: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]无法再使用。有关替代方法,请参见How to resign first responder from text field when user tap elsewhere?

答案 10 :(得分:0)

对我来说,是我的plist上的翻译。仔细检查如果您的plist已本地化,则会翻译适当的隐私文本。

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