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