Add --json support for list_bundle_id (#457)
* add --json support for list_bundle_id
* only get result's keys when --json is not set
Co-authored-by: ryan.luo <ryan.luo@bytedance.com>
Co-authored-by: Gabe Giosia <giosia@google.com>
diff --git a/src/ios-deploy/ios-deploy.m b/src/ios-deploy/ios-deploy.m
index e19c420..c20db70 100644
--- a/src/ios-deploy/ios-deploy.m
+++ b/src/ios-deploy/ios-deploy.m
@@ -1580,18 +1580,28 @@
check_error(AMDeviceValidatePairing(device));
check_error(AMDeviceStartSession(device));
- NSArray *a = [NSArray arrayWithObjects:@"CFBundleIdentifier", nil];
+ NSArray *a = [NSArray arrayWithObjects:
+ @"CFBundleIdentifier",
+ @"CFBundleName",
+ @"CFBundleDisplayName",
+ @"CFBundleVersion",
+ @"CFBundleShortVersionString", nil];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:a forKey:@"ReturnAttributes"];
CFDictionaryRef options = (CFDictionaryRef)optionsDict;
CFDictionaryRef result = nil;
check_error(AMDeviceLookupApplications(device, options, &result));
- CFIndex count;
- count = CFDictionaryGetCount(result);
- const void *keys[count];
- CFDictionaryGetKeysAndValues(result, keys, NULL);
- for(int i = 0; i < count; ++i) {
- NSLogOut(@"%@", (CFStringRef)keys[i]);
+ if (_json_output) {
+ NSLogJSON(@{@"Event": @"ListBundleId",
+ @"Apps": (NSDictionary *)result});
+ } else {
+ CFIndex count;
+ count = CFDictionaryGetCount(result);
+ const void *keys[count];
+ CFDictionaryGetKeysAndValues(result, keys, NULL);
+ for(int i = 0; i < count; ++i) {
+ NSLogOut(@"%@", (CFStringRef)keys[i]);
+ }
}
check_error(AMDeviceStopSession(device));