2014-06-24 4 views
0

Я пытаюсь создать систему, которая может скомпилировать проект с учетом исходного кода (проект приложения SDK Кордовы) и необязательные параметры настройки, аналогичные Build Google PhoneGap. За кулисами я пытаюсь использовать команду xcodebuild, чтобы создать окончательный IPA и вернуть его пользователю. Все проекты, разработанные с использованием Кордовы и готова к компиляции с XCode с помощью следующих команд:Создайте IPA из проекта Cordova с помощью команды xcodebuild

cordova platform add ios

cordova prepare ios

Проблема заключается в том, что xcodebuild требует схем проекта, которые в соответствии с моим поиском, на субъект генерируется только при открытии проекта с помощью графического интерфейса XCode.

Есть ли способ генерировать схемы для проекта, используя только инструменты командной строки? Являются ли схемы одинаковыми для каждого проекта, поэтому я могу скопировать статический один в каждый проект, который я хочу скомпилировать?

Я на самом деле не XCode парень или Mac парень по этому вопросу, так что я был бы рад за четкое объяснение, как и почему решение работает, если есть один ...

Редактировать :

Просто чтобы прояснить мои окончательные intestions:

При открытии проекта с помощью XCode GUI (двойной щелчок на .xcodeproj) он генерирует схемы, а затем я могу использовать команду xcodebuild успешно без каких-либо проблем. Но мне нужно, чтобы эта система была полностью автоматизирована, чтобы пользователь мог загрузить его проект, построенный с помощью рамки Cordova, и эта система генерирует для него IPA, если он это выберет. (Он также может выбирать другие платформы, которые поддерживаются картой Cordova). Как и в случае с конструкцией PhoneGap.

+0

С моей точки зрения, нет никакого способа создать приложение без использования Xcode. Но если вышеупомянутые команды работают, вы можете просто открыть '*.xcodeproj', дважды щелкните в Xcode и запустите операцию сборки/архива. Если сборка уже завершена, самый большой шаг уже сделан! Имейте в виду, что вам необходимо подписать свое приложение с правильным профилем подготовки, который уже включил все идентификаторы устройств, с которыми вы хотите протестировать ваше приложение, в противном случае его сложно разделить с вашими тестерами (например, с помощью hockeyapp/testflight) – Sebastian

+0

@Sebastian Когда я открываю проект с помощью графического интерфейса XCode (дважды щелкните по .xcodeproj), он генерирует схемы, а затем я могу без проблем использовать команду 'xcodebuild'. Но мне нужно, чтобы эта система была полностью автоматизирована, чтобы пользователь мог загрузить его проект, построенный с помощью рамки Cordova, и эта система генерирует для него IPA, если он это выберет. (Он также может выбирать другие платформы, которые поддерживаются картой Кордовы) – UnTraDe

+0

Затем используйте некоторую систему задач (например, 'grunt' и откройте' .xcodeproj' с помощью команды оболочки, дождитесь, пока будут сгенерированы схемы, убейте xcode и запустите 'xcodebuild', если она должна быть полностью автоматизирована. – Sebastian

ответ

2

Вы можете сгенерировать программы программным способом, используя скрипт сборки, который будет запущен CLI Cordova до сборки для iOS. Я написал сообщение в блоге на этом here, но вот резюме:

Я решил использовать xcodeproj Рубиновый камень, вы можете получить это с:

sudo gem install xcodeproj 

Затем создайте Крюк скрипт «fix_xcode_schemes.rb» в крючки папку вашего проекта Кордова, установите его на 755 права доступа к файлу, так что это исполняемый файл и поместить его в сценарий:

#!/usr/bin/env ruby 
require 'xcodeproj' 
xcproj = Xcodeproj::Project.open("platforms/ios/schemedemo.xcodeproj") 
xcproj.recreate_user_schemes 
xcproj.save 

Настройка платформы/Иос/schemedemo.xcodeproj в соответствии с названием проекта.

Затем, чтобы запустить сценарий изменения файла Config.xml вашего проекта и добавьте:

<platform name="ios"> 
    <hook type="after_platform_add" src="hooks/fix_xcode_schemes.rb" /> 
    ... 
</platform> 

Полный код и Github на блоге я связан. Здесь я использую after_platform_add, поэтому CLI Cordova добавит схемы после добавления платформы iOS. Для существующего проекта вы можете захотеть поменять его для before_prepare или before_build, чтобы добавить схемы, если вы не хотите удалять и повторно добавлять платформу ios, чтобы использовать мой оригинальный пример. Документация Cordova Hook: here.

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