2014-01-09 5 views
2

У меня есть 10.9/Xcode 5, и я пытаюсь написать приложение Cocoa для Snow Leopard. Я отключил автоматический макет и установил цель развертывания 10,6, но архивированное приложение не будет запущено на 10.6, потому что оно не может загрузить nib (вывод консоли). Из того, что я прочитал, мне нужно использовать сборку мусора вместо ARC. Если это так, как мне изменить свой проект на создание и запуск для 10.6? Спасибо за ваш совет.Xcode 5 Разработка для OS X 10.6

ответ

2

Во-первых, убедитесь, что сам XIB сконфигурирован для сборки на 10.6. В правой панели Interface Builder, вы должны увидеть это:

enter image description here

Если вы ориентируетесь на 64-бит 10.6, то вы можете использовать ARCLite, который просто отлично, и я настоятельно рекомендую его. Единственное, что вы действительно бросаете, это автоматическое обнуление слабых ссылок. Вам просто нужно отказаться от ARC, если вы идете 32-бит. Я рекомендую sicking до 64-битного, если вы можете помочь. Вы отдаете много, если вы нацеливаете 32-битные. Чтобы использовать ARCLite, вам ничего не нужно менять. Он автоматически выбирается при компиляции программы ARC для 10.6.

В качестве примечания: да, то, что вы делаете, совершенно возможно. Я все еще нацелен на 10.5 с настройкой 10.9/Xcode5.

+0

Обратите внимание, что мы нашли плохой crasher, когда мы нацелились на 10.5 с Xcode 5. Для некоторых клиентов они разбились в потоке 5 в вызываемой функции Apple, например BUF_MEM_GROW(). Этот крах появился только на 10,5 машинах и никогда не появлялся за 5 лет до этого приложения. Это было 32-битное, не ARC. –

+0

Я не знаю, у меня на голове, если машина, на которую я нацеливаюсь, является 64- или 32-разрядной, но поскольку я уже прошел шаги, перечисленные выше, и это не сработало, я угадываю что он 32-бит. Как мне преобразовать мой проект, чтобы поддержать это? Я начал развиваться, когда был введен ARC, поэтому раньше я этого не делал. – user2105505

+0

Преобразование в ручное управление памятью просто требует отключения «Objective-C Automatic Reference Counting» в настройках сборки. Но вам нужно будет изучить ручное управление памятью. ocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html Но дважды проверьте, что вы на 32-битной машине. Когда вы говорите «это не сработало», вы имеете в виду конкретно, что он жаловался, что не может найти ARClite? Есть много вещей, на которые распространяется «это не сработало». –

Смежные вопросы