Jul 27 - Update code for scheduled tasks 4
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
JQC iOS — FIX for App Store Connect error 90771
|
||||
===============================================
|
||||
Missing Info.plist value: BGTaskSchedulerPermittedIdentifiers
|
||||
|
||||
This supersedes the Info.plist from the previous background-sync drop.
|
||||
The Swift files from that drop are unchanged and still correct.
|
||||
|
||||
OVERWRITE:
|
||||
JanitorialQC/Info.plist <- now has BOTH keys, as arrays
|
||||
JanitorialQC.xcodeproj/project.pbxproj <- removes 2 inert lines
|
||||
JanitorialQC/CLAUDE.md
|
||||
|
||||
WHAT WAS WRONG
|
||||
INFOPLIST_KEY_BGTaskSchedulerPermittedIdentifiers = com.jqc.sync
|
||||
was set in build settings (Debug + Release). INFOPLIST_KEY_* only merges
|
||||
Xcode's recognised keys, and only as STRINGS.
|
||||
BGTaskSchedulerPermittedIdentifiers must be an ARRAY, so nothing valid ever
|
||||
reached the built Info.plist. It went unnoticed until UIBackgroundModes was
|
||||
added, which is what makes the App Store validator check for it.
|
||||
|
||||
pbxproj CHANGE IS EXACTLY 2 LINE DELETIONS (verified by diff):
|
||||
line 419 (Debug) INFOPLIST_KEY_BGTaskSchedulerPermittedIdentifiers = com.jqc.sync;
|
||||
line 463 (Release) INFOPLIST_KEY_BGTaskSchedulerPermittedIdentifiers = com.jqc.sync;
|
||||
Nothing else touched. If you prefer not to take a pbxproj file, delete those
|
||||
two lines by hand, or in Xcode: target > Build Settings > search "BGTask" >
|
||||
select the row > Delete.
|
||||
|
||||
DO NOT put that build setting back. A build setting overwrites the plist
|
||||
file's value at merge time and the array becomes a string again.
|
||||
|
||||
BUILD + VERIFY BEFORE UPLOADING
|
||||
1. Product > Clean Build Folder (Shift-Cmd-K)
|
||||
2. Product > Archive
|
||||
3. In Organizer: right-click the archive > Show in Finder >
|
||||
Show Package Contents > Products/Applications/JanitorialQC.app
|
||||
plutil -p JanitorialQC.app/Info.plist | grep -A3 -E "BGTask|UIBackground"
|
||||
EXPECT:
|
||||
"BGTaskSchedulerPermittedIdentifiers" => [ 0 => "com.jqc.sync" ]
|
||||
"UIBackgroundModes" => [ 0 => "processing" ]
|
||||
Both must be arrays. If either shows a bare string, stop - the build
|
||||
setting is back.
|
||||
4. Then upload. Error 90771 should be gone.
|
||||
|
||||
5. On device, confirm the console shows NO
|
||||
"[JQC] BGTaskScheduler.register FAILED" line at launch.
|
||||
Reference in New Issue
Block a user