Насколько хорошо владеешь терминалом?)
Anonymous Poll
7%
Что это?
3%
Знаю, что такое есть, но не пользуюсь
39%
Иногда пользуюсь, но по мелочам (например, знаю команду cd)
34%
Часто пользуюсь, хорошо разбираюсь в разных командах
1%
Я мастер терминала 80 уровня, сейчас всех научу
16%
Легко нахожу нужные команды с помощью нейросети
#git #terminal #hint #gitignore
Бывает, в гит запушили файл, которого там не должно быть, а потом добавили его в
Чтобы файл корректно удалился из гита с учетом новых правил игнора, достаточно выполнить эти две команды в терминале в папке с проектом:
Пояснение:
- первая команда говорит гиту перестать отслеживать все файлы в проекте, но не удалять их с диска
- вторая команда снова добавляет все файлы и изменения в список для включения в следующий коммит, но теперь уже с учётом
- остается только сделать коммит/пуш с изменениями 👌
Для экспертов по гиту:
Знаю, что можно проделать операции только с нужным файлом, а не со всеми сразу, но мне удобнее так, и вдруг кому-то тоже 😉
Бывает, в гит запушили файл, которого там не должно быть, а потом добавили его в
.gitignore. Но файл уже находится в гите, и его нужно оттуда удалить.Чтобы файл корректно удалился из гита с учетом новых правил игнора, достаточно выполнить эти две команды в терминале в папке с проектом:
git rm -rf --cached .
git add .
Пояснение:
- первая команда говорит гиту перестать отслеживать все файлы в проекте, но не удалять их с диска
- вторая команда снова добавляет все файлы и изменения в список для включения в следующий коммит, но теперь уже с учётом
.gitignore (то есть файлы, которые вы исключили, не попадут в список)- остается только сделать коммит/пуш с изменениями 👌
Для экспертов по гиту:
Знаю, что можно проделать операции только с нужным файлом, а не со всеми сразу, но мне удобнее так, и вдруг кому-то тоже 😉
❤5🔥2
#ios #appstoreconnect
Интересное наблюдение про публикацию приложений
1. Вчера отправил на проверку два пет-проекта с разных аккаунтов разработчика с разницей в 3 часа
2. Сегодня оба приложения одновременно приложения перешли в статус "Проверка"
3. Проверка завершилась в том же порядке, в котором я отправлял приложения, но с разницей не в 3 часа, а в 14 минут
Интересное наблюдение про публикацию приложений
1. Вчера отправил на проверку два пет-проекта с разных аккаунтов разработчика с разницей в 3 часа
2. Сегодня оба приложения одновременно приложения перешли в статус "Проверка"
3. Проверка завершилась в том же порядке, в котором я отправлял приложения, но с разницей не в 3 часа, а в 14 минут
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
#terminal #simulator #hint
По умолчанию нажатия на экране iOS-симулятора не отображаются, но это легко поправить командой в терминале:
После выполнения команды нужно перезагрузить симулятор и нажатия будут отображаться.
Важный нюанс: если включить запись экрана симулятора через кнопку
Нажатия будет видно только при записи экрана самого мака (видео можно обрезать, чтобы было похоже на запись через
По умолчанию нажатия на экране iOS-симулятора не отображаются, но это легко поправить командой в терминале:
defaults write com.apple.iphonesimulator ShowSingleTouches 1
После выполнения команды нужно перезагрузить симулятор и нажатия будут отображаться.
Важный нюанс: если включить запись экрана симулятора через кнопку
Record Screen в самом симуляторе, то в получившейся записи не будут видны эти нажатия.Нажатия будет видно только при записи экрана самого мака (видео можно обрезать, чтобы было похоже на запись через
Record Screen)🔥7❤2🤔1
#ios #appstoreconnect
Самая быстрая проверка перед публикацией в
И это в выходной день 😯
Самая быстрая проверка перед публикацией в
AppStore за более чем 30 релизов - меньше часа с момента отправки на проверку до аппрува 🚀И это в выходной день 😯
🔥5
👍4🔥1
#ios #appstoreconnect
Обычно после статуса "Одобрено" идет "Готово к распространению".
Ошибка аппстора или им так понравилась сборка, что одобрили дважды? 😅
Обычно после статуса "Одобрено" идет "Готово к распространению".
Ошибка аппстора или им так понравилась сборка, что одобрили дважды? 😅
😁2👍1
#terminal #git #hint
Бывает, что после выполнения задачи ветку удаляют в репозитории, а локально она все еще висит. И когда таких веток набирается много, можно в них запутаться 😅
Чтобы удалить разом все такие ветки, нужно перейти в терминале в папку с проектом и выполнить команду:
Объяснение:
•
•
• Для каждой ветки проверяется, существует ли она на сервере (
• Если ветка отсутствует на сервере, она удаляется принудительно (
Перед выполнением команды нужно убедиться, что вы переключились на ветку, которую не хотите удалять (например,
Бывает, что после выполнения задачи ветку удаляют в репозитории, а локально она все еще висит. И когда таких веток набирается много, можно в них запутаться 😅
Чтобы удалить разом все такие ветки, нужно перейти в терминале в папку с проектом и выполнить команду:
git branch | grep -v "^\*" | while read branch; do
if ! git show-ref --verify --quiet refs/remotes/origin/$branch; then
git branch -D $branch
fi
done
Объяснение:
•
git branch выводит список всех локальных веток.•
grep -v "^\*" исключает текущую активную ветку (чтобы не удалять её).• Для каждой ветки проверяется, существует ли она на сервере (
refs/remotes/origin/branch).• Если ветка отсутствует на сервере, она удаляется принудительно (
git branch -D), что удалит ветку даже если в ней есть несмерженные изменения.Перед выполнением команды нужно убедиться, что вы переключились на ветку, которую не хотите удалять (например,
main или master).👌5❤1
#ios #swift #swiftui #binding #bug
Как сломать
Результат:
Как сломать
Xcode 16.3, чтобы в логах не было нормального описания ошибки:
import SwiftUI
struct BreakSwiftExample: View {
@State private var isOn = false
private var isOnBinding: Binding<Bool> {
.init(
get: { isOn },
set: changeToggle // не собирается
// set: { isOn = $0 } // собирается
)
}
var body: some View {
Toggle("Демо-тоггл", isOn: isOnBinding)
}
private func changeToggle(_ value: Bool) {
isOn = value
}
}
Результат:
Command SwiftCompile failed with a nonzero exit code❤2👍2🔥1
Как бы вы оценили свой опыт и понимание работы с Makefile в iOS-разработке?
Anonymous Poll
55%
Не доводилось слышать о Makefile, не знаю, что это такое
21%
Знаю (имею представление) об этом, но не приходилось использовать
13%
Доводилось иногда использовать, но знаний и опыта мало
9%
Уверенно использую для автоматизации несложных задач
2%
Владею темой на экспертном уровне, пишу сложные сценарии и оптимизирую процессы
#terminal #bundler #rbenv #hint
Кто читал предыдущую статью про использование
И после перезапуска терминала не работают команды
При этом если выполнять команды из
Вот что нужно сделать, чтобы эти настройки не сбрасывались.
1. Выполните в терминале по очереди эти две команды:
2. Затем примените изменения командой:
3. Всё! Теперь
Это безопасно:
-
- Добавление строк в
- Все ваши проекты будут использовать именно ту версию
Если захотите убрать эти настройки, просто откройте файл
После этого сохраните файл и выполните:
Всё вернётся как было 👌
Кто читал предыдущую статью про использование
Makefile, и при этом впервые применил эти команды, скорее всего после перезапуска терминала столкнулся с ошибкой типа такой:
Could not find ‘bundler’ (2.6.5) required by your Gemfile.lock. (Gem::GemNotFoundException)
И после перезапуска терминала не работают команды
bundle*, например:
bundle exec fastlane
При этом если выполнять команды из
Makefile, то такой ошибки нет, потому что внутри основных команд есть обертки для настройки окружения и прочих штук, которые сбрасываются после перезапуска терминала.Вот что нужно сделать, чтобы эти настройки не сбрасывались.
1. Выполните в терминале по очереди эти две команды:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
2. Затем примените изменения командой:
source ~/.zshrc
3. Всё! Теперь
rbenv всегда будет работать автоматически, когда вы открываете терминал в папке проекта с файлом .ruby-version.Это безопасно:
-
rbenv специально разработан так, чтобы работать для каждого проекта отдельно, если в проекте есть файл .ruby-version- Добавление строк в
~/.zshrc просто включает автоматическое переключение версий Ruby для каждого проекта, но не фиксирует какую-то одну версию Ruby глобально- Все ваши проекты будут использовать именно ту версию
Ruby, которая указана в их собственном .ruby-version.Если захотите убрать эти настройки, просто откройте файл
~/.zshrc (например, командой nano ~/.zshrc или через Finder) и удалите строки:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
После этого сохраните файл и выполните:
source ~/.zshrc
Всё вернётся как было 👌
👌2❤1