get app info

This commit is contained in:
iddoeldor 2019-03-25 15:42:57 +02:00 committed by GitHub
parent 08a4df5b51
commit 5d120c0834
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,51 +1,50 @@
function dictFromNSDictionary(nsDict) { function dictFromNSDictionary(nsDict) {
var jsDict = {}; var jsDict = {};
var keys = nsDict.allKeys(); var keys = nsDict.allKeys();
var count = keys.count(); var count = keys.count();
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
var key = keys.objectAtIndex_(i); var key = keys.objectAtIndex_(i);
var value = nsDict.objectForKey_(key); var value = nsDict.objectForKey_(key);
jsDict[key.toString()] = value.toString(); jsDict[key.toString()] = value.toString();
} }
return jsDict;
return jsDict;
} }
function arrayFromNSArray(nsArray) { function arrayFromNSArray(nsArray) {
var jsArray = []; var jsArray = [];
var count = nsArray.count(); var count = nsArray.count();
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
jsArray[i] = nsArray.objectAtIndex_(i).toString(); jsArray[i] = nsArray.objectAtIndex_(i).toString();
} }
return jsArray; return jsArray;
} }
function infoDictionary() { function infoDictionary() {
if (ObjC.available && "NSBundle" in ObjC.classes) { if (ObjC.available && "NSBundle" in ObjC.classes) {
var info = ObjC.classes.NSBundle.mainBundle().infoDictionary(); var info = ObjC.classes.NSBundle.mainBundle().infoDictionary();
return dictFromNSDictionary(info); return dictFromNSDictionary(info);
} }
return null; return null;
} }
function infoLookup(key) { function infoLookup(key) {
if (ObjC.available && "NSBundle" in ObjC.classes) { if (ObjC.available && "NSBundle" in ObjC.classes) {
var info = ObjC.classes.NSBundle.mainBundle().infoDictionary(); var info = ObjC.classes.NSBundle.mainBundle().infoDictionary();
var value = info.objectForKey_(key); var value = info.objectForKey_(key);
if (value === null) { if (value === null) {
return value; return value;
} else if (value.class().toString() === "__NSCFArray") { } else if (value.class().toString() === "__NSCFArray") {
return arrayFromNSArray(value); return arrayFromNSArray(value);
} else if (value.class().toString() === "__NSCFDictionary") { } else if (value.class().toString() === "__NSCFDictionary") {
return dictFromNSDictionary(value); return dictFromNSDictionary(value);
} else { } else {
return value.toString(); return value.toString();
}
} }
return null; }
return null;
} }
console.log(JSON.stringify({ console.warn(JSON.stringify({
name: infoLookup("CFBundleName"), name: infoLookup("CFBundleName"),
bundleId: ObjC.classes.NSBundle.mainBundle().bundleIdentifier().toString(), bundleId: ObjC.classes.NSBundle.mainBundle().bundleIdentifier().toString(),
version: infoLookup("CFBundleVersion"), version: infoLookup("CFBundleVersion"),