Как я могу добавить следующие дополнительные флаги компоновщика? - PullRequest
2 голосов
/ 28 октября 2010
To support OS 3.x, please set Base SDK to iPhone Device 4.0 and iPhone OS Deployment Target to iPhone OS 3.x. Extra linker flags may be needed if NSConcreteGlobalBlock and UIBackgroundTaskInvalid runtime error occur under 3.x.
The linker flags are:
-weak_framework UIKit
-weak_library /usr/lib/libSystem.B.dylib

РЕДАКТИРОВАТЬ: я все еще получаю ту же ошибку сборки, даже после ссылки: cl.ly/c69ca3f8a336d7e41256

Ответы [ 3 ]

2 голосов
/ 28 октября 2010
  • Дважды щелкните по своей цели или приложению в Xcode, чтобы открыть окно информации

  • Перейти на вкладку «Сборка»

  • Добавить "-weak_framework UIKit -weak_library /usr/lib/libSystem.B.dylib" в "Другие флаги компоновщика" (в разделе "Связывание")

1 голос
/ 23 ноября 2010

Вы, вероятно, уже сделали это, но вы переключили iOS Deployment Target на 3.2 и Base SDK на 4.x в настройках сборки?Если вы установили оба из них и добавили флаги компоновщика, то я не могу объяснить, почему вы получили ошибку сборки.

1 голос
/ 28 октября 2010

Не уверен, что вызывает проблемы со сборкой. Но как NSConcreteGlobalBlock, так и UIBackgroundTaskInvalid заставляют меня думать, что вы столкнулись с проблемами в приложении, которое использует фоновую обработку и все еще должно работать на 3.x.

Лично я никогда не сталкивался с этими проблемами и, конечно же, никогда не сталкивался со слабосвязанными UIKit или libSystem. Даже в приложениях, которые отлично работают на 3.x и поддерживают функции 4.0, такие как блоки и фоновое аудио, мне не требовались исправления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...