Подтвердить что ты не робот

Как я могу развернуть (создать .ipa) приложение iphone, используя 'cordova build ios --release'?

Я создал приложение iOS для helloworld с cordova, используя документацию. Приложение успешно запускается, когда я запускаю cordova emulate ios. То, что я не могу сделать, пока развертывается при запуске cordova build --release. Он не создает никаких файлов .ipa. Все, что я нахожу, это Helloworld.build файл в каталоге PROJECT_ROOT/platforms/ios/build. Я что-то пропустил?

4b9b3361

Ответ 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.