3

アクセシビリティ インスペクターは私の KIF テストでオンになっています (明らかに、KIF が機能するために必要です)。

UI テストを実行できるように、KIF テストが完了したときに Accessibility Inspector をオフにするにはどうすればよいですか?

(シミュレーターの設定アプリから「手動で」オフにすることは解決策ではありません。コードから呼び出したり、ターゲットに設定したりできるものを探していますか...?)

4

2 に答える 2

1

Stew Gleadow のブログで以下を見ました。

次の行を変更するだけです。

CFPreferencesSetValue(CFSTR("ApplicationAccessibilityEnabled"), kCFBooleanFalse, accessibilityDomain, kCFPreferencesAnyUser, kCFPreferencesAnyHost); 

に変更kCFBooleanTruekCFBooleanFalseます。

+ (void)_enableAccessibilityInSimulator {
    NSAutoreleasePool *autoreleasePool = [[NSAutoreleasePool alloc] init];
    NSString *appSupportLocation = @"/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport";

    NSDictionary *environment = [[NSProcessInfo processInfo] environment];
    NSString *simulatorRoot = [environment objectForKey:@"IPHONE_SIMULATOR_ROOT"];
    if (simulatorRoot) {
        appSupportLocation = [simulatorRoot stringByAppendingString:appSupportLocation];
    }

    void *appSupportLibrary = dlopen([appSupportLocation fileSystemRepresentation], RTLD_LAZY);

    CFStringRef (*copySharedResourcesPreferencesDomainForDomain)(CFStringRef domain) = dlsym(appSupportLibrary, "CPCopySharedResourcesPreferencesDomainForDomain");

    if (copySharedResourcesPreferencesDomainForDomain) {
        CFStringRef accessibilityDomain = copySharedResourcesPreferencesDomainForDomain(CFSTR("com.apple.Accessibility"));

        if (accessibilityDomain) {
            CFPreferencesSetValue(CFSTR("ApplicationAccessibilityEnabled"), kCFBooleanFalse, accessibilityDomain, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
            CFRelease(accessibilityDomain);
        }
    }

    [autoreleasePool drain];
}
于 2016-05-08T22:40:10.237 に答える
1

デフォルトではオンになっていません。手動でオンにする必要があります。

于 2015-12-28T21:15:43.977 に答える