Андрей Филипенков @kambala
iOS и Qt разработчик
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Mobile Application Developer
Senior
From 400,000 ₽
iOS development
SWIFT
Fastlane
Objective-C
C++
Qt
QML
Cmake
Спасибо! Ребята уже что-то посмотрели, не уверен, правда, вливали ли какие-то фиксы
Большое спасибо за проведённый анализ! У нас даже есть таск для прогонки PVS-Studio, но пока всё руки не доходили)
Ах, если б это было так... На самом деле на текущий момент команда очень маленькая, за последние полгода подавляющее большинство кода написано всего одним человеком. Всех желающих ждём "к столу"!
редактирование точек останова можно выполнять и мышкой, кликнув правой кнопкой на нужную — думаю, это стоит добавить в статью.
для команды expression есть удобная аббревиатура: просто буква e. также через нее можно вводить переменные на уровне отладчика, простой пример:
Чарльзом можно пользоваться по полчаса бесплатно, после этого надо перезапустить приложение.
также не упомянули mitmproxy и еще там был какой-то бесплатный прокси с веб интерфейсом (забыл название).
а давно Postman стал платным? пару лет назад там все работало бесплатно...
Похоже на опечатку и имелось в виду
К xcframework этот флаг не имеет никакого отношения. Он нужен для того, чтобы собранная библиотека, в исходниках которой есть минимум один свифт файл, могла быть импортирована свифт компилятором более новой версии. В смысле не сам бинарник библиотеки, а её swiftinterface файла.
Наверное в UNIX системах?
CMake — это не система сборки, а генератор файлов для систем сборки
Точно - карамба (не мог вспомнить сходу когда комментарий писал). Возможно есть и ещё аналоги.
2) вероятно учетка Гостя
4) файрвол есть (pf), настройкам поддается
5) да, штатно
6) да, штатно
7) Path Finder наверное ближе всего к тоталу из не-терминмальных
8) пунто вроде и под Макос есть, но есть и аналогичные приложения
9) не совсем то же самое, но есть системный Automator. ну и в настройках системы можно назначать горячие клавиши на многие вещи
11) симлинки есть конечно. vhdx — виртуалки? ну VirtualBox есть...
12) NTFS поддерживается системой в ридонли режиме, есть сторонние драйвера для записи. из коробки — exFAT (ну и FAT32).
в тотале можно пробелом выделять
Можно улучшить положение с помощью https://mos.caldis.me/
1) под fat library/framework традиционно понимается universal binary, когда в единый бинарник слеплено несколько разных архитектур. XCFramework же — это папка со специальной структурой, допускающая множество бинарников (которые могут быть universal) внутри.
2) не совсем понимаю как сборка под новую архитектуру связана с обновлением железа, на котором это проводится, только если железо невозможно обновить до той макОС, которая поддерживает соответствующий компилятор (clang/Xcode 12, доступны с 10.15). Но даже тут есть OCLP, который выручит, но применение его в крупных компаниях — это уже другой вопрос :)
Мультиплеер уже есть. Также есть «лобби» (внешний сервер) на всех платформах кроме андроида, для него попробуем добавить в версии 1.2.
В 5% в основном входят всякие баги: например, какое-нибудь заклинание криво работает, что-то не пишется в лог битвы, кривой расчет очков хода при Полете, ИИ изредка тупит и т.п. https://github.com/vcmi/vcmi/issues Но вроде бы ничего особо критичного.
В опенсорсных Героях 3 есть родные версии под все десктопные ОС, а также под андроид и iOS. Под браузер, правда, нет, но потенциально это возможно (WASM).
Требуются игровые данные (ресурсы) от оригинальной игры. Об особенностях установки можно прочитать на вики проекта.
Механика оригинала завершена где-то на 95%. ИИ самописный, подключить ИИ оригинальной игры возможности нет. Также в наличии немалое количество разных модов (например, новые города). Совместимость с WoG и HotA есть, но не полная (работа над портированием фич ведется).
Выбор распространять в виде fat framework, а не xcframework, когда арм маки существуют уже пару лет, мягко говоря, странный...
Да, выполняются на "мастере", поэтому документация рекомендует выполнять любые "тяжёлые" вычисления / операции (парсинг файла, например) на агенте через шелл скрипт, а не напрямую на груви.
Подход напоминает CocoaLumberjack. Рассматривался ли этот вариант?
RN - это достаточно специфическая вещь. Стоило бы упомянуть в статье, что именно он помешал выбрать самый простой вариант для CI.
К тому же, всегда можно было бы поставить несколько его версий на одной машине.
У нас уже лет 5 через дженкинс собирается по 1-4 проекта параллельно на одной машине без сучка и задоринки. Какая у вас была проблема?
Вообще-то можем, если сделать это в C/C++/ObjC коде, т.к. сишные макросы позволяют задавать им произвольные значения, в т.ч. и строковые.
Для этого в настройку
GCC_PREPROCESSOR_DEFINITIONS
записываетсяSERVER_URL=\"$(SERVER_URL)\"
(имя макроса с левой стороны можно выбрать любое), что делает доступным макросSERVER_URL
в C коде, который превратится в строковый литерал.Далее создаем пару .h/.m файлов, в которые поместим функцию (или класс, как душе угодно), возвращающую наш макрос в виде подходящего ObjC объекта:
В принципе,
@
можно поместить и прямо в определение макроса. Также можно добавить_NonNull
для возвращаемого типа либо просто обернуть объявления вNS_ASSUME_NONNULL_BEGIN
/NS_ASSUME_NONNULL_END
в заголовочном файле.Осталось поместить созданный заголовочный файл в bridging header — и Свифт код сможет увидеть функцию
serverURL()
.