Gena
Поддержка старых версий iOS это хорошо, но реальность сейчас такова, что:
1. iOS <=8 современный Xcode билдить не умеет (вроде бы), т.е. для такого билда придется ставить старый Xcode на старую версию macOS
2. iOS 9 присутствует на относительно небольшом наборе девайсов, который просто физически нельзя обновить - iPhone 4s и какие-то iPad, которых впрочем в России не мало
3. на остальных девайсах почти все обновились до последних iOS...
Gena
4. последние версии RN поддерживают iOS >=9
zamir
Ivan
там же есть чего-то желтенькое
zamir
zamir
это путь
Ivan
а, ну ставь 9.0
zamir
все четко
zamir
спасибо
zamir
а что значит эта строчка? типа теперь в Xcode только этот файл юзать?
Dmitry
Dmitry
Если поды
zamir
а если я хочу просто сбилдить проект6 архив сделать для заливки в стор?
zamir
то тоже через этот файл открывать ?
Gena
zamir
спасибо
Gena
а что значит эта строчка? типа теперь в Xcode только этот файл юзать?
Это значит, что у тебя теперь есть workspace - коллекция проектов, в данном случае из двух: один - твой проект он практически идентичен предидущему состоянию (до интеграции с подами), в нем можешь менять что хочешь... второй проект Pod - тебе менять нельзя, за его содержимое отвечают cocoapods, если ты там что-то поменяешь, то при следующем запуске cocopods вернут всё назад... в этом проекте описаны правила сборки всех внешних зависимостей. Чтоб собрать конечный продукт, тебе нужны оба проекта, вот за это и отвечает workspace... Если ты откроешь в Xcode только xcodeproj, то ничего не соберется...
zamir
Это значит, что у тебя теперь есть workspace - коллекция проектов, в данном случае из двух: один - твой проект он практически идентичен предидущему состоянию (до интеграции с подами), в нем можешь менять что хочешь... второй проект Pod - тебе менять нельзя, за его содержимое отвечают cocoapods, если ты там что-то поменяешь, то при следующем запуске cocopods вернут всё назад... в этом проекте описаны правила сборки всех внешних зависимостей. Чтоб собрать конечный продукт, тебе нужны оба проекта, вот за это и отвечает workspace... Если ты откроешь в Xcode только xcodeproj, то ничего не соберется...
оооо, вообще спасибо , теперь более понятно.... а что бы в этом во всем разобраться че надо почекать??
Я так понял подсы это что-то типа менеджера пакетов на Свифт ?
Gena
Dmitry
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
Может нужно в сам скрипт внести нужные параметры
Stas
можешь попробовать что-то типа https://github.com/ds300/patch-package
и навесить это на post install
Gena
Stas
а в принципе, можно же этот скрипт скопировать куда-то и в xcode поменять путь
Gena
Самых главных тут две вещи:
1. Алгоритм поиска js кода в приложении... в дебаге оно умеет ходить в metro по http... но, насколько я помню сперва пытается поискать у себя в файловой системе
2. логика работы react-native-xcode.sh там сейчас уже довольно гибко всё сделано... но мы до сих пор как раз так и делаем... у нас своя версия в проекте лежит и именно её Xcode вызывает
Gena
В последнее время в нашей копии ничего такого нет, просто удален xip-резолвинг за ненадобностью, чтоб приложение не "светилось" на чужие сервисы...
Gena
А, ещё всякие nvm вырезаны )
Petr E
Petr E
Gena
Вот так http://vovkasm.skitch.vovkasm.org/rn-xcode_21A73760.png
Petr E
Petr E
Petr E
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)
Petr E
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...
Petr E
Gena
Ещё... именно в этом скрипте у нас модифицирован вызов бандлера... он билдит ещё source map, который вместе с бандлом потом отправляется в sentry
roman G
ребят, а можно сделать так, чтобы при нажатии на TextInput ничего не происходило? (сейчас открывается клавиатура)
Ilya
roman G
roman G
У меня такое окно, инфа поступает из готовой клавиатуры
Ivan
Ну юзай просто Text
Serhii
Там есть параметр
Serhii
editable вроде
Petr E
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. Посмотрите, как у меня на скриншоте написано )
Petr E
Jack
Ребят, как сделать косые кнопки, в форме параллелограмма???
Dmitry
Jack
Стилями
В touchable обернуть же надо всё
Jack
А когда оборачиваю и ставлю кнопки рядом они перекрывают друг друга
Maxim 📱 D
Jack
Flex верстка в помощь
Можно поподробнее о том как это решить с помощью flex или подскажите где почитать