diff --git a/RootHelper/control b/RootHelper/control index 9b9d9112..772c4c30 100644 --- a/RootHelper/control +++ b/RootHelper/control @@ -1,6 +1,6 @@ Package: com.opa334.trollstoreroothelper Name: trollstoreroothelper -Version: 1.3 +Version: 1.3.1 Architecture: iphoneos-arm Description: An awesome tool of some sort!! Maintainer: opa334 diff --git a/RootHelper/entitlements.plist b/RootHelper/entitlements.plist index a477f6c8..1071ba43 100644 --- a/RootHelper/entitlements.plist +++ b/RootHelper/entitlements.plist @@ -17,6 +17,8 @@ com.apple.private.security.storage.AppBundles + com.apple.private.security.storage.MobileDocuments + com.apple.private.MobileContainerManager.allowed com.apple.private.MobileInstallationHelperService.InstallDaemonOpsEnabled diff --git a/Shared/TSPresentationDelegate.m b/Shared/TSPresentationDelegate.m index 57b0887c..d45227b5 100644 --- a/Shared/TSPresentationDelegate.m +++ b/Shared/TSPresentationDelegate.m @@ -59,23 +59,20 @@ + (void)startActivity:(NSString*)activity [self startActivity:activity withCancelHandler:nil]; } -+ (void)stopActivityWithCompletion:(void (^)(void))completion ++ (void)stopActivityWithCompletion:(void (^)(void))completionBlock { if(!self.activityController) return; [self.activityController dismissViewControllerAnimated:YES completion:^ { self.activityController = nil; - if(completion) - { - completion(); - } + if(completionBlock) completionBlock(); }]; } -+ (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion ++ (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completionBlock { - [self.presentationViewController presentViewController:viewControllerToPresent animated:flag completion:completion]; + [self.presentationViewController presentViewController:viewControllerToPresent animated:flag completion:completionBlock]; } @end \ No newline at end of file diff --git a/TrollHelper/Resources/Info.plist b/TrollHelper/Resources/Info.plist index 453795d9..18e33416 100644 --- a/TrollHelper/Resources/Info.plist +++ b/TrollHelper/Resources/Info.plist @@ -52,7 +52,7 @@ iPhoneOS CFBundleVersion - 1.3 + 1.3.1 LSRequiresIPhoneOS UIDeviceFamily diff --git a/TrollHelper/control b/TrollHelper/control index fb421267..153abbe7 100644 --- a/TrollHelper/control +++ b/TrollHelper/control @@ -1,6 +1,6 @@ Package: com.opa334.trollstorehelper Name: TrollStore Helper -Version: 1.3 +Version: 1.3.1 Architecture: iphoneos-arm Description: Helper utility to install and manage TrollStore! Maintainer: opa334 diff --git a/TrollStore/Resources/Info.plist b/TrollStore/Resources/Info.plist index 5180442e..09b4f0e1 100644 --- a/TrollStore/Resources/Info.plist +++ b/TrollStore/Resources/Info.plist @@ -50,7 +50,7 @@ iPhoneOS CFBundleVersion - 1.3 + 1.3.1 LSRequiresIPhoneOS UIDeviceFamily diff --git a/TrollStore/TSAppInfo.m b/TrollStore/TSAppInfo.m index 8bfe5477..bc77c88f 100644 --- a/TrollStore/TSAppInfo.m +++ b/TrollStore/TSAppInfo.m @@ -412,22 +412,24 @@ - (NSError*)sync_loadInfo return nil; } -- (void)loadBasicInfoWithCompletion:(void (^)(NSError*))completionHandler +- (void)loadBasicInfoWithCompletion:(void (^)(NSError*))completionBlock { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - completionHandler([self sync_loadBasicInfo]); + if(completionBlock) completionBlock([self sync_loadBasicInfo]); }); } -- (void)loadInfoWithCompletion:(void (^)(NSError*))completionHandler +- (void)loadInfoWithCompletion:(void (^)(NSError*))completionBlock { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - completionHandler([self sync_loadInfo]); + if(completionBlock) completionBlock([self sync_loadInfo]); }); } - (void)enumerateAllInfoDictionaries:(void (^)(NSString* key, NSObject* value, BOOL* stop))enumerateBlock { + if(!enumerateBlock) return; + __block BOOL b_stop = NO; [_cachedInfoDictionary enumerateKeysAndObjectsUsingBlock:^(NSString* key, NSObject* value, BOOL* stop) { @@ -455,6 +457,8 @@ - (void)enumerateAllInfoDictionaries:(void (^)(NSString* key, NSObject* value, B - (void)enumerateAllEntitlements:(void (^)(NSString* key, NSObject* value, BOOL* stop))enumerateBlock { + if(!enumerateBlock) return; + __block BOOL b_stop = NO; [_cachedEntitlementsByBinarySubpaths enumerateKeysAndObjectsUsingBlock:^(NSString* binarySubpath, NSDictionary* binaryInfoDictionary, BOOL* stop_1) @@ -475,6 +479,8 @@ - (void)enumerateAllEntitlements:(void (^)(NSString* key, NSObject* value, BOOL* - (void)enumerateAvailableIcons:(void (^)(CGSize iconSize, NSUInteger iconScale, NSString* iconPath, BOOL* stop))enumerateBlock { + if(!enumerateBlock) return; + if(_cachedInfoDictionary) { NSString* iconName = nil; diff --git a/TrollStore/TSAppTableViewController.m b/TrollStore/TSAppTableViewController.m index 46ff1417..d82498eb 100644 --- a/TrollStore/TSAppTableViewController.m +++ b/TrollStore/TSAppTableViewController.m @@ -111,38 +111,43 @@ - (void)_setUpNavigationBar { UIAction* installFromFileAction = [UIAction actionWithTitle:@"Install IPA File" image:[UIImage systemImageNamed:@"doc.badge.plus"] identifier:@"InstallIPAFile" handler:^(__kindof UIAction *action) { - UTType* ipaType = [UTType typeWithFilenameExtension:@"ipa" conformingToType:UTTypeData]; - UTType* tipaType = [UTType typeWithFilenameExtension:@"tipa" conformingToType:UTTypeData]; + dispatch_async(dispatch_get_main_queue(), ^ + { + UTType* ipaType = [UTType typeWithFilenameExtension:@"ipa" conformingToType:UTTypeData]; + UTType* tipaType = [UTType typeWithFilenameExtension:@"tipa" conformingToType:UTTypeData]; - UIDocumentPickerViewController* documentPickerVC = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:@[ipaType, tipaType]]; - //UIDocumentPickerViewController* documentPickerVC = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.itunes.ipa", @"com.opa334.trollstore.tipa"] inMode:UIDocumentPickerModeOpen]; - documentPickerVC.allowsMultipleSelection = NO; - documentPickerVC.delegate = self; + UIDocumentPickerViewController* documentPickerVC = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:@[ipaType, tipaType]]; + documentPickerVC.allowsMultipleSelection = NO; + documentPickerVC.delegate = self; - [TSPresentationDelegate presentViewController:documentPickerVC animated:YES completion:nil]; + [TSPresentationDelegate presentViewController:documentPickerVC animated:YES completion:nil]; + }); }]; UIAction* installFromURLAction = [UIAction actionWithTitle:@"Install from URL" image:[UIImage systemImageNamed:@"link.badge.plus"] identifier:@"InstallFromURL" handler:^(__kindof UIAction *action) { - UIAlertController* installURLController = [UIAlertController alertControllerWithTitle:@"Install from URL" message:@"" preferredStyle:UIAlertControllerStyleAlert]; + dispatch_async(dispatch_get_main_queue(), ^ + { + UIAlertController* installURLController = [UIAlertController alertControllerWithTitle:@"Install from URL" message:@"" preferredStyle:UIAlertControllerStyleAlert]; - [installURLController addTextFieldWithConfigurationHandler:^(UITextField *textField) { - textField.placeholder = @"URL"; - }]; + [installURLController addTextFieldWithConfigurationHandler:^(UITextField *textField) { + textField.placeholder = @"URL"; + }]; - UIAlertAction* installAction = [UIAlertAction actionWithTitle:@"Install" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) - { - NSString* URLString = installURLController.textFields.firstObject.text; - NSURL* remoteURL = [NSURL URLWithString:URLString]; + UIAlertAction* installAction = [UIAlertAction actionWithTitle:@"Install" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) + { + NSString* URLString = installURLController.textFields.firstObject.text; + NSURL* remoteURL = [NSURL URLWithString:URLString]; - [TSInstallationController handleAppInstallFromRemoteURL:remoteURL completion:nil]; - }]; - [installURLController addAction:installAction]; + [TSInstallationController handleAppInstallFromRemoteURL:remoteURL completion:nil]; + }]; + [installURLController addAction:installAction]; - UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - [installURLController addAction:cancelAction]; + UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + [installURLController addAction:cancelAction]; - [TSPresentationDelegate presentViewController:installURLController animated:YES completion:nil]; + [TSPresentationDelegate presentViewController:installURLController animated:YES completion:nil]; + }); }]; UIMenu* installMenu = [UIMenu menuWithChildren:@[installFromFileAction, installFromURLAction]]; diff --git a/TrollStore/TSInstallationController.m b/TrollStore/TSInstallationController.m index 0c5d2481..9d1a2361 100644 --- a/TrollStore/TSInstallationController.m +++ b/TrollStore/TSInstallationController.m @@ -93,7 +93,7 @@ + (void)presentInstallationAlertForFile:(NSString*)pathToIPA completion:(void (^ UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction* action) { - completionBlock(NO, nil); + if(completionBlock) completionBlock(NO, nil); }]; [installAlert addAction:cancelAction]; diff --git a/TrollStore/control b/TrollStore/control index 528b4002..51cd9518 100644 --- a/TrollStore/control +++ b/TrollStore/control @@ -1,6 +1,6 @@ Package: com.opa334.trollstore Name: TrollStore -Version: 1.3 +Version: 1.3.1 Architecture: iphoneos-arm Description: An awesome application! Maintainer: opa334