fixed not working --exists

This commit is contained in:
Incont 2015-05-15 14:05:27 +03:00
parent 125cd8de64
commit 9e45cc0edb

View File

@ -1272,13 +1272,12 @@ void list_files(AMDeviceRef device)
} }
} }
int app_exists(AMDeviceRef device) void app_exists(AMDeviceRef device)
{ {
if (bundle_id == NULL) { if (bundle_id == NULL) {
printf("Bundle id is not specified\n"); printf("Bundle id is not specified\n");
return false; return;
} }
AMDeviceConnect(device); AMDeviceConnect(device);
assert(AMDeviceIsPaired(device)); assert(AMDeviceIsPaired(device));
assert(AMDeviceValidatePairing(device) == 0); assert(AMDeviceValidatePairing(device) == 0);
@ -1289,21 +1288,17 @@ int app_exists(AMDeviceRef device)
NSArray *a = [NSArray arrayWithObjects:@"CFBundleIdentifier", nil]; NSArray *a = [NSArray arrayWithObjects:@"CFBundleIdentifier", nil];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:a forKey:@"ReturnAttributes"]; NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:a forKey:@"ReturnAttributes"];
CFDictionaryRef options = (CFDictionaryRef)optionsDict; CFDictionaryRef options = (CFDictionaryRef)optionsDict;
CFDictionaryRef result = nil; CFDictionaryRef result = nil;
afc_error_t resultStatus = AMDeviceLookupApplications(device, options, &result); afc_error_t resultStatus = AMDeviceLookupApplications(device, options, &result);
assert(resultStatus == 0); assert(resultStatus == 0);
CFDictionaryRef app_dict = CFDictionaryGetValue(result, cf_bundle_id); CFDictionaryRef app_dict = CFDictionaryGetValue(result, cf_bundle_id);
bool appExists = (app_dict == NULL) ? false : true;
int appExists = (app_dict == NULL) ? -1 : 0; printf("%s", appExists ? "true\n" : "false\n");
CFRelease(cf_bundle_id); CFRelease(cf_bundle_id);
assert(AMDeviceStopSession(device) == 0); assert(AMDeviceStopSession(device) == 0);
assert(AMDeviceDisconnect(device) == 0); assert(AMDeviceDisconnect(device) == 0);
return appExists;
} }
void copy_file_callback(afc_connection* afc_conn_p, const char *name,int file) void copy_file_callback(afc_connection* afc_conn_p, const char *name,int file)
@ -1554,7 +1549,7 @@ void handle_device(AMDeviceRef device) {
} else if (strcmp("rm", command) == 0) { } else if (strcmp("rm", command) == 0) {
remove_path(device); remove_path(device);
} else if (strcmp("exists", command) == 0) { } else if (strcmp("exists", command) == 0) {
exit(app_exists(device)); app_exists(device);
} else if (strcmp("uninstall_only", command) == 0) { } else if (strcmp("uninstall_only", command) == 0) {
uninstall_app(device); uninstall_app(device);
} }