Intereting Posts
Как я могу инициировать событие только при нажатии кнопки питания в iOS? Iphone, размер экрана iPad с портретным и ladscape режимом программным способом Загрузка массива в TableView на основе управления сегментом Непоследовательное поведение в Realm write Создание видео из массива изображений и сохранение его в кадре камеры Невозможно поместить две кнопки в NavigationItem.RightBarButtonItems в MonoTouch На iOS существует ли способ поиска ТОЛЬКО субвью с определенным тегом? Air для iOS: тестирование жестов салфетки на моем mac Как установить ширину и высоту popOverController Уровень AVCaptureSession и предварительного просмотра не заполняет весь экран Environment.GetFolderPath (Environment.SpecialFolder.Personal) возвращает разные пути в другом месте Загрузка UIWebView из фоновой выборки Использование выбора Dropbox для импорта PDF в приложение ipad Загрузка разного UINavigationController в iOS: поток навигации не работает Шаблоны клавиш iOS без отображения клавиатуры

Консольное приложение iOS будет запущено при запуске

У кого-нибудь есть советы по созданию консольного инструмента в Xcode для iOS. Я хочу запустить его через launchd и отправить запрос на сервер.

Но я не могу найти способ скомпилировать «приложение» без интерфейса в Xcode для ARM.

Спасибо

Я согласен с другим ответом , что установка iOSOpenDev обычно является правильным способом решения этой проблемы. Как только он будет установлен, он добавит новые шаблоны в Xcode. Затем вы можете добавить новую цель в свой проект с помощью File -> New -> Target …. Выберите из шаблона iOSOpenDev , который называется Command-Line Tool .

Однако, если это не вариант, или вы хотите знать, как это сделать другим способом, это не слишком сложно.

Просто создайте новый проект Xcode. Для типа проекта начните с простейшего … возможно, приложение iOS -> Приложение -> Single View .

После создания проекта просто удалите любые файлы View, ViewController или .xib, поскольку вы их не будете использовать. В вашем списке Framework (Настройки проекта -> Фазы сборки) вы можете удалить UIKit.framework или что-нибудь еще, что не графический инструмент не нужен.

Затем просто зайдите в сгенерированный файл main.m и удалите его вызов в UIApplicationMain() . Вместо этого я обычно создаю класс основного демона, а затем запускаю его с чем-то вроде этого, из main.m:

 #import "HelloDaemon.h" int main(int argc, char *argv[]) { @autoreleasepool { HelloDaemon* daemon = [[HelloDaemon alloc] init]; // start a timer so that the process does not exit. NSTimer* timer = [[NSTimer alloc] initWithFireDate: [NSDate date] interval: 1.0 target: daemon selector: @selector(run:) userInfo: nil repeats: NO]; NSRunLoop* runLoop = [NSRunLoop currentRunLoop]; [runLoop addTimer: timer forMode: NSDefaultRunLoopMode]; [runLoop run]; } return 0; } 

где мой класс daemon содержит метод run: ::

 -(void) run:(NSTimer *) timer; 

Когда вы создаете это «приложение» для iOS-устройства (а не симулятора!), Оно будет прикрепляться к нему в выходном каталоге сборки, например:

 ./Build/Products/Debug-iphoneos/HelloDaemon.app/HelloDaemon 

Исполняемый файл HelloDaemon в каталоге .app. Скопируйте это на свой iPhone и используйте его из командной строки, как демон запуска, или как угодно еще.

Рекомендации

Старый, но хороший учебник Chris Alvares о запускаемых демонах

iOSOpenDev Предоставляет именно то, что вы описали.