Gena
Поддержка старых версий iOS это хорошо, но реальность сейчас такова, что: 1. iOS <=8 современный Xcode билдить не умеет (вроде бы), т.е. для такого билда придется ставить старый Xcode на старую версию macOS 2. iOS 9 присутствует на относительно небольшом наборе девайсов, который просто физически нельзя обновить - iPhone 4s и какие-то iPad, которых впрочем в России не мало 3. на остальных девайсах почти все обновились до последних iOS...
Gena
4. последние версии RN поддерживают iOS >=9
Ivan
а кто подскажет, че этот CocoaPods ругается?(
он тебе ниже не пишет команду для обновления списка либ?
Ivan
там же есть чего-то желтенькое
zamir
zamir
это путь
Ivan
а, ну ставь 9.0
zamir
все четко
zamir
спасибо
zamir
а что значит эта строчка? типа теперь в Xcode только этот файл юзать?
Dmitry
Если поды
zamir
а если я хочу просто сбилдить проект6 архив сделать для заливки в стор?
zamir
то тоже через этот файл открывать ?
zamir
спасибо
Gena
а что значит эта строчка? типа теперь в Xcode только этот файл юзать?
Это значит, что у тебя теперь есть workspace - коллекция проектов, в данном случае из двух: один - твой проект он практически идентичен предидущему состоянию (до интеграции с подами), в нем можешь менять что хочешь... второй проект Pod - тебе менять нельзя, за его содержимое отвечают cocoapods, если ты там что-то поменяешь, то при следующем запуске cocopods вернут всё назад... в этом проекте описаны правила сборки всех внешних зависимостей. Чтоб собрать конечный продукт, тебе нужны оба проекта, вот за это и отвечает workspace... Если ты откроешь в Xcode только xcodeproj, то ничего не соберется...
zamir
а этот image-crop-picker все равно же надо линковать? просто я все установил а он тут пишет что ImagePicker undefined (
Stas
Привет, мне нужно текст вертикально расположить, но что-то я делаю не так, не знаете что именно?
Stas
Stas
Stas
Stas
transform: [{ rotate: '270deg' }]
Eugene
transform: [{ rotate: '90deg'}] ?
Stas
не, он просто в другую сторону повернет весь блок проблема в том, что он сперва просчитывает размер текстового контейнера, а потом уже его поворачивает
Stas
Stas
Stas
Stas
Если поменять немного код, то так он правильно рисует, но есть ненужное пространство вокруг текста
Alexandr
а если крутить текст вместе с блоками?
Petr E
Вот так я генерирую бандл без минификации react-native bundle --entry-file index.js --platform ios --dev false --minify false --bundle-output ios/main.jsbundle --assets-dest ios Но когда я запускаю через Xcode приложение, то запускается Metro Bundler и судя по всему генерирует свой новый main.jsbundle но уже без нужного мне флага. Вопрос: Как на iOS сгенерить бандл вручную и именно с этим сгенерированным бандлом запустить приложение? Как-то можно отдельно задать флаги для метро бандлера? Где-то можно прокинуть свою команду для метро метро бандлера?
Stas
Я не уверен, но может быть это то, что нужно Xcode запускает скрипт отсюда ../node_modules/react-native/scripts/react-native-xcode.sh Может нужно в сам скрипт внести нужные параметры
Petr E
Я не уверен, но может быть это то, что нужно Xcode запускает скрипт отсюда ../node_modules/react-native/scripts/react-native-xcode.sh Может нужно в сам скрипт внести нужные параметры
да, все верно, но я не смогу закомитить это и при переустановке ноде_модулес придется снова лезть и править (а как известно переустанавливать приходится, а иногда и часто)... В андройде можно сгенерировать бандл и .apk с этим бандлом, а тут я так понимаю такой трюк сделать не удастся?
Stas
можешь попробовать что-то типа https://github.com/ds300/patch-package и навесить это на post install
Gena
да, все верно, но я не смогу закомитить это и при переустановке ноде_модулес придется снова лезть и править (а как известно переустанавливать приходится, а иногда и часто)... В андройде можно сгенерировать бандл и .apk с этим бандлом, а тут я так понимаю такой трюк сделать не удастся?
Всё удастся... вопрос только в том, что тут примерно сотня способов это сделать... и как бы непонятно какой из них вам лучше подойдет... (вот способ патчить что-то в node_modules... один из дурацких, некоторые ещё в post_install scripts в package.json это запихивают)))
Stas
а в принципе, можно же этот скрипт скопировать куда-то и в xcode поменять путь
Gena
Самых главных тут две вещи: 1. Алгоритм поиска js кода в приложении... в дебаге оно умеет ходить в metro по http... но, насколько я помню сперва пытается поискать у себя в файловой системе 2. логика работы react-native-xcode.sh там сейчас уже довольно гибко всё сделано... но мы до сих пор как раз так и делаем... у нас своя версия в проекте лежит и именно её Xcode вызывает
Gena
В последнее время в нашей копии ничего такого нет, просто удален xip-резолвинг за ненадобностью, чтоб приложение не "светилось" на чужие сервисы...
Gena
А, ещё всякие nvm вырезаны )
Gena
а где она лежит? в ./node_modules/react-native/scripts/react-native-xcode.sh?
Кто? Наша модифицированная версия? В проекте в ios/Scripts/react-native-xcode.sh
Petr E
Кто? Наша модифицированная версия? В проекте в ios/Scripts/react-native-xcode.sh
а как научили xcode вызывать именно этот файл а не из node_modules?
Gena
а как научили xcode вызывать именно этот файл а не из node_modules?
Это совсем просто ))) Надо зайти в св-ва проекта, в раздел Build Phases, там будет
Gena
Вот так http://vovkasm.skitch.vovkasm.org/rn-xcode_21A73760.png
Petr E
Это совсем просто ))) Надо зайти в св-ва проекта, в раздел Build Phases, там будет
нууу емана, как все просто))) спасибо большое, сейчас попробую
Petr E
Это совсем просто ))) Надо зайти в св-ва проекта, в раздел Build Phases, там будет
Этот скрипт вызывается ведь и для дебаг и для прод режимов, верно?
Gena
Этот скрипт вызывается ведь и для дебаг и для прод режимов, верно?
Да, но в самом скрипте есть очень хитрая логика, которая для Debug* конфигураций, просто завершает скрипт
Gena
Вот здесь: https://github.com/facebook/react-native/blob/0.57-stable/scripts/react-native-xcode.sh#L17-L27
Gena
Заодно в памяти воскресил, что там сейчас конкретно делается... логика этого куска кода такая, как я писал уже, довольно гибкая: - Если установлена переменна окружения SKIP_BUNDLING, не собирать бандл. - Если скрипт вызван не из Xcode (нет имени билд конфигурации), выйти с ошибкой - Если имя билд конфигурации не начинается с Debug, то собрать бандл с DEV=false - Иначе: - Если мы билдимся для симулятора, не собирать бандл (подразумевается использование metro), но если выставлена переменная окружения FORCE_BUNDLING, то собирать. - Если мы билдимся для девайса, то собирать бандл (если из-за SKIP_BUNDLING перед этим не вышли)
Gena
Переменными окружения можно рулить тоже из Xcode... но вот нам проще было просто скопировать этот скрипт и заточить под наши нужды (тем более, что копировать мы их начали ещё до появления этих FORCE_BUNDLING и SKIP_BUNDLING)
Gena
А можно еще совет, что там ненужного можно и стоит выкинуть?
Я выкидываю вот это https://github.com/facebook/react-native/blob/0.57-stable/scripts/react-native-xcode.sh#L97-L104 (потому что не хочу светить внутренние ip всяким xip сервисам, да и не нужно это: во первых не всегда правильно работает, а во вторых мы с девайса в metro не ходим) И вот это: https://github.com/facebook/react-native/blob/0.57-stable/scripts/react-native-xcode.sh#L56-L67 Потому что, не хочется внезапно обнаружить, что проект пытается собраться выключенной старой нодой из nvm или nodenv...
Gena
Ещё... именно в этом скрипте у нас модифицирован вызов бандлера... он билдит ещё source map, который вместе с бандлом потом отправляется в sentry
roman G
ребят, а можно сделать так, чтобы при нажатии на TextInput ничего не происходило? (сейчас открывается клавиатура)
roman G
А зачем тогда textinput?
Ну он красивый + можно усстановить maxLength, placeholder
Ilya
Ну он красивый + можно усстановить maxLength, placeholder
Стили можно же такие же накатить. А зачем maxlength если ввести ничего нельзя?
roman G
roman G
У меня такое окно, инфа поступает из готовой клавиатуры
Ivan
Ну юзай просто Text
Serhii
Там есть параметр
Serhii
editable вроде
roman G
editable вроде
Да, он спасибо
Gena
Уже не знаю, все права дал
1. Проверьте, что скрипт имеет права на выполнение, ls -l react-native-xcode.sh должен возвращать что-то типа: -rwxr-xr-x 1 vovkasm staff 2592 Oct 5 23:01 react-native-xcode.sh Важно наличие символов x в первой колонке, если их нет, то дать права можно командой: chmod a+x react-native-xcode.sh 2. Посмотрите, как у меня на скриншоте написано )
Gena
спасибо, х действительно не стоял, а откуда он берет переменные для скрипта?
Переменные для скрипта ему Xcode выставляет. Это общие системные переменные окружения плюс настройки Xcode. Подробнее здесь: https://help.apple.com/xcode/mac/10.1/#/itcaec37c2a6 (помимо этого в Xcode проект можно добавлять любые собственные build settings)
Jack
Ребят, как сделать косые кнопки, в форме параллелограмма???
Jack
Стилями
В touchable обернуть же надо всё
Jack
А когда оборачиваю и ставлю кнопки рядом они перекрывают друг друга
Jack
Flex верстка в помощь
Можно поподробнее о том как это решить с помощью flex или подскажите где почитать