TGViewer
Channel Public Channel
easy_dev991

easy_dev991

@easy_dev991

Делюсь интересными находками/лайфхаками в процессе разработки под iOS/Android, и возможно ты найдешь что-то полезное для себя!

GitHub: https://github.com/easydev991
Subscribers
617
Photos
74
Videos
23
Links
207

Showing posts older than #292 · Back to latest

Older Posts 16 shown
Post #290 602
#ios #swift #xcode #bug

Слева - таргет Apple Watch
Справа - таргет основного приложения для iPhone

В обоих таргетах версия Swift 6.0 в Build Settings.

Если для часов закомментировать вариант с String(localized:) и раскомментировать вариант с NSLocalizedString, то ошибка уходит - чудеса 😁

Баг на баге 🙈
  • 🤯 3
Post #289 424
#ios #appstoreconnect #fastlane #bug

Битва за скриншоты с appstoreconnect продолжается.

Вот тут официальные требования apple к скриншотам для appstoreconnect.

На скриншоте fastlane выдает ошибку из-за того, что apple не принимают скриншоты размером 422*514 (ultra 3), хотя в их же требованиях эти параметры указаны как корректные.

Похожая проблема была с автоматизацией для скриншотов iphone - там appstoreconnect не принимает скриншоты 16/17 Pro Max, хотя в их же документации они указаны как подходящие.

Баг на баге, что тут еще скажешь.
  • 🤯 3
  • 👀 1
Post #288 515
#ios #cursor

Если вдруг cursor стал падать в ошибку CoreSimulator при попытке запуска тестов или сборки через xcodebuild, то нужно сказать ему, чтобы для запуска этих команд использовал required_permissions: ['all'] - это нигде не надо настраивать в проекте, а надо буквально сказать это в запросе.

Если вы не в курсе: с недавнего обновления cursor больше не может работать с симуляторами iOS в режиме sandbox, и вот такая простая команда уже не будет работать:

xcodebuild -project SwiftUI-SotkaApp.xcodeproj -scheme SwiftUI-SotkaApp -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 13 Pro,OS=18.6' build


Хотя в предыдущих версиях cursor это нормально работало 🤔

Причем эта же самая команда исправно работает в терминале, но курсор вот брыкается, пока не скажешь ему использовать required_permissions: ['all'] 🙄
  • 👍 2
Post #286 1.15K
  • 🔥 2
Post #285 594
easy_dev991 #ios #appstore #appstoreconnect Сегодня модераторы одобрили релиз моего нового приложения с тренировками (с четвертого раза), и я узнал на личном опыте, почему же в аппстор пропускают клонов телеграм 🙈 Если интересно узнать, ставьте 👍 Ссылка на гитхаб…
#ios #appstore #appstoreconnect

Как появляются клоны в AppStore
Teletype Как появляются клоны в AppStore Неделю назад я опубликовал свое третье приложение в AppStore, и прошел интересный квест во время модерации - приложение не хотели...
  • ❤ 2
  • 🤷 2
Post #284 689
#ios #appstore #appstoreconnect

Сегодня модераторы одобрили релиз моего нового приложения с тренировками (с четвертого раза), и я узнал на личном опыте, почему же в аппстор пропускают клонов телеграм 🙈

Если интересно узнать, ставьте 👍

Ссылка на гитхаб с новым приложением тут.
GitHub GitHub - easydev991/SwiftUI-SotkaApp: Street Workout Тренировки (пет-проект) Street Workout Тренировки (пет-проект). Contribute to easydev991/SwiftUI-SotkaApp development by creating an account on GitHub.
  • 👍 14
Post #281 694
#ios #swift #swiftui #bug #binding

Кажется, что разница такая небольшая, но в первом случае сборка успешная, а во втором - сборка падает, и в логах Xcode ничего не показывает, а ведь можно долго и упорно дебажить, вот незадача 🤯
  • 🤯 4
  • 👍 1
Post #279 708
#ios #swiftui #confirmationdialog #bug

Любопытный баг в SwiftUI при работе с confirmationDialog в навбаре.

Во вложении 2 видео, где я делаю одно и то же действие, но во втором видео диалог появляется повторно без триггера с моей стороны.

Код для первого видео (где все ок):

.toolbar {
if !entries.isEmpty {
ToolbarItem(placement: .topBarTrailing) {
deleteAllButton
}
}
}


Код для второго видео (где баг):

.toolbar {
ToolbarItem(placement: .topBarTrailing) {
if !entries.isEmpty {
deleteAllButton
}
}
}
  • 👍 1
Post #278 542
#ios #xcode #bug

Любопытная аналитика про размер iOS-приложений, собранных в Xcode 26.0.1 и Xcode 26.1 на примере приложения с площадками для тренировок:
- При сборке из Xcode 26.0.1 приложение весит около 11 мб
- При сборке из Xcode 26.1 приложение весит уже 16.5 мб
- При сборке из Xcode 26.1 после доработок (предстоящий релиз) вес почему-то снизился до 15.5 мб, хотя кода стало больше 🙄

Откуда взялись дополнительные 5 мб, эпл 🤯?
GitHub GitHub - easydev991/SwiftUI-WorkoutApp: Street Workout Площадки (пет-проект, iOS) Street Workout Площадки (пет-проект, iOS). Contribute to easydev991/SwiftUI-WorkoutApp development by creating an account on GitHub.
  • 👍 4
  • 😴 2
Post #276 509
#ios #swift #swiftui #bug

Угадайте, на каком из скриншотов у нас iOS 26 😁

А вот и код:

struct DemoToolbarOpacity: View {
var body: some View {
NavigationStack {
Color.green.ignoresSafeArea()
.toolbar {
ToolbarItem(placement: .topBarLeading) {
if false {
Button("Left") {
print("tap left button")
}
}
}
ToolbarItem(placement: .topBarTrailing) {
Button("right") {
print("tap right button")
}
.opacity(0)
}
}
}
}
}


Вывод:
В iOS 26 больше нельзя использовать opacity для скрытия кнопки - нужно явным образом закрывать кнопку проверкой if/else 👏
  • ❤ 5
Post #275 741
#xcode #simulator #bug

Вчера обновил Xcode до релизной версии 26.1, и второй день подряд ноут сильно греется и шумит вентиляторами.
В чем же дело?

В "мониторинге активности" там висит ReportCrash, который грузит процессор 140%+.
Но что за краши?

Открыл приложение "консоль", и увидел там десятки отчетов о краше для MercuryPosterExtension (кто бы еще знал, что это).

Вот кусок крашлога:

Coalition: com.apple.CoreSimulator.SimDevice.15175812-BCE6-41D0-B391-CEF8416AE15F [12203]
Responsible Process: SimulatorTrampoline [2600]


Несложно предположить, что дело в симуляторе. Оказалось, что запущенный симулятор с iOS 26.1 постоянно ловит какие-то системные краши, но визуально этого не видно.

Так что если вы уже обновились до Xcode 26.1, то рекомендую не использовать симуляторы iOS 26.1 на постоянной основе, иначе есть риск словить постоянную нагрузку на процессор из-за ReportCrash 🤪
  • ❤ 8
Post #274 552
easy_dev991 #ios #swiftui #scrollview #scrollviewreader #scrollto Скроллим к нужному элементу
#ios #swiftui #scrollview #scrollto

На днях застрял со скроллом к нужному элементу и думал "что же не так?".
У меня есть список элементов в ForEach, внутри массив с Identifiable-элементами, но scrollTo(id) не работает.

Все оказалось очень просто - нужно явным образом добавить модификатор .id для всех элементов в цикле ForEach.

Потом вспомнил, что у меня уже есть статья на эту тему 😁
  • ❤ 5
  • 😁 5
  • 😴 1
Post #273 656
#xcode #bug

В Xcode 26 у меня внезапно сломалась локализация для Info.plist-файла - просто перестали работать строки на русском языке, а на английском все ок.

Почистить кэш, пересоздать файл со строками не помогает.

На скриншоте причина, почему мне завернули очередной релиз приложения с площадками.

Исправляется эта фигня откатом с xcstrings на старый формат strings для локализации Info.plist🙈
  • 😨 4
  • ❤‍🔥 1
Post #272 492
#swift #news

Вчера состоялся превью-релиз Swift SDK для Android, весь анонс и детали можно почитать по ссылке.

Кто знает, вдруг через пару лет можно будет с легкостью разрабатывать андроид-приложения на свифте?)
Swift.org Announcing the Swift SDK for Android Swift has matured significantly over the past decade — extending from cloud services to Windows applications, browser apps, and microcontrollers. Swift powers apps and services of all kinds, and thanks to its great interoperability, you can share code across…
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →