mirror of
https://github.com/NohamR/Tweaks.git
synced 2026-08-26 10:12:32 +00:00
Add BGSessionFix tweak for simulator sessions
This commit is contained in:
3
BGSessionFix/.gitignore
vendored
Normal file
3
BGSessionFix/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.theos/
|
||||
packages/
|
||||
.DS_Store
|
||||
7
BGSessionFix/BGSessionFix.plist
Normal file
7
BGSessionFix/BGSessionFix.plist
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
Filter = {
|
||||
Bundles = (
|
||||
"app.bundle.id",
|
||||
);
|
||||
};
|
||||
}
|
||||
14
BGSessionFix/Makefile
Normal file
14
BGSessionFix/Makefile
Normal file
@@ -0,0 +1,14 @@
|
||||
TARGET = iphone:latest:15.0
|
||||
ARCHS = arm64
|
||||
INSTALL_TARGET_PROCESSES = app.bundle.id
|
||||
|
||||
include $(THEOS)/makefiles/common.mk
|
||||
|
||||
TWEAK_NAME = BGSessionFix
|
||||
BGSessionFix_FILES = Tweak.x
|
||||
BGSessionFix_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -std=c++11 -x objective-c++
|
||||
BGSessionFix_CXXFLAGS = -std=c++11
|
||||
BGSessionFix_FRAMEWORKS = Foundation UIKit
|
||||
BGSessionFix_LDFLAGS = -lstdc++
|
||||
|
||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||
16
BGSessionFix/Tweak.x
Normal file
16
BGSessionFix/Tweak.x
Normal file
@@ -0,0 +1,16 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
%hook NSURLSessionConfiguration
|
||||
|
||||
+ (NSURLSessionConfiguration *)backgroundSessionConfigurationWithIdentifier:(NSString *)identifier {
|
||||
NSLog(@"[BGSessionFix] Redirecting background session '%@' to a default (foreground) config", identifier);
|
||||
return [NSURLSessionConfiguration defaultSessionConfiguration];
|
||||
}
|
||||
|
||||
// // Deprecated pre-iOS8 entry point
|
||||
// + (NSURLSessionConfiguration *)backgroundSessionConfiguration:(NSString *)identifier {
|
||||
// NSLog(@"[BGSessionFix] backgroundSessionConfiguration:'%@' (deprecated API) -> forcing default config", identifier);
|
||||
// return [NSURLSessionConfiguration defaultSessionConfiguration];
|
||||
// }
|
||||
|
||||
%end
|
||||
9
BGSessionFix/control
Normal file
9
BGSessionFix/control
Normal file
@@ -0,0 +1,9 @@
|
||||
Package: xyz.nohamr.bgsessionfix
|
||||
Name: BGSessionFix
|
||||
Version: 1.0.0
|
||||
Architecture: iphoneos-arm
|
||||
Description: Redirects background NSURLSession configs to foreground configs (Simulator dev use)
|
||||
Maintainer: NohamR
|
||||
Author: NohamR
|
||||
Section: Tweaks
|
||||
Depends: mobilesubstrate (>= 0.9.5000)
|
||||
12
BGSessionFix/index.md
Normal file
12
BGSessionFix/index.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Tweak that redirects background NSURLSession configurations to foreground (default) configurations, for use when developing/debugging apps in the iOS Simulator.
|
||||
|
||||
The iOS Simulator does not run `nsurlsessiond`, the system daemon that backs `NSURLSession` background transfers. Any app that uses `backgroundSessionConfigurationWithIdentifier:` to download or upload files (so the transfer can survive app suspension/termination on a real device) will fail in the Simulator with errors such as:
|
||||
|
||||
```
|
||||
No XPC connection in Simulator
|
||||
BackgroundSession <...> an error occurred on the xpc connection to setup
|
||||
the background session: ... connection to service named com.apple.nsurlsessiond
|
||||
BackgroundSession <...> failed to create a background NSURLSessionDownloadTask,
|
||||
as remote session is unavailable
|
||||
Task <...> finished with error [-1] "unknown error"
|
||||
```
|
||||
Reference in New Issue
Block a user