Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Xcode

С этим тегом используют

iOS Все
27 постов сначала свежее
arivour
arivour
9 месяцев назад

Самоучитель по Swift посвежее⁠⁠

Народ, посоветуйте книжку по swift посвежее.

А то эта 2017 года, уже устарела морально.

Спасибо. А если кто знает swift и может помочь, жду в тг

Самоучитель по Swift посвежее Xcode, Swift, iOS
Показать полностью 1
Xcode Swift iOS
6
27
Okeu
Okeu
1 год назад
Лига Сисадминов

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore)⁠⁠

Всем привет. Делюсь своими изысканиями по запуску виртуальных машин MacOS на процессорах AMD. Возможно кому-то будет полезным:
Предыстория: в наличии несколько виртуалок, с которыми долгое время не было никаких проблем. Версии - от Mojave до Monterey, они даже обновлялись штатно. Далее, при апдейте на Ventura/Sonoma ловим кернел панику - никакие рекомендации из интернета не помогли. Глаз пал в сторону хакинтоша, но как его конфигурировать под вмварь тоже оказалось не совсем понятным, поэтому и напишу этот гайд:
вводные - Ryzen 5950X, Windows 10, VMware Workstation 16.2 (была версия 16.0, пока не столкнулись в проблемой апдейта макоси).

Что понадобится (чем пользовался лично я):
OCAT - графический редактор plist
ProperTree - еще одна редачилка plist'a, мне через нее было удобно копипастить блок с патчем для AMD (удобно открыть patches.plist из репы, и выдернуть оттуда весь блок patch, чтоб вставить его в наш конфиг)
Рекомендация по настройке конфига под амуде
Готовые SSDT для нубасов вроде меня (насколько я понял это таблицы с ID оборудования, которое инициализируется при старте ОС. Что-то подобное можно создавать самому уже на конкретном железе. У меня стоял вопрос - а каким оно должно быть и как его создать на VMware, возможно кто-то из шарящих в теме пояснит в комментах, как это работает, и как это связано с DSDT таблицами)
Гайд по EFI драйверам и кекстам - по кекстам я ниже еще отпишу. А драйвера я оставил все, которые идут с редакцией OpenCore, но не все они обязательны.
Ну и загрузчик OpenCore собственной персоной
Кастомный .vmdk диск, с которого мы будем бутаться. (создаем сами)
Выкладываю свою версию EFI - для ЛЛ, но не факт, что именно с ней у вас все взлетит.

Теперь по OpenCore, что он из себя представляет:
Нас интересует версия X64, внутри есть папка EFI, ее в дальнейшем нужно будет закинуть на наш загрузочный раздел. При включении нашей виртуалки первым делом бутается /EFI/BOOT/BOOTx64.efi, который затем запускает /EFI/OpenCore.efi (если вы будете в firmware виртуалки указывать файл загрузчика, указывайте путь к BOOTx64.efi)
Что еще внутри папки EFI :
EFI/OC/ACPI - тут лежат SSDT/DSDT таблицы оборудования. Если удалять лишнюю, обязательно нужно проверить, чтоб не было ссылок на нее в config.plist иначе будет краш.
EFI/OC/Drivers - тут лежал драйверы .efi. OpenRuntime.efi и HfsPlus.efi обязательны, я не стал удалять лишние драйвера, но ради интереса поигрался и выяснил, что без OpenCanopy.efi, OpenLinuxBoot.efi, OpenLegacyBoot.efi - загрузчик не взлетал. Насколько я понял, эти драйвера не влияют на дальнейшую работу макоси, а сугубо отвечают за работоспособность загрузчика и его возможности.
EFI/OC/Kexts - тут валяются расширения ядра (kext - kernel extension), нужны для успешного запуска самой макоси, а так же для корректной инициализации и работы устройств.
Любой хакинтош начинается с Lilu.kext, затем должен идти фейковый SMC (я заводил тачку с VirtualSMC.kext), потом уже все остальное.
Их последовательность определяется конфигом config.plist, в каком порядке они указаны, в таком они и будут инжектиться при загрузке ОС.
Экспериментальным путем выяснено, что система не бутается без:
AppleMCEReporterDisabler.kext - Required on macOS 12.3 and later on AMD systems, and on macOS 10.15 and later on dual-socket Intel systems. *из доки по OpenCore
CryptexFixup.kext - Я так понял, что это обязательный кекст не только для AMD, но и для Intel до Haswell
NoAVXFSCompressionTypeZlib-AVXpel.kext - возможно избыточно, без него тоже бутается.
На всякий случай оставил:
VoodooHDA.kext - инициализация звука в MacOS
HibernationFixup.kext - на виртуалке проще отключить сон, но если что, возможно это будет фиксить. Дело в том, что под хакинтошами у макоси есть проблемы со сном, вернее с выходом из него)
Whatevergreen.kext - фикс инициализации графики, по идее он не нужен, т.к. есть VMWARE tools

Создаем свой .vmdk:
Для его создания я создавал новую виртуалку, "установлю потом", тип системы other, диск 0.2GB, но вмварь тогда создает диск IDE, поэтому я его удалил, и пересоздал уже как SATA. Размер выбрал с потолка, сам EFI весит около 10-15 МБ. Поэтому можете назначить меньше. Из доп. настроек нужно выбрать store virtual disk as a single file
Далее монтируем этот диск через Daemon Tools. Теперь открываем оснастку управления дисками, для этого жмем WIN+R, вводим diskmgmt.msc и enter, система тут предложит проинициализировать новый диск. Выбираем GPT, жмем ОК. Далее создаем том и форматируем в FAT32, в Label вписываем любой удобный и понятный, я так и назвал OpenCore.
Все, теперь осталось закинуть на диск папку EFI, размонтировать диск и можно с него бутаться.

Несовместимость виртуалки и vmdk диска (если подкидываем к уже готовой машине)

При попытке подсунуть загрузочный vmdk в виртуалку, которая была создана в более старой версии VMware скорее всего вылезет ошибка:

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

Варианта 2: либо пересоздавать новый vmdk для этой виртуалки, форматить его и засовывать туда EFI
либо конвертнуть виртуалку:
жмем по ней правой кнопкой мыши → manage → Change Hardware Compatibility
Мой первый EFI был создан в версии 16.2.x, поэтому выбираю ее, чтоб версия совпадала с той, в которой он создавался. Далее вмварь спросит, хотите склонировать или конвертировать текущую билд-тачку. Тут уже на ваше усмотрение, у меня с конвертацией проблем не возникло, но я не уверен, что их точно не будет.
После конвертации диск подцепится без ошибок)

Что дальше?
Отныне любая макось, будь то инсталлер или уже установленная версия - должны запускаться только через наш кастомный EFI. Иначе в дальнейшем у них будет паника ядра.
С чистой установкой все просто: (не буду останавливаться на том, как создать новую ВМ, как пропатчить ее unlocker'ом, как создать диск, выделить ресурсы и т.д.)
Добавляем в виртуалку наш EFI, в настройках смотрим на какой порт сата он добавился (можно сделать SATA 0:0, а можно забить - на ваше усмотрение.
В виртуальный CD добавляем .iso образ установщика макоси (можно взять с торрента, либо зашить самому, но для этого нужен отдельный гайд).
Далее в VMware выбрать Power on firmware

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

После этого у нас будет возможность бутануться с нужного диска, тут нам и понадобиться номер порта SATA

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

мой пример: 0:0 это EFI, 2:0 это целевой диск с макосью, 1:0 CD дисковод с инсталлером.

Выбираем диск, жмем Enter.
Далее мы попадаем в меню OpenCore:

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

Скрин для примера, тут конфиг с уже установленной системой

Если нажать пробел, появятся дополнительные опции загрузки

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

OpenCore делает ВЖЖ ВЖЖ

Бутаем установщик и далее штатно проходим установку (не забываем запустить дисковую утилиту в установщике и отформатировать наш целевой vmdk в формат APFS).

Для тех, кто хочет обновить свой старенький Monterey
У вас варианта два, либо обновляться штатно, через Software Update, либо обновляться с iso (точно так же, как чистая установка в абзаце выше, но без форматирования целевого диска)
Правило одно в обоих случаях - перед апдейтом, вы должны обязательно бутаться с кастомного загрузчика. Если макось словит Kernel Panic в процессе обновления (она несколько раз рестартится пока идет процесс обновления), то ее попердолит так, что даже с подсунутым EFI она не будет бутаться.
Перед апдейтом можете снять снапшот, откат поможет в случае если что-то пойдет не так.

Какие могут быть проблемы

  • Если макось в процессе рестартов установщика загрузится не через OpenCore, а напрямую, и словит панику - ее уже будет не восстановить. (выше уже писал об этом, но лучше задублирую - это важно!)

  • Если после успешной загрузки макоси не работает мышь/клава, либо у мыши очень высокая чувствительность, что невозможно ею пользоваться - нужно проверить в настройках виртуалки версию USB контроллера. Должна быть 3.1.
    доп. может понадобиться VoodooPS2Controller.kext

  • Проброс Bluetooth лучше убрать (там же, где настройки USB)

  • Перед изменением количества ядер, выделенных виртуалке, лучше править патчи в config.plist на EFI разделе. Иначе тачка будет вставать в фриз: Патчи для AMD
    Без них будут проблемы. У меня зависало, если выделял больше 4х ядер.
    "C:\Program Files (x86)\VMware Workstation\vmrun.exe" -T ws stop "путь к виртуалке.vmx"

    • ОБЯЗАТЕЛЬНО ОТКЛЮЧИТЬ TSO https://communities.vmware.com/t5/VMware-Fusion-Discussions/VMware-Fusion-Only-Upload-Internet-Speed-is-Super-Slow-compared/td-p/2955386
      sysctl net.inet.tcp.tso=0 и для того, чтоб работало после рестарта - создать файл /etc/sysctl.conf и вставить «net.inet.tcp.tso=0»
      Если этого не сделать, то не будет работать VNC/SCP/загрузка файлов на самбу, может что-то еще (очень низкая UPLOAD скорость для TCP соединений)

  • И НЕ ЗАБЫВАЕМ, ЧТО В VMX конфиг нужно прописать

    cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
    cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
    cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
    cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
    cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
    cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
    cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
    cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"

    ethernet0.virtualDev = "vmxnet3"

UPD: вынесу отдельно: из непофикшеного есть проблема с рестартами виртуалки. Она успешно останавливает систему и повисает

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore) Vmware, Mac Os, Hackintosh, Windows, Windows 10, Виртуализация, Администрирование, Xcode, IT, Длиннопост

При этом кнопки Power OFF в VMware неактивны

Прибить ее можно из командной строки (путь до vmrun.exe может отличаться:
"C:\Program Files (x86)\VMware Workstation\vmrun.exe" -T ws stop "путь к виртуалке.vmx"

Показать полностью 6
[моё] Vmware Mac Os Hackintosh Windows Windows 10 Виртуализация Администрирование Xcode IT Длиннопост
12
6
pikselnsk
pikselnsk
2 года назад

Комментарии к среде разработки Xcode от Apple⁠⁠

Как отдельный вид искусства

Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Комментарии к среде разработки Xcode от Apple Xcode, Программирование, Apple, Swift, iOS, Mac Os, Длиннопост
Показать полностью 12
[моё] Xcode Программирование Apple Swift iOS Mac Os Длиннопост
7
MarkParker.5
MarkParker.5
2 года назад
Серия Программирование и Туториалы

Как локализовать все ваши iOS приложения на 20 языков за 5 минут⁠⁠

Исходный пост: https://markparker.me/blog/localize-ios-app-in-5-minutes

Предисловие

В современном мире спрос на мобильные приложения, которыми пользуются люди из разных стран и регионов, значительно увеличился. Для разработчиков важно сделать свои приложения доступными на нескольких языках. Локализация приложения может предложить много преимуществ:

  • Расширение аудитории: Локализация вашего приложения вы можете охватить пользователей, которые не могут говорить на языке вашего приложения по умолчанию. Это может помочь вам подключиться на новые рынки и увеличить вашу пользовательскую базу.

  • Улучшение пользовательского опыта: Пользователи с большей вероятностью будут использовать и наслаждаться приложением, которое доступно на их родном языке. Локализация вашего приложения может помочь вам обеспечить лучший пользовательский опыт, что может привести к лучшим обзорам, рейтингам и показателям удержания. Локализация вашего приложения может дать вам конкурентное преимущество в регионах, где ваши конкуренты, возможно, не локализовали свои приложения.

  • Увеличение доходов: Локализация вашего приложения может привести к увеличению доходов, поскольку пользователи с большей вероятностью будут делать покупки в приложении или оплатить подписки, если приложение доступно на их родном языке.

Но есть также несколько проблем и потенциальных проблем, с которыми могут столкнуться разработчики. Локализация может занять много времени и ресурсов, особенно, для приложений с большим количеством контента и длинным списком поддерживаемых языков.

Но мы бы не были разработчиками, если бы пытались всегда все автоматизировать. Автоматизированная локализация может быстро и эффективно переводить контент, снизить затраты, связанные с ручным переводом, например, наем профессиональных переводчиков или выделение внутренних ресурсов для этой задачи. Это особенно эффективно, если приложение создается одним разработчиком.

Подготовьте свой проект

Я не буду вдаваться в подробности о том, как локализация строк работает в xcode проектах, по этому вопросу уже есть много других учебных пособий. Я только выделю несколько ключевых шагов:

  1. Создайте файл Localizable.strings и заполните его строками, которые вы хотите локализовать.

    /* optional description */ "[key]" = "[string]"; /* Example: */ "welcome text" = "Welcome to XCodelocalize";

  2. Перейдите в настройки файла проекта, добавьте желаемые языки. Apple рекомендует EFIGS (английский французский итальянский немецкий испанский) + китайский язык в качестве основы.

  3. Создайте файлы Localizable.strings для всех выбранных языков. Скорее всего, вы так же захотите локализовать файлы plist, storyboard и intentdefinition.

Установка XCodeLocalize

Неожиданно, инструмент для iOS разработки оказался написанным на питоне, так что убедитесь, что у вас есть python 3.9+

После этого вы можете установить xcodelocalize с помощью pip:

pip3 install xcodelocalize

Также доступна установка из .whl файла на странице релизов или с помощью poetry из исходников.

Запустите автоматическую локализацию

cd к корневой папке проекта и запустите

xcodelocalize [OPTIONS]

или

python3 -m xcodelocalize [OPTIONS]

Параметры

  • --base-language: код языка, с которого будут переведены все строки. [по умолчанию: 'en']

  • --override / --no-override: булево значение; указывает, будут ли переведены строки, которые уже существуют в файле. Перевести, если override; пропустить, если no-override. [по умолчанию: no-override]

  • --format-base / --no-format-base: сортировать строки base файла по ключу. [по умолчанию: no-format-base]

  • --file: Имена .strings файлов для перевода. Можно указать несколько файлов. Если не указано, все файлы будут переведены. [по умолчанию: None]
    Пример:

    xcodelocalize --file InfoPlist xcodelocalize --file InfoPlist --file MainStoryboard --file Localizable

  • --key: Ключи, которые должны быть переведены. Можно указать несколько ключей. Если не указано, все будут переведены. [по умолчанию: None]

  • --language: Код языков, которые будут переведены. Допускается множество значений. Если не указано, все файлы будут переведены. [по умолчанию: None]

  • --log-level: Один из [progress|errors|group|string]. [по умолчанию: group]

  • --help: Информация о параметрах

Автоматизация

Вы можете перейти в Target -> Build Phases -> New Run Script Phase в вашем проекте Xcode и ввести xcodelocalize. Это будет переводить необходимые строки во время сборки и ваши файлы всегда будут локализованы.

Заключение

Теперь вы знаете, как быстро локализовать свои приложения для iOS на многих других языках.

Не стесняйтесь оставлять комментарии. Поставьте звезду репозиторию, если вам понравилось.

Показать полностью
[моё] iOS Xcode Разработка Программирование Приложение Текст
3
0
SamGamgee
SamGamgee
3 года назад

Вопрос к Swift разработчикам⁠⁠

Решил заняться программированием на языке Swift. Все на уровне хобби, хочется сделать программку для iPhone/iPad под рабочие нужды. И возник вопрос о том, где брать материал для обучения. С основами разработки (кортежи, словари, массивами) более-менее понятно, информации куча, и все работает.

Но я в одном видеокурсе дошёл до TableView, и тут все пошло не по плану. В этом видеокурсе, который действительно есть за что похвалить собраны все материалы аж с 2016 года, но язык меняется, и UiTableView так, как описывают в курсе для Swift 5 у меня не получается. Например, при создании “Apple Music” нужно в окне Search подключить TableView, но он нифига не подключается так, как описано в курсе. Более того, при открытии файла курса с кодом после запуска на эмуляторе так же не отображается TableView, просто пустое окно с возможностью прокрутки, но без самой таблицы. Я понимаю, что за это время изменилась логика в языке, а может быть и в Xcode были изменения. Возможно я плохо ищу, но я не могу найти как теперь подключать TableView. Возможно есть какие-либо учебники свежих выпусков, или иные источники, в которых описаны изменения? И есть ли сообщества по языку Swift? Я нашёл только заброшенные, где давно ничего не обновляют.

И второй главный вопрос: есть ли смысл его изучать, учитывая, что у нас в стране iOS может окирпичиться, судя по разнообразным слухам?

Спасибо!

[моё] Swift IT Программирование Обучение iOS Mac Os Вопрос Xcode Без рейтинга Текст
7
3
Viktorianec
Viktorianec
3 года назад

Создал свой Cheat Sheet для Xcode⁠⁠

Создал свой Cheat Sheet для Xcode iOS, Xcode, Программирование, Разработка, IT, Помощь

Надеюсь, что кому-то пригодится из коллег-разработчиков. Ресурс можно изменять и распространять как угодно.
Ссылка для друга на оригинал в высоком качестве
Тут я пишу в целом про разработку.

[моё] iOS Xcode Программирование Разработка IT Помощь
0
Dr.Moscow
Dr.Moscow
6 лет назад

Вопрос про программирование. (Swift в Xcode)⁠⁠

Ребятушки, подскажите нормальные самоучители или учебники про программирование на языке Swift  в Xcode. Я новичок  в этом, хоть и активный пользователь ПК. Все что я находил в инете, сводится к: "тут выбирайте это, а там вот это, тут поставьте галочку, а вон ту галочку не трогайте"

Хочется что бы максимально просто и по делу был туториал, почему тут писать надо это а не то и тд.

Может есть у кого-то в закромах обучающие уроки или литература.

Максимум что я могу на данный момент - создать простенькое приложение "Аля нажми на кнопку и вылезет текст"

PS: я не лентяй и нашел какую-никакую литературу, но это уже все то же что и было найдено ранее.

Вопрос про программирование. (Swift в Xcode) Программирование, Xcode, Apple, Swift
[моё] Программирование Xcode Apple Swift
17
ProgerKruger
7 лет назад

Будни команды разработки xcode⁠⁠

Будни команды разработки xcode Xcode, Разработка
Показать полностью 1
Xcode Разработка
3
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии