当我像这样注册 CoreWLAN 通知(带有保留的界面)时:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(recieveNetworkNotificationAndRedirectToMainThread:)
name:CWSSIDDidChangeNotification
object:nil];
只有当我禁用所有权利时我才会收到通知。所有默认权利都不允许我接收此(或其他 CoreWLAN)通知。
有任何想法吗?
10.7.4
编辑1:
权利参考页面没有提供任何帮助。
编辑2:
伪造通知工作正常:
[[NSNotificationCenter defaultCenter]
postNotificationName:CWSSIDDidChangeNotification
object:self];
并且也没有收到任何其他 CoreWLAN 通知。
我确信这是我缺少的一个简单的权利......这是带有 Growl 临时异常的权利文件(删除临时异常也没有效果):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.temporary-exception.apple-events</key>
<string>com.Growl.GrowlHelperApp</string>
<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
<string>GrowlApplicationBridgePathway</string>
</dict>
</plist>
编辑3:
使用旧的 k 前缀通知名称为 10.6 编译也无效。
编辑4:
来自日志的更多信息:
AppName (39009) 拒绝系统套接字
进程:AppName [39009] 路径:
/Users/username/Library/Developer/Xcode/DerivedData/AppName-fnxrpqnodsouovcaxgiocvnfpqor/Build/Products/Release/AppName/Contents/MacOS/AppName 加载地址:0x10d23f000 标识符:AppName 版本:
??? (???) 代码类型:X86-64(本机)父进程:debugserver [39007]日期/时间:2012-07-20 13:17:11.851 -0700 操作系统版本:Mac OS X 10.7.4 (11E2705) 报告版本:7
回溯:0 libsystem_kernel.dylib 0x00007fff98704e76插座+ 10 1 CoreWLAN 0x00007fff951f4a6f Apple80211EventMonitoringInit2 + 53 2 CoreWLAN
0x00007fff951e6dc4 - [CWInterface initWithInterfaceName:] + 1358 3
CoreWLAN 0x00007fff951e412d + [CWInterface interfaceWithName:] + 52 4 CoreWLAN
0x00007fff951e41a8 + [CWInterface接口] + 98
编辑5:
在 sandboxd 中找到了拒绝 system-socket 的参考,但还没有帮助。