Skip to content
This repository has been archived by the owner on Apr 16, 2020. It is now read-only.

NSCocoaErrorDomain Code=4097 OC工程导入的nekit报错,帮忙看一下,谢谢了 #156

Closed
harveyHW opened this issue Apr 20, 2018 · 16 comments

Comments

@harveyHW
Copy link

harveyHW commented Apr 20, 2018

我们的项目是用OC 开发的,然后我在我们的项目中使用swift新建了PacketTunnel target,使用Cartfile导入nekit 框架。

当我在host app中调用 [self.vpnManager.connection startVPNTunnelWithOptions:@{} andReturnError:&connectError];这个方法的时候,报错
There are the error logs

   connection to plug-in <private>(283BAAB5-BE93-42D1-A222-408B36BFAD40) lost

   Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to 
   service named com.tyria.supplyCrate.PacketTunnel" UserInfo= 
   {NSDebugDescription=connection to service named 
   com.tyria.supplyCrate.PacketTunnel}

   Failed to start extension com.tyria.supplyCrate.PacketTunnel: Error 
   Domain=NSCocoaErrorDomain Code=4097 "connection to service named 
   com.tyria.supplyCrate.PacketTunnel" UserInfo={NSDebugDescription=connection to 
   service named com.tyria.supplyCrate.PacketTunnel}

我不知道是什么原因导致了这个问题。检查了 info.plist、 entitlements 是没有问题的

我尝试在host app(OC工程) 中添加了nekit,MMDB,yaml 等全部框架,运行之后工程crash。必须要把这些linklibrary选择成optional才能运行工程,然而也是这个错误

随后我用swift创建了另外一个项目,用了相同的BundleID、 info.plist and entitlements. 完美运行,vpn连接成功

能告诉我什么原因吗?谢谢了。在 host app 和tunnel target里面添加了全部的frameworks都没能解决问题
I confused。 Please help me! Thanks! @zhuhaow

@harveyHW harveyHW changed the title NSCocoaErrorDomain Code=4097 OC project NSCocoaErrorDomain Code=4097 OC工程导入的nekit报错,帮忙看一下,谢谢了 Apr 20, 2018
@zhuhaow
Copy link
Owner

zhuhaow commented Apr 20, 2018

第一是你要到console里面去看到底extension没起来的原因是什么。
第二是既然要改成optional才能运行那明显是framework没有找到。

@harveyHW
Copy link
Author

@zhuhaow 但是我host app 的frameworks改成 required 会崩溃在这里

dyld`__abort_with_payload:
0x100b65cd0 <+0>:  mov    x16, #0x209
0x100b65cd4 <+4>:  svc    #0x80
->  0x100b65cd8 <+8>:  b.lo   0x100b65cf0               ; <+32>
0x100b65cdc <+12>: stp    x29, x30, [sp, #-0x10]!
0x100b65ce0 <+16>: mov    x29, sp
0x100b65ce4 <+20>: bl     0x100b65500               ; cerror_nocancel
0x100b65ce8 <+24>: mov    sp, x29
0x100b65cec <+28>: ldp    x29, x30, [sp], #0x10
0x100b65cf0 <+32>: ret    

找了很多方法都没有解决,帮忙看看呢 十分感谢
在packet target 中framework依赖全部添加了

@zhuhaow
Copy link
Owner

zhuhaow commented Apr 20, 2018

你有加到embedded binary里面么

@harveyHW
Copy link
Author

好的 谢谢大佬 thanks verymuch

@harveyHW
Copy link
Author

已经成功链接了

@harveyHW
Copy link
Author

能再问你一个问题吗?
当我创建了描述文件VPN 是可以连接的
但是当我下次连接(vpn配置列表选中了别的vpn)的时候,连接失败
请问有什么方法可以解决 Iphone切换选择我的app创建过的app描述文件呢?
麻烦了,非常感谢

@harveyHW harveyHW reopened this Apr 20, 2018
@zhuhaow
Copy link
Owner

zhuhaow commented Apr 20, 2018

猜不出来

@harveyHW
Copy link
Author

是这样的,在iphone的vpn列表当我选择了我app创建的vpn

1
这个时候能连接成功

但是在连接之前,选择了其他app创建过的vpn 就不能连接了

2

3

这个怎么让我的app 去选择呢?谢谢啦

@zhuhaow
Copy link
Owner

zhuhaow commented Apr 20, 2018

要先把你的profile enable了

@ufo22940268
Copy link
Contributor

为什么这个库需要添加到 embedded binary ?

我有看过 carthage 的文档, 是这么写的

On your application targets’ General settings tab, in the “Linked Frameworks and Libraries” section, drag and drop each framework you want to use from the Carthage/Build folder on disk

然后我在 NEKit 文档里面也没有找到这方面的描述

@zhuhaow
Copy link
Owner

zhuhaow commented Jun 15, 2018

你可以 Google 一下 embedded binary

@ufo22940268
Copy link
Contributor

@zhuhaow 谢谢

@ufo22940268
Copy link
Contributor

我认为用 embeded binary 相对于 link framework 会加大包的大小

我试过把 NEKit 的所有的依赖用 link framework 的形式导入,然后重新编译项目,发现运行是正常的.

@zhuhaow
Copy link
Owner

zhuhaow commented Jun 29, 2018

不应该只link framework就可以用动态库,不过如果你可以用的话,那就没关系

@ufo22940268
Copy link
Contributor

没有错, 除了 link framework, 还需要再 copy-framework 里面加对应的项目,但是我试了是 ok 的了.

之前怎么弄都弄不好

@zhuhaow
Copy link
Owner

zhuhaow commented Jun 29, 2018 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants