From 152e268486ff3f3d7092a42094a8ae3ae05afc07 Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Mon, 10 Dec 2018 12:41:00 +0100 Subject: [PATCH 1/7] Improved AD password management --- src/Plugins/ADPass/ADPass/HITPADPass.m | 47 +++++++++++++++----------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/Plugins/ADPass/ADPass/HITPADPass.m b/src/Plugins/ADPass/ADPass/HITPADPass.m index f64b540..0a60c83 100644 --- a/src/Plugins/ADPass/ADPass/HITPADPass.m +++ b/src/Plugins/ADPass/ADPass/HITPADPass.m @@ -140,18 +140,13 @@ - (void)periodicAction:(NSTimer *)timer { asl_log(NULL, NULL, ASL_LEVEL_INFO, "No AD Password expiry date found, hidding menu item."); self.menuItem.hidden = YES; } - } - (void)updateTitle { NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:[NSDate date] toDate:self.passwordExpiryDate options:0]; long daysBeforeExpiry = (long)[components day]; - if (daysBeforeExpiry == 10522613) { - self.menuItem.title = self.neverExpireInfo; - } else { - self.menuItem.title = [NSString stringWithFormat:self.willExpireFormat, daysBeforeExpiry]; - } + self.menuItem.title = [NSString stringWithFormat:self.willExpireFormat, daysBeforeExpiry]; if (self.lastADRequestSucceded) { self.menuItem.target = self; @@ -213,24 +208,38 @@ - (void)getPasswordExpiryDate { // Thank you Microsoft to use Jan 1, 1601 at 00:00 UTC as reference date… if (expiryTime) { asl_log(NULL, NULL, ASL_LEVEL_INFO, "AD Password expiry date requested with success."); - NSDateComponents *adRefenreceDateComponents = [[NSDateComponents alloc] init]; - [adRefenreceDateComponents setDay:1]; - [adRefenreceDateComponents setMonth:1]; - [adRefenreceDateComponents setYear:1601]; - [adRefenreceDateComponents setEra:1]; - NSDate *adRefenreceDate = [[NSCalendar calendarWithIdentifier:NSCalendarIdentifierISO8601] dateFromComponents:adRefenreceDateComponents]; - NSTimeInterval expiryTimeInterval = [expiryTime integerValue] / 10000000.0; + if ([expiryTime integerValue] == 0x7FFFFFFFFFFFFFFF) { + asl_log(NULL, NULL, ASL_LEVEL_INFO, "AD Password expiry date is mean no expiry."); + self.passwordExpiryDate = nil; + self.lastADRequestSucceded = YES; + [[NSUserDefaults standardUserDefaults] setInteger:-1 forKey:kHITPADPassExpiryTimeKey]; + } else { + asl_log(NULL, NULL, ASL_LEVEL_INFO, "AD Password expiry date is a valid date."); - - self.passwordExpiryDate = [NSDate dateWithTimeInterval:expiryTimeInterval sinceDate:adRefenreceDate]; - self.lastADRequestSucceded = YES; - - [[NSUserDefaults standardUserDefaults] setInteger:[self.passwordExpiryDate timeIntervalSince1970] forKey:kHITPADPassExpiryTimeKey]; + NSDateComponents *adRefenreceDateComponents = [[NSDateComponents alloc] init]; + [adRefenreceDateComponents setDay:1]; + [adRefenreceDateComponents setMonth:1]; + [adRefenreceDateComponents setYear:1601]; + [adRefenreceDateComponents setEra:1]; + + NSDate *adRefenreceDate = [[NSCalendar calendarWithIdentifier:NSCalendarIdentifierISO8601] dateFromComponents:adRefenreceDateComponents]; + NSTimeInterval expiryTimeInterval = [expiryTime integerValue] / 10000000.0; + + + self.passwordExpiryDate = [NSDate dateWithTimeInterval:expiryTimeInterval sinceDate:adRefenreceDate]; + self.lastADRequestSucceded = YES; + + [[NSUserDefaults standardUserDefaults] setInteger:[self.passwordExpiryDate timeIntervalSince1970] forKey:kHITPADPassExpiryTimeKey]; + } } else { asl_log(NULL, NULL, ASL_LEVEL_INFO, "Unable to reach AD, working with old expiry date for AD Password."); NSInteger expirySince1970 = [[NSUserDefaults standardUserDefaults] integerForKey:kHITPADPassExpiryTimeKey]; - self.passwordExpiryDate = expirySince1970 > 0 ? [NSDate dateWithTimeIntervalSince1970:expirySince1970] : nil; + if (expirySince1970 == -1) { + self.passwordExpiryDate = nil; + } else { + self.passwordExpiryDate = expirySince1970 > 0 ? [NSDate dateWithTimeIntervalSince1970:expirySince1970] : nil; + } self.lastADRequestSucceded = NO; } From 60f62c4de62ab028a392d9ea524c8d7bacd5767b Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:19:54 +0100 Subject: [PATCH 2/7] Add sample content for the EnrollMe scripts --- example/EnrollMe/ReadMe.md | 14 +++++++++++ .../EnrollMe/com.github.ygini.Hello-IT.plist | 25 +++++++++++++++++++ example/EnrollMe/createPackage.command | 16 ++++++++++++ example/EnrollMe/pkg_scripts/postinstall | 17 +++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 example/EnrollMe/ReadMe.md create mode 100644 example/EnrollMe/com.github.ygini.Hello-IT.plist create mode 100755 example/EnrollMe/createPackage.command create mode 100755 example/EnrollMe/pkg_scripts/postinstall diff --git a/example/EnrollMe/ReadMe.md b/example/EnrollMe/ReadMe.md new file mode 100644 index 0000000..5fae7c0 --- /dev/null +++ b/example/EnrollMe/ReadMe.md @@ -0,0 +1,14 @@ +## Enroll Me +--- +##### Author: [Yoann Gini](https://www.github.com/ygini) + +### Description: +This initial settings must be used with additional [Hello IT script made to trigger the DEP enrollment popup](https://github.com/ygini/ygini-scripts-macos/tree/master/EnrollMe). + +Main idea would be to replace your current Hello IT settings with a single item presenting the red state and asking for enrollment. + +The user clicking on the Hello IT item will be admin for few seconds, just the time for macOS to show the enrollment notification. + +Once the notification is shown, the user does not need to be admin to continue the process. + +Non-DEP scenario isn't supported and providing help text to the user isn't handled. In this scenario, you are supposed to send an e-mail or something to the end users, explaining what they are supposed to do. \ No newline at end of file diff --git a/example/EnrollMe/com.github.ygini.Hello-IT.plist b/example/EnrollMe/com.github.ygini.Hello-IT.plist new file mode 100644 index 0000000..ed266dd --- /dev/null +++ b/example/EnrollMe/com.github.ygini.Hello-IT.plist @@ -0,0 +1,25 @@ + + + + + content + + + functionIdentifier + public.script.item + settings + + title + + fr + Enrôler votre Mac + en + Enroll this Mac + + script + com.github.ygini.enrollme.hello-it.sh + + + + + \ No newline at end of file diff --git a/example/EnrollMe/createPackage.command b/example/EnrollMe/createPackage.command new file mode 100755 index 0000000..2a06c43 --- /dev/null +++ b/example/EnrollMe/createPackage.command @@ -0,0 +1,16 @@ +#!/bin/bash + +SRC_DIR="$(dirname ${BASH_SOURCE[0]})" +PKG_VERSION="$(date +%Y.%m.%d).1" + +PKG_ROOT=$(mktemp -d) +echo "####### Create package" + +mkdir -p "${PKG_ROOT}/Library/Preferences" +cp -r "${SRC_DIR}/com.github.ygini.Hello-IT.plist" "${PKG_ROOT}/Library/Preferences" + +pkgbuild --root "${PKG_ROOT}" --identifier "com.github.ygini.enrollme.hello-it.prefs" --scripts "${SRC_DIR}/pkg_scripts" --version "${PKG_VERSION}" "${SRC_DIR}/HelloIT-EnrollMe-Prefs-${PKG_VERSION}.pkg" + +rm -rf "${PKG_ROOT}" + +exit 0 diff --git a/example/EnrollMe/pkg_scripts/postinstall b/example/EnrollMe/pkg_scripts/postinstall new file mode 100755 index 0000000..395f53e --- /dev/null +++ b/example/EnrollMe/pkg_scripts/postinstall @@ -0,0 +1,17 @@ +#!/bin/bash + +killall cfprefsd + +while read shortname +do + uid=$(id -u "$shortname") + + if [ -n "$uid" ] + then + /bin/launchctl asuser "$uid" /bin/launchctl unload /Library/LaunchAgents/com.github.ygini.hello-it.plist + /bin/launchctl asuser "$uid" /bin/launchctl remove com.github.ygini.hello-it + /bin/launchctl asuser "$uid" /bin/launchctl load /Library/LaunchAgents/com.github.ygini.hello-it.plist + fi +done < <(ps aux | grep "MacOS/[F]inder" | awk '{print $1}') + +exit 0 From 06b43535bfeff4e60f4f1572af9e94d302101b7f Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:20:04 +0100 Subject: [PATCH 3/7] Avoid pkgs on git --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c964cd8..6a67e1b 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ DerivedData *.hmap *.ipa *.xcuserstate +*.pkg # CocoaPods # From 7732c18fe77d0c4be836e71dfb0a7001f53da832 Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:21:01 +0100 Subject: [PATCH 4/7] Fix an issue related to internationalization in text strings for items and make it compatible for 10.4+ instead of 10.12+ --- src/HITDevKit/HITDevKit/HITBasicPlugin.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/HITDevKit/HITDevKit/HITBasicPlugin.m b/src/HITDevKit/HITDevKit/HITBasicPlugin.m index 7583528..e9db6fe 100644 --- a/src/HITDevKit/HITDevKit/HITBasicPlugin.m +++ b/src/HITDevKit/HITDevKit/HITBasicPlugin.m @@ -57,7 +57,7 @@ - (NSString*)localizedString:(id)dictionaryOrArray { for (NSString *localIdentifier in @[ [[NSLocale currentLocale] localeIdentifier], - [[NSLocale currentLocale] languageCode], + [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode], @"en"]) { selectedValue = [dictionaryOrArray objectForKey:localIdentifier]; if (selectedValue) { From b7f32882e5ea145f5ac9118b5bedaf3248ba6390 Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:21:20 +0100 Subject: [PATCH 5/7] Ready for a new version --- src/HITDevKit/HITDevKit/Info.plist | 2 +- src/Hello IT.xcodeproj/project.pbxproj | 17 ++++++++++++++++- src/Hello IT/Info.plist | 2 +- .../OpenApplication/OpenApplication/Info.plist | 2 +- .../OpenResource/OpenResource/Info.plist | 2 +- src/Plugins/Quit/Quit/Info.plist | 2 +- .../ScriptedItem/ScriptedItem/Info.plist | 2 +- src/Plugins/Separator/Separator/Info.plist | 2 +- src/Plugins/SubMenu/SubMenu/Info.plist | 2 +- src/Plugins/TestHTTP/TestHTTP/Info.plist | 2 +- src/Plugins/Title/Title/Info.plist | 2 +- 11 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/HITDevKit/HITDevKit/Info.plist b/src/HITDevKit/HITDevKit/Info.plist index 5103356..949183f 100644 --- a/src/HITDevKit/HITDevKit/Info.plist +++ b/src/HITDevKit/HITDevKit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 NSHumanReadableCopyright Copyright © 2015 Yoann Gini (Open Source Project). All rights reserved. NSPrincipalClass diff --git a/src/Hello IT.xcodeproj/project.pbxproj b/src/Hello IT.xcodeproj/project.pbxproj index 68e4319..de8703e 100644 --- a/src/Hello IT.xcodeproj/project.pbxproj +++ b/src/Hello IT.xcodeproj/project.pbxproj @@ -146,6 +146,13 @@ remoteGlobalIDString = F83294A41F773076009DA574; remoteInfo = ADPass; }; + F8CF084221A729190070C049 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F8D61B8520C8731A00DE2453 /* CachetHQ.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F811AD2F2149A07E00BD15AD; + remoteInfo = CachetHQIncidents; + }; F8D61B8920C8731A00DE2453 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F8D61B8520C8731A00DE2453 /* CachetHQ.xcodeproj */; @@ -511,6 +518,7 @@ isa = PBXGroup; children = ( F8D61B8A20C8731A00DE2453 /* CachetHQComponent.hitp */, + F8CF084321A729190070C049 /* CachetHQIncidents.hitp */, ); name = Products; sourceTree = ""; @@ -730,6 +738,13 @@ remoteRef = F83294B21F773078009DA574 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + F8CF084321A729190070C049 /* CachetHQIncidents.hitp */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = CachetHQIncidents.hitp; + remoteRef = F8CF084221A729190070C049 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; F8D61B8A20C8731A00DE2453 /* CachetHQComponent.hitp */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; @@ -791,7 +806,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -o errexit\nset -o nounset\n\nVERSION=$(git rev-list HEAD | wc -l)\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $VERSION\" \"${INFOPLIST_FILE}\""; + shellScript = "set -o errexit\nset -o nounset\n\nVERSION=$(git rev-list HEAD | wc -l)\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $VERSION\" \"${INFOPLIST_FILE}\"\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/src/Hello IT/Info.plist b/src/Hello IT/Info.plist index 5c54748..a35a3ca 100644 --- a/src/Hello IT/Info.plist +++ b/src/Hello IT/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/src/Plugins/OpenApplication/OpenApplication/Info.plist b/src/Plugins/OpenApplication/OpenApplication/Info.plist index 095bca3..c3ca7d3 100644 --- a/src/Plugins/OpenApplication/OpenApplication/Info.plist +++ b/src/Plugins/OpenApplication/OpenApplication/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.open.application NSHumanReadableCopyright diff --git a/src/Plugins/OpenResource/OpenResource/Info.plist b/src/Plugins/OpenResource/OpenResource/Info.plist index 7bf0bc3..ee7edfb 100644 --- a/src/Plugins/OpenResource/OpenResource/Info.plist +++ b/src/Plugins/OpenResource/OpenResource/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.open.resource NSHumanReadableCopyright diff --git a/src/Plugins/Quit/Quit/Info.plist b/src/Plugins/Quit/Quit/Info.plist index be4e3cb..b61a7fd 100644 --- a/src/Plugins/Quit/Quit/Info.plist +++ b/src/Plugins/Quit/Quit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.quit NSHumanReadableCopyright diff --git a/src/Plugins/ScriptedItem/ScriptedItem/Info.plist b/src/Plugins/ScriptedItem/ScriptedItem/Info.plist index 21735ff..6053587 100644 --- a/src/Plugins/ScriptedItem/ScriptedItem/Info.plist +++ b/src/Plugins/ScriptedItem/ScriptedItem/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.script.item NSHumanReadableCopyright diff --git a/src/Plugins/Separator/Separator/Info.plist b/src/Plugins/Separator/Separator/Info.plist index 3c60227..5cca587 100644 --- a/src/Plugins/Separator/Separator/Info.plist +++ b/src/Plugins/Separator/Separator/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.separator NSHumanReadableCopyright diff --git a/src/Plugins/SubMenu/SubMenu/Info.plist b/src/Plugins/SubMenu/SubMenu/Info.plist index 6c69442..564672e 100644 --- a/src/Plugins/SubMenu/SubMenu/Info.plist +++ b/src/Plugins/SubMenu/SubMenu/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.submenu NSHumanReadableCopyright diff --git a/src/Plugins/TestHTTP/TestHTTP/Info.plist b/src/Plugins/TestHTTP/TestHTTP/Info.plist index 96a36ca..9958691 100644 --- a/src/Plugins/TestHTTP/TestHTTP/Info.plist +++ b/src/Plugins/TestHTTP/TestHTTP/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.test.http NSHumanReadableCopyright diff --git a/src/Plugins/Title/Title/Info.plist b/src/Plugins/Title/Title/Info.plist index d33793d..261f7cc 100644 --- a/src/Plugins/Title/Title/Info.plist +++ b/src/Plugins/Title/Title/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 288 + 298 HITPFunctionIdentifier public.title NSHumanReadableCopyright From 1aa422301df088700fde6b0c8b31b47884a864ce Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:23:23 +0100 Subject: [PATCH 6/7] Update app version number according to release branch --- src/Hello IT/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hello IT/Info.plist b/src/Hello IT/Info.plist index a35a3ca..7680218 100644 --- a/src/Hello IT/Info.plist +++ b/src/Hello IT/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleSignature ???? CFBundleVersion From 116fdd47a8ab69bd42d8830e7e7c082db0e78230 Mon Sep 17 00:00:00 2001 From: Yoann Gini Date: Wed, 23 Jan 2019 10:24:59 +0100 Subject: [PATCH 7/7] Version 1.4.2 ready for publication --- src/HITDevKit/HITDevKit/Info.plist | 2 +- src/Hello IT/Info.plist | 2 +- src/Plugins/OpenApplication/OpenApplication/Info.plist | 2 +- src/Plugins/OpenResource/OpenResource/Info.plist | 2 +- src/Plugins/Quit/Quit/Info.plist | 2 +- src/Plugins/ScriptedItem/ScriptedItem/Info.plist | 2 +- src/Plugins/Separator/Separator/Info.plist | 2 +- src/Plugins/SubMenu/SubMenu/Info.plist | 2 +- src/Plugins/TestHTTP/TestHTTP/Info.plist | 2 +- src/Plugins/Title/Title/Info.plist | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/HITDevKit/HITDevKit/Info.plist b/src/HITDevKit/HITDevKit/Info.plist index 949183f..5237667 100644 --- a/src/HITDevKit/HITDevKit/Info.plist +++ b/src/HITDevKit/HITDevKit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 NSHumanReadableCopyright Copyright © 2015 Yoann Gini (Open Source Project). All rights reserved. NSPrincipalClass diff --git a/src/Hello IT/Info.plist b/src/Hello IT/Info.plist index 7680218..69d5b2b 100644 --- a/src/Hello IT/Info.plist +++ b/src/Hello IT/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/src/Plugins/OpenApplication/OpenApplication/Info.plist b/src/Plugins/OpenApplication/OpenApplication/Info.plist index c3ca7d3..aefa7bb 100644 --- a/src/Plugins/OpenApplication/OpenApplication/Info.plist +++ b/src/Plugins/OpenApplication/OpenApplication/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.open.application NSHumanReadableCopyright diff --git a/src/Plugins/OpenResource/OpenResource/Info.plist b/src/Plugins/OpenResource/OpenResource/Info.plist index ee7edfb..b1edb85 100644 --- a/src/Plugins/OpenResource/OpenResource/Info.plist +++ b/src/Plugins/OpenResource/OpenResource/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.open.resource NSHumanReadableCopyright diff --git a/src/Plugins/Quit/Quit/Info.plist b/src/Plugins/Quit/Quit/Info.plist index b61a7fd..b93fc8f 100644 --- a/src/Plugins/Quit/Quit/Info.plist +++ b/src/Plugins/Quit/Quit/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.quit NSHumanReadableCopyright diff --git a/src/Plugins/ScriptedItem/ScriptedItem/Info.plist b/src/Plugins/ScriptedItem/ScriptedItem/Info.plist index 6053587..79395a3 100644 --- a/src/Plugins/ScriptedItem/ScriptedItem/Info.plist +++ b/src/Plugins/ScriptedItem/ScriptedItem/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.script.item NSHumanReadableCopyright diff --git a/src/Plugins/Separator/Separator/Info.plist b/src/Plugins/Separator/Separator/Info.plist index 5cca587..ae6ce1f 100644 --- a/src/Plugins/Separator/Separator/Info.plist +++ b/src/Plugins/Separator/Separator/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.separator NSHumanReadableCopyright diff --git a/src/Plugins/SubMenu/SubMenu/Info.plist b/src/Plugins/SubMenu/SubMenu/Info.plist index 564672e..46433bf 100644 --- a/src/Plugins/SubMenu/SubMenu/Info.plist +++ b/src/Plugins/SubMenu/SubMenu/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.submenu NSHumanReadableCopyright diff --git a/src/Plugins/TestHTTP/TestHTTP/Info.plist b/src/Plugins/TestHTTP/TestHTTP/Info.plist index 9958691..98ac321 100644 --- a/src/Plugins/TestHTTP/TestHTTP/Info.plist +++ b/src/Plugins/TestHTTP/TestHTTP/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.test.http NSHumanReadableCopyright diff --git a/src/Plugins/Title/Title/Info.plist b/src/Plugins/Title/Title/Info.plist index 261f7cc..b4e1dbf 100644 --- a/src/Plugins/Title/Title/Info.plist +++ b/src/Plugins/Title/Title/Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleVersion - 298 + 304 HITPFunctionIdentifier public.title NSHumanReadableCopyright