Apple, кажется, вносит значительные изменения в платформу Yosemite и CoreWLAN. Я хотел бы использовать его новый API, цитируя заголовочный файл:
/*!
* @method
*
* @param type
* A CWEventType value.
*
* @param error
* An NSError object passed by reference, which upon return will contain the error if an error occurs.
* This parameter is optional.
*
* @result
* A BOOL value indicating whether or not an error occurred. YES indicates no error occurred.
*
* @abstract
* Register for specific Wi-Fi event notifications.
*
* @discussion
* Requires the <i>com.apple.wifi.events</i> entitlement.
*/
- (BOOL)startMonitoringEventWithType:(CWEventType)type error:(out NSError **)error NS_AVAILABLE_MAC(10_10);
и установите для CWEventType значение: CWEventTypeSSIDDidChange
В нем говорится, что для этого требуются права, но я не могу запустить его на своем Mac. Сообщение об ошибке:
Приложение неожиданно закрылось. Сообщение от отладчика: Прервано из-за ошибки подписи кода.
И мой файл прав (в котором я подозреваю проблему) выглядит так:
<?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.wifi.events</key>
<true/>
</dict>
</plist>
и я устанавливаю путь для подписи кода в настройках сборки для цели. Кстати говоря, если я исключаю локальный файл прав, приложение запускается, но ведет себя не так, как ожидалось. Исследуемый API возвращает объект ошибки со следующим описанием:
Error Domain=com.apple.wifi.request.error Code=4 "The operation couldn’t be completed. (com.apple.wifi.request.error error 4.)"
Это определенно головокружение, или, по крайней мере, я надеюсь, что иначе я полный идиот. У меня есть определенный идентификатор приложения для моего приложения в центре участников, а также определенный профиль разработки (хотя мне это не нужно, поскольку я использую профиль разработчика с подстановочными знаками).
Заранее спасибо.