Skip to content

Re-add background refresh (correct Info.plist)#7

Merged
useruserdev merged 2 commits into
mainfrom
feature-background-refresh
Jun 4, 2026
Merged

Re-add background refresh (correct Info.plist)#7
useruserdev merged 2 commits into
mainfrom
feature-background-refresh

Conversation

@useruserdev
Copy link
Copy Markdown
Owner

Brings back opportunistic background refresh so config/block changes notify without opening the app — like AltStore (also sideloaded) does.

Why it should install now (unlike the first attempt): the Info.plist is a faithful superset of the working generated plist — it restores the previously-missing CFBundleDevelopmentRegion and adds only the two background keys (UIBackgroundModes=[fetch], BGTaskSchedulerPermittedIdentifiers=[com.happwn.refresh]). Background fetch needs no entitlement, and AltStore proves a sideloaded app can ship it.

  • Restore BackgroundRefresh (BGAppRefreshTask), app wiring, Settings background toggle + min-interval (default on).
  • Refresh runs in background + on launch + pull-to-refresh.
  • Bump to 1.0.5 (build 6).

If this still fails to install, background itself is the cause (plist is now complete) and we revert; otherwise the earlier break was the malformed manual plist.

Brings back opportunistic background refresh (BGAppRefreshTask) so block/config changes can notify without opening the app — the modern equivalent of what AltStore (also sideloaded) does.

Key difference from the earlier attempt that broke install: the Info.plist is now a faithful superset of the working generated plist (adds CFBundleDevelopmentRegion that was missing) plus only the two background keys (UIBackgroundModes=[fetch], BGTaskSchedulerPermittedIdentifiers=[com.happwn.refresh]). Background fetch needs no entitlement, so it installs on a paid cert.

- Restore BackgroundRefresh (register/schedule/cancel), happwnApp wiring, Settings background toggle + interval (default on).
- Refresh now runs in background + on launch + pull-to-refresh.
- Bump to 1.0.5 (build 6).
Long-press a config row to copy just the server address (host/IP) separately from the full URI. ConfigEntry.host parses the scheme://[userinfo@]host:port form (vless, trojan, ss…) and the vmess base64-JSON 'add' field; handles IPv6 literals. Tap still copies the full config. Tests cover vless/trojan/ss/vmess/IPv6.
@useruserdev useruserdev merged commit 8ae0171 into main Jun 4, 2026
2 checks passed
@useruserdev useruserdev deleted the feature-background-refresh branch June 4, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant