Не уверен, что вызывает проблемы со сборкой. Но как NSConcreteGlobalBlock, так и UIBackgroundTaskInvalid заставляют меня думать, что вы столкнулись с проблемами в приложении, которое использует фоновую обработку и все еще должно работать на 3.x.
Лично я никогда не сталкивался с этими проблемами и, конечно же, никогда не сталкивался со слабосвязанными UIKit или libSystem. Даже в приложениях, которые отлично работают на 3.x и поддерживают функции 4.0, такие как блоки и фоновое аудио, мне не требовались исправления.
Общее правило для достижения этой цели: не используйте блоки в коде, который может быть выполнен в 3.x. Поэтому начинать фоновый режим можно только в приложении (void) applicationDidEnterBackground: (UIApplication *). Этот метод делегата не существует в протоколе 3.x и поэтому не будет вызываться. Если вы будете использовать блоки в методах, которые вызываются в 3.x, это вызовет сбой.