2016-02-18 3 views
39

Я прихожу к Реагированию на основе развития без предыдущего опыта разработки iOS. Я хочу создать релиз .IPA-файл - в идеале от командной строки, но официальная документация Running On Device очень короткая.Как создать .IPA для React Native?

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

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

В настоящее время я использую RN 0.20.

+0

Возможный дубликат [Как построить и развернуть среагировать родное приложение из командной строки?] (Http://stackoverflow.com/questions/32885433/how-to-build-and-deploy- a-react-native-app-from-command-line) –

+0

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

ответ

34

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

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

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

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

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

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

Тогда вам нужно перейти к продукту -> Архив в Xcode и выполнить шаги, основанные на желаемом выпуске

+1

Знаете ли вы, где в архиве я могу найти файл .ipa? – sodik

+0

Как только вы архивируете, вы можете сохранить свой файл IPA, если я хорошо помню. Из всплывающего окна, которое появляется при успешном выполнении архива. –

+0

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

13

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

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

разница «ИОС» вместо «прошивки»

, если не будет давать следующее сообщение об ошибке:

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

На какой ответ вы отвечаете? «выше» относится к –

13

Вы должны установить схему освободить.

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

To do this, go to Product → Scheme → Edit Scheme (cmd + <), make sure you're in the Run tab from the side, and set the Build Configuration dropdown to Release.

или

You can also use the React Native CLI to perform this operation using the option --configuration with the value Release (e.g. react-native run-ios --configuration Release).

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

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

+4

Это правильный обновленный ответ, остальные старые – jperelli

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