【问题标题】:My app is rejected. It access '/usr/lib/libpcap.A.dylib' What can I do to avoid it?我的应用程序被拒绝。它访问'/usr/lib/libpcap.A.dylib' 我该怎么做才能避免它?
【发布时间】:2011-09-08 05:46:26
【问题描述】:

我向 Mac OSX App Store 提交了一个简单的应用程序,但被拒绝了,原因如下:

“应用程序正在以下位置创建、写入或打开文件以进行读/写访问:

'/usr/lib/libpcap.A.dylib'"

我使用了一些碳代码,例如 FSMountServerVolumeSync 和 FSGetCatalogInfo。

有什么办法可以取消这个吗?

编辑: 它是由 shell 脚本而不是碳引起的:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | sed -e 's/^ *SSID: //p' -e d\")"

【问题讨论】:

  • 标准碳调用不应该引起问题。你确定你没有以任何方式使用libpcap 吗?如果你不是,那么你应该回复苹果,告诉他们你的代码在做什么,你不可能写信给libpcap.A.dylib
  • 我确信那里没有写任何东西,因为使用需要 root 访问权限。这些调用可能是非标准 API。不知道,我想我只需要写信给苹果就行了

标签: cocoa macos wifi appstore-approval ssid


【解决方案1】:

好的,我找到了导致问题的原因。 我可以使用 fs_usage 终端命令 来查看文件系统中发生的情况。我使用 "sudo fs_usage -w | grep "/usr/lib"

这就是问题所在:

15:58:03.049 stat64 /usr/lib/libpcap.A.dylib 0.000007 机场
15:58:03.049 打开 F=4 (R___) /usr/lib/libpcap.A.dylib 0.000020 机场

我使用 shell 脚本来获取活动 WIFI 连接的名称。很明显,airport打开/usr/lib/libpcap.A.dylib读取,其他库不是这样打开的(没有(R__))

编辑:这是我第二个问题的答案,但是获取 SSID 的 Bavarious 简单解决方案为我消除了所有麻烦;)

【讨论】:

    【解决方案2】:

    由于问题是由于使用了airport 命令行实用程序,如果您的目标是Mac OS X v10.6+,我建议您使用CoreWLAN framework 来获取当前无线接口的SSID:

    #import <CoreWLAN/CoreWLAN.h>
    
    CWInterface *wif = [CWInterface interface];
    if (wif) {
        // There's an active WiFi connection; get its SSID
        NSString *currentSSID = wif.ssid;
    }
    

    【讨论】:

    • 谢谢巴伐利亚!这超级简单。我用谷歌搜索了几个小时,但这从未出现过。这就是为什么我最终得到了那个狡猾的 shell 脚本。它就像一个魅力!再次感谢
    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2015-10-07
    相关资源
    最近更新 更多