Я создал приложение iOS для helloworld с cordova
, используя документацию. Приложение успешно запускается, когда я запускаю cordova emulate ios
. То, что я не могу сделать, пока развертывается при запуске cordova build --release
. Он не создает никаких файлов .ipa
. Все, что я нахожу, это Helloworld.build
файл в каталоге PROJECT_ROOT/platforms/ios/build
. Я что-то пропустил?
Как я могу развернуть (создать .ipa) приложение iphone, используя 'cordova build ios --release'?
Ответ 1
Я нашел эту команду, которая работала для меня:
cordova build ios --device
cd platforms/ios/build/device
/usr/bin/xcrun -sdk iphoneos PackageApplication "$(pwd)/$PROJECT_NAME.app" -o "$(pwd)/$PROJECT_NAME.ipa"
Источник: http://www.splinter.com.au/xcode-4-command-line-builds-of-iphone-apps/
Я запускал @MD. Сначала Mohiuddin Ahmed Ruby script, который изменил бы мой файл xcodeproj. Я не уверен, что это было необходимо, но я так не думаю.
Отредактировано для уточнения процесса, добавив команду cordova build
, как предложено комментариями.
Ответ 2
Если вы используете cordova ios 3.9.0 или новее, вы можете использовать эту команду для создания .ipa
непосредственно из CLI без дополнительных команд:
cordova build ios --device --release
Вам понадобится файл build.json
в корневом каталоге вашего проекта
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"provisioningProfile": "your-dev-provisioning-profile-UUID-here"
},
"release": {
"codeSignIdentity": "iPhone Distribution",
"provisioningProfile": "your-distribution-provisioning-profile-UUID-here"
}
}
}
Чтобы получить UUID, я открываю файл .mobileprovision
в текстовом редакторе и ищу 'UUID', не уверен, есть ли более простой способ его найти.
Если с помощью Xcode 8 для build.json
требуется поле developmentTeam
и packageType
, но не требуется больше профилей подготовки, также codeSignIdentity
должен быть iPhone Developer
для отладки и выпуска:
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "app-store"
}
}
}
http://cordova.apache.org/docs/en/6.x/guide/platforms/ios/index.html#using-buildjson
Ответ 3
Наконец-то я нашел способ автоматизировать это, используя xcodeproj, xcode и этот ruby script:
require 'xcodeproj'
xcproj = Xcodeproj::Project.open("HelloWorld.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save
И затем в каталоге PROJECT_ROOT/platforms/ios/
эта команда помогла мне сгенерировать мой *.ipa
:
xcodebuild -project HelloWorld.xcodeproj -exportArchive -exportFormat ipa -archivePath $(pwd)/HelloWorld.xcarchive -exportPath $(pwd)/HelloWorld.ipa CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -alltargets -configuration Release
Мысль о том, что мы можем подписать наш. ipa позже:)
Ответ 4
Вы можете попробовать новый инструмент из http://fir.im.
У них есть инструмент fir cli, написанный на рубине. Вы можете установить его с помощью следующей команды:
sudo gem install fir-cli --no-ri --no-rdoc
Подпишите учетную запись (все бесплатно, как старый добрый тест) и получите токен из своего профиля. В командной строке выполните:
fir login
Предоставьте свой токен.
CD в ваш каталог, где находится ваш .xcodeproj.
fir build_ipa .
Через некоторое время (если успех сборки) вы найдете свой ipa в своей папке./build_ipa.