在模拟设备(而不仅仅是物理设备)上使用iOS 11 NehospotConfiguration功能

在模拟设备(而不仅仅是物理设备)上使用iOS 11 NehospotConfiguration功能,ios,xcode,react-native,ios-simulator,Ios,Xcode,React Native,Ios Simulator,我正在使用iOS 11中的NEHotspotConfiguration类连接到已知的wifi网络。这个React本机应用程序在物理设备上运行良好,我能够使用iOS 11上的NEHotspotConfiguration类通过编程连接到网络。但是,当我尝试在模拟器中构建/运行它时,会出现以下错误,使我无法启动应用程序: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_NEHotspotConfiguration", refe

我正在使用iOS 11中的NEHotspotConfiguration类连接到已知的wifi网络。这个React本机应用程序在物理设备上运行良好,我能够使用iOS 11上的NEHotspotConfiguration类通过编程连接到网络。但是,当我尝试在模拟器中构建/运行它时,会出现以下错误,使我无法启动应用程序:

Undefined symbols for architecture x86_64:  
  "_OBJC_CLASS_$_NEHotspotConfiguration", referenced from:  
      objc-class-ref in IOSWifiManager.o  
  "_OBJC_CLASS_$_NEHotspotConfigurationManager", referenced from:  
      objc-class-ref in IOSWifiManager.o  
ld: symbol(s) not found for architecture x86_64  
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有没有办法在启用此功能的情况下继续使用模拟器测试我应用程序的其余部分,即使我无法使用此功能更改模拟器中的wifi?

可能还有其他选项,但我在一篇媒体文章的评论中找到了以下潜在答案,这篇文章让我找到了一个解决方案:

“对于遇到相同问题的任何人,我通过包装NetworkExtension导入以及与#if!TARGET_IPHONE_模拟器一起使用的代码来解决此问题。”

不过,至少对我来说,这要比这多一些。
我确实用一个
#if TARGET_OS_IPHONE&&将
@implementation ioswifimager
实现包装在ioswifimager.m文件中!TARGET_OS_SIMULATOR
,并留下了一个更简单的else语句在模拟器上构建它:

#else

@implementation IOSWifiManager  
RCT_EXPORT_MODULE();  
@end

#endif
我还进入了构建设置,并在链接其他链接器标志下将iOS模拟器和任何架构的值更改为以下内容:

"OTHER_LDFLAGS[arch=*]" = (
    "$(inherited)",
    "-ObjC",
    "-lc++",
    "-framework",
    NetworkExtension,
);
    "OTHER_LDFLAGS[sdk=iphonesimulator*]" = (
    "$(inherited)",
    "-ObjC",
    "-lc++",
);

最后,我将网络扩展框架从必需更改为可选,并确保我们支持正确的构建架构。希望这能帮助任何遇到同样问题的人

我想你是在寻找可能的复制品,所以这不是我的问题,即使它是在相同的静脉。我已经设置了以编程方式连接到Wifi网络的功能,当我在物理设备上运行它时,它工作得非常好。我的问题是,如何让应用程序在模拟器或构建机器上构建/运行?我知道我将无法在模拟器中实际使用此功能,但仍希望能够构建应用程序来测试其他功能。