Как собрать .ipa для React Native?

Я пришел к разработке React Native, не имея опыта разработки под iOS. Хочу построить релиз. .ipa файл — в идеале из командной строки, но официальная документация Работа на устройстве очень краткая.

Мне удалось развернуть приложения на моем iPhone вручную через XCode, но все же я не могу найти ни одного релизного файла IPA. Я обновил свой код директивами #ifdef DEBUG, чтобы сделать его более универсальным.

Есть ли способ создать приложение в режиме выпуска только через командную строку? Если нет, то каков официальный способ создания приложения RN?

Сейчас я использую RN 0.20.

Возможный дубликат Как создать и развернуть приложение для реагирования из командной строки?   —  person sodik    schedule 18.02.2016

как я уже упоминал, я уже использую #ifdef трюк. К сожалению, в другом вопросе не упоминается, как его построить (за исключением того, что это было возможно с fastlane).   —  person sodik    schedule 18.02.2016

См. также:  Добро пожаловать в MVVM-маршрутизатор с SwiftUI и Combine
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 4
  1. sodik

    Во-первых, вам нужно создать бандл таким образом:

    react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios
    

    Затем вы должны прокомментировать эту строку в AppDelegate.m:

    jsCodeLocation = [NSURL URLWithString:@"https://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
    

    и раскомментируйте это:

    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    

    Затем вам нужно перейти к Product -> Archive in Xcode и выполнить шаги, основанные на желаемом выпуске.

    ты знаешь, где в архиве я могу найти .ipa файл? person sodik; 18.02.2016

    После того, как вы заархивируете, вы можете сохранить свой файл IPA, если я хорошо помню. Во всплывающем окне, которое появляется после успешного построения архива. person sodik; 18.02.2016

    в XCode 7.2.1 он просто создал каталог с несколькими файлами, но без файла IPA. person sodik; 19.02.2016

    Проверьте это person sodik; 19.02.2016

    1. На моем компьютере нет файла IPA (find / -name "*.ipa" -print) 2. В опции архивирования нет дальнейших шагов, просто создается .xcarchive папка. person sodik; 22.02.2016

    Обратите внимание: если продукт ›Архив недоступен, убедитесь, что в качестве пункта назначения выбрано стандартное устройство iOS, а не один из симуляторов. person sodik; 08.03.2016

    Вы должны быть зарегистрированы как разработчик Apple, чтобы создать .ipa. Затем перейдите в раздел Продукт ›Архив› Экспорт … Тем не менее, это ответило на мой вопрос о том, как на самом деле создать производственную сборку, так что большое спасибо Г. Хамайде person sodik; 03.05.2016

    Как это сделать в windows? В окнах нет xcode. person sodik; 28.01.2017

    Должно быть —платформа ios, а не —платформа iOS. iOS приведет к ошибке Неизвестная платформа person sodik; 18.02.2017

    У меня в AppDelegate.m есть только эта строка: jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot: @ index.ios fallbackResource: nil]; Что я должен прокомментировать / раскомментировать? person sodik; 06.03.2017

    Я запускаю вашу команду, она говорит: «Папка назначения ресурсов не задана, пропускается …», и я не могу загрузить изображение. person sodik; 15.02.2018

    @ G.Hamaide Вы знаете, как использовать командную строку, не открывая XCode? person sodik; 13.03.2018

    Этот ответ устарел — текущие версии RN имеют настраиваемый сценарий оболочки в процессе сборки xcode, который автоматически запускает объединение для вас, поэтому в этом больше нет необходимости. person sodik; 29.03.2018

  2. sodik

    Я не могу прокомментировать приведенный выше ответ, он правильный, но вам нужно начать со следующей команды, чтобы она работала:

    react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios
    

    разница — ios вместо iOS

    в противном случае это приведет к следующей ошибке:

    ProjectPath/node_modules/promise/lib/done.js:10
      throw err;
      ^
    

    На какой ответ вы отвечаете? выше относительно person sodik; 15.02.2018

  3. sodik

    Вы должны установить Scheme на Release.

    Из документов у вас есть два пути.

    Для этого перейдите в Продукт → Схема → Изменить схему (cmd + ‹), убедитесь, что вы находитесь на вкладке« Выполнить »сбоку, и установите в раскрывающемся списке« Конфигурация сборки »значение« Выпуск ».

    or

    Вы также можете использовать React Native CLI для выполнения этой операции, используя параметр —configuration со значением Release (например, react-native run-ios —configuration Release).

    Затем вы можете сгенерировать свой архив как обычно.

    https://facebook.github.io/react-native/docs/running-on-device.html#building-your-app-for-production.

    Это правильный обновленный ответ, остальные старые person sodik; 17.05.2017

    @jperelli — эта команда запускается на симуляторе, она запускает симулятор, а продукт — «Release-iphonesimulator», а не «Release-iphoneos». person sodik; 10.07.2018

    это ответ, как бежать, а не как строить. все в сообществе React, кажется, ошибаются в этих двух вещах person sodik; 25.03.2019

  4. sodik

    iOS

    1. Откройте проект iOS с помощью Xcode, используя следующую простую команду из корневой папки.

      xed ./ios
      
    2. Теперь вставьте следующую команду в терминал

      react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
      

      введите описание изображения здесь

    3. Отредактируйте схему из Xcode следующим образом:

      Продукт — ›Схема -› Редактировать схему

      введите описание изображения здесь

      Изменить схему для выпуска

      введите описание изображения здесь

    Теперь у вас есть автономный проект Xcode, и он готов к сборке / выпуску, как собственный проект Xcode.

    Ответ от: https://medium.com/better-programming/create-ipa-and-apk-from-react-native-72fe53c6a8db.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: