Как стать автором
Обновить
-5.04

Разработка под macOS *

Пишем под настольную ОС Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Трюки при линковке и загрузке файлов Mach-O

Время на прочтение26 мин
Количество просмотров5.4K

Представляю вашему вниманию перевод моей статьи из блога Проекта Darling. Маленькая справка по используемым понятиям: Darwin – операционная система с открытым исходным кодом, лежащая в основе macOS, iOS и других ОС от Apple; Mach-O – бинарный формат исполняемых файлов и библиотек, использующийся в Darwin; dyld – динамический загрузчик, использующийся в Darwin для загрузки файлов Mach-O; dylib – динамически загружаемая библиотека (обычно имеет расширение .dylib).


Картинка для привлечения внимания


Цель Проекта Darling – сделать возможным запуск macOS-приложений под Linux, и умение загружать бинарные файлы в формате Mach-O – один из ключевых шагов к достижению этой цели.


Исходно, Darling был выстроен вокруг собственной реализации загрузчика Mach-O и идеи транслирования вызовов между высокоуровневым Darwin API и его Linux-аналогами. С тех пор наш фокус сместился на запуск кода во всё более и более изолированном Darwin-контейнере. С тех пор как мы перешли на использование Mach-O для внутренних компонентов Darling, у нас появилась возможность использовать исходный dyld от Apple, а также собирать многие другие компоненты Darwin с открытым исходным кодом. Нам всё ещё нужен простой загрузчик Mach-O, чтобы загружать сам dyld.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии6

Что почитать по Swift на русском языке?

Время на прочтение4 мин
Количество просмотров53K
Среди новичков бытует мнение, что популярность языка программирования можно определить по количеству выпущенных книг. В качестве примера можно упомянуть Java или Python – и отчасти это будет правдой. Но есть языки, которые в бумажных книгах не особо-то и нуждаются. Просто из-за своей молодости и того факта, что официальный tutorial отвечает абсолютно на все вопросы начинающего программиста.

image

Вот Swift как раз такой язык. Он молодой и популярный, а официальная электронная документация по нему выполнена просто великолепно. И возможно кого-то, кому сейчас нет и 20, устраивает ситуация с отсутствием книг по Swift на магазинных полках, но люди постарше просто обожают всегда иметь под рукой бумажный справочник и краткое руководство по языку в отпускном чемодане.

Поэтому автор блога GeekBrains Илья Бубнов вдоль и поперёк изучил российские издательства, чтобы отыскать 5 самых популярных книг по Swift, выпущенных в олдскульном формате.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

Digest MBLT DEV — свежак для iOS-разработчиков

Время на прочтение2 мин
Количество просмотров1.7K


Вот оно какое наше лето. Треть мы потеряли уже где-то. Что же делать? Дай мне, друг, совета. Отдыхайте с огоньком. Ля, ля, ля, ля, ля, ля. Ля, ля, ля, ля, ля, ля.

В Джире на доске как на опушке, тасков так, что не видать макушку, горы эстимейтов, плачь в подушку. Голова идёт кругом. Ля, ля, ля, ля, ля, ля. Ля, ля, ля, ля, ля, ля.
Интро к 176-му выпуску Digest MBLT DEV от Саши Чёрного прекрасно, как и сам дайджест, который вместе с Сашей каждую пятницу готовят Руслан Гуменный, Александр Зимин и Иван Козлов.

Если вы ещё не читаете наш iOS-дайджест, то мы искренне не понимаем, почему. Пора это исправить.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии0

Что такое Scholarship от Apple и почему это больше, чем просто билет на WWDC

Время на прочтение5 мин
Количество просмотров5.5K

image


Билет на WWDC стоит $1600, и чтобы его получить, нужно участвовать в лотерее. Для студентов со всего мира Apple каждый год устраивает конкурс, в котором можно выиграть бесплатный билет на конференцию и получить другие приятные бонусы. В этом году мне повезло выиграть Scholarship. Я посетил конференцию, теперь готов поделиться впечатлениями и рассказать, чем мой билет на WWDC отличался от обычного.

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Истории

Я могу стать Apple, и ты тоже

Время на прочтение7 мин
Количество просмотров11K

Публичное раскрытие уязвимости в сторонней проверке подписи кода Apple


В отличие от некоторых предыдущих работ, данная уязвимость не требует прав администратора, не требует JIT-кода или повреждения памяти для обхода проверки подписи кода. Всё что нужно — правильно отформатированный файл Fat/Universal, и проверка подписи кода покажет валидный результат.

Резюме


  • Найденный обход применяемого сторонними разработчиками API для подписи кода позволяет представить любой код как подписанный Apple.
  • Все известные вендоры и проекты с открытым исходным кодом уведомлены (см. список ниже). Для них доступны патчи.
  • Есть вероятность, что проблема затрагивает другие сторонние программы, где используются официальные API подписи кода от Apple.
  • Разработчики несут ответственность за правильное использование API подписи кода. Есть инструменты демо-взлома (PoC) для тестов.
  • Относится только к macOS и более старым версиям OSX.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии1

Apple объявила устаревшими технологии OpenGL и OpenCL

Время на прочтение3 мин
Количество просмотров54K

Из презентации Apple

Компания Apple обновила документацию для разработчиков. Раздел «Что нового?» посвящён ключевым изменениям в macOS 10.14: это тёмная цветовая схема Dark Mode, новая технология Create ML для создания и обучения нейросетей на Mac, обновлённый Mac App Store с новыми программными интерфейсами для рейтингов и обзоров (под macOS 10.14 SDK), новый сетевой фреймворк Network Framework, предоставляющий прямой доступ к сетевым протоколам TLS, TCP и UDP из приложений, фреймворк Natural Language для анализа естественной речи и вычленения из неё метаданных, специфических для конкретного языка (фреймворк можно использовать совместно с Create ML при обучении нейросетей).

Но самое интересное спрятано в подвале, а именно в разделе «Устаревшие и удалённые API» (Deprecations and Removed APIs). Там упоминается об отказе от «устаревших» технологий OpenGL и OpenCL. Этим технологиям вручается «чёрная метка», то есть Apple настоятельно не рекомендует использовать OpenGL и OpenCL в разработке новых продуктов.
Читать дальше →
Всего голосов 58: ↑51 и ↓7+44
Комментарии127

Apple WWDC 2018: текстовая трансляция

Время на прочтение1 мин
Количество просмотров23K


Ежегодно в начале июня компания Apple проводит всемирную конференцию для разработчиков, которая так и называется — Apple Worldwide Developers Conference. За несколько дней компания знакомит приглашённых с последними инструментами для создания софта и новыми версиями операционных систем. Основные объявления собираются в презентации в первый день конференции.

В этом году мы можем ожидать новые MacBook Air, клавиатуру Butterfly, iPhone SE и iOS, то есть новые функции Siri, AR и NFC. Впрочем, нет смысла загадывать вперёд — презентация начнётся уже в 20:00 по московскому времени.

К сожалению, презентационный зал в Сан-Хосе может вместить лишь несколько тысяч праведников. Остальные вынуждены поглощать разнообразные трансляции из рая. Под катом этого поста мы проведём текстовую трансляцию WWDC 2018.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии14

Экспресс Москва — Сан-Хосе: совместный просмотр WWDC 2018 в офисе Авито 4 июня

Время на прочтение2 мин
Количество просмотров2.4K

Впереди главное событие года любого iOS-разработчика — WWDC 2018. Именно за эти несколько дней Apple выдаст максимум информации о том, какие новые фреймворки и возможности операционной системы ожидают нас осенью.


Если вы не хотите смотреть трансляцию Keynote в одиночестве, а готовы сразу обсудить все новости и новинки с коллегами по цеху, то, как и в прошлом году, приглашаем на коллективный просмотр к нам в Avito! Встреча начнётся 4 июня в 19:00 по московскому времени. Под катом расписание и ссылка на регистрацию.


Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Убираем мусор от XCode

Время на прочтение2 мин
Количество просмотров31K
image

На макбуке кончается место, и остро стоит вопрос что бы прибить. Не понятно, куда оно делось? Знакомая ситуация?

Возможно для кого-то будет новостью, что есть куча мусора, оставшаяся после разработки в XCode, который можно безболезненно прибить. Об этом и поговорим…
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии5

На злобу дня: кроссплатформенный клиент для Telegram на .NET Core и Avalonia

Время на прочтение9 мин
Количество просмотров21K

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.


Egram


Статья затрагивает достаточно базовые концепции разработки на Avalonia. Тем не менее, мы не будем писать "Hello, World". Вместо этого предлагается рассмотреть реальное приложение. Изучим как общую архитектуру приложения, так и отдельные компоненты.


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


Текст статьи носит обучающий характер, но сам проект вполне реальный. Целью проекта является создание клиента, рассчитанного на использование в качестве рабочего инструмента. Множество идей позаимствовано из других мессенджеров и переложено на модель Telegram.

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии22

Релиз PVS-Studio для macOS: 64 weaknesses в Apple XNU Kernel

Время на прочтение29 мин
Количество просмотров6K
Баг в яблокеНовая версия PVS-Studio 6.23 работает под управлением macOS и позволяет проверять проекты, написанные на языке C и C++. К этому событию наша команда решила приурочить проверку XNU Kernel.

PVS-Studio для macOS


С выходом версии анализатора для macOS, PVS-Studio можно смело называть кроссплатформенным статическим анализатором кода для C и C++.
Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии12

В macOS High Sierra обнаружились «Черные дыры»

Время на прочтение4 мин
Количество просмотров43K


Живешь себе живешь, репу не чешешь, в ус не дуешь. И тут внезапно тебе нужно переезжать с обветшавшего iPhone 6 на новенький iPhone X. А поскольку вся твоя жизнь за минувшие семь лет хранится в фоточках и видосиках старого смартфона, терять это добро тебе очень не хочется. И вот ты бэкапишь свое хозяйство через iTunes на Mac, пытаешься переехать на новую «балалайку» и вдруг оказывается, что места для бэкапа нового телефона на жестком диске твоего компьютера уже нет. Ты начинаешь судорожно расчищать авгиевы конюшни дисковое пространство, но результата «нема». Причем удаление «левых файлов» и очистка корзины ни к чему не приводит. Вот такой триллер разыгрался недавно с вице-президентом Parallels Николаем Добровольским. Под катом детективная история про обнаружение им «черной дыры» в macOS High Sierra, поиски истины и счастливый конец, которому могли бы позавидовать главные герои кинофильма «Титаник».
Читать дальше →
Всего голосов 93: ↑80 и ↓13+67
Комментарии107

На чёрном рынке продают валидные сертификаты подписи исполняемого кода для обхода антивирусов

Время на прочтение4 мин
Количество просмотров28K
Сертификаты подписи кода уже несколько лет используются злоумышленниками для вредоносных программ. Ещё в 2010 году исследователи обратили внимание на образцы зловредов с сертификатами, скопированными из «чистых» файлов. Естественно, такая подпись кода не проходила проверку Authenticode (см. презентацию F-Secure на конференции CARO 2010).



Очередной ласточкой стал в 2011 году «правительственный» зловред Stuxnet. Он использовал четыре 0day-уязвимости в Windows, чтобы распространиться и получить права администратора, и был подписан настоящими сертификатами, украденными у Realtek и JMicron. Зловред устанавливался в систему как драйвер Microsoft.



Потом появились другие примеры, а примерно с 2015 года заработал полноценный чёрный рынок валидных сертификатов от авторитетных удостоверяющих центров (УЦ). Такие сертификаты продаются на подпольных форумах вроде российского Antichat.

Есть распространённое мнение, что сертификаты безопасности на чёрном рынке украдены у реальных владельцев. Это не так. Их действительно выдают настоящие УЦ.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии52

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Как кешировать данные AVURLAsset, загруженные AVPLayer'ом

Время на прочтение4 мин
Количество просмотров4.8K

iFunny app image


Привет, Хабр. Меня зовут Влад. Я работаю iOS разработчиком в FunCorp. Мы делаем приложения в сфере развлечений. Возможно, вы слышали о нашем флагмане iFunny и популярном в СНГ приложении АйДаПрикол. В этой статье я расскажу о том, как получить данные видео, загруженные плеером, для дальнейшей работы с ними.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Как научить Launchpad удалять приложения, установленные не через App Store

Время на прочтение1 мин
Количество просмотров8.6K

В современные версии macOS встроен достаточно красивый и удобный интерфейс запуска приложений, именуемый Launchpad. К сожалению, он далеко не идеален. В частности, не позволяет переименовывать приложения, а также скрывать оказавшиеся ненужными, оставляя их при этом на диске. Но упомянутые проблемы легко решаются тем же Launchpad Manager.


Однако существует здесь ещё один достаточно странный момент. Быстро и просто удалить приложение кнопкой в виде крестика над его иконкой можно лишь в случае, если установлено таковое было через App Store.


Добро пожаловать под кат, если интересно, как это можно побороть...


image

Читать дальше →
Всего голосов 33: ↑22 и ↓11+11
Комментарии26

PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA

Время на прочтение10 мин
Количество просмотров9.6K

PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA

Приближается 2018 год и пора подумать о новых направлениях развития нашего статического анализатора PVS-Studio. Сейчас наибольший интерес для нас представляет поддержка языка Java. Дополнительно мы рассматриваем возможность поддержки языка IBM RPG. Не менее интересно развить анализ C, C++ C# кода в направлении выявления потенциальных уязвимостей. Ещё нам хочется поддержать анализ C и C++ кода на платформе macOS, и, наконец, доделать поддержку компиляторов от компаний Keil и IAR. Никуда мы не денемся и от поддержки стандарта MISRA. Перечислено много, и на всё одного 2018 года нам не хватит. Поэтому давайте вместе с нами пообсуждаем наши планы и выберем самые приоритетные направления.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии88

Зачем я купил Mac Mini (Late 2012) накануне 2018 года?

Время на прочтение4 мин
Количество просмотров133K


~ Продать MacBook Pro, которому уже перевалило за 3 года
~ Сменить 13'' экран на парочку 22'' и повысить комфорт разработки
~ Получить мощную машину для быстрой компиляции проектов на Swift


Это основные причины, повлиявшие на покупку Mac Mini. Первые два пункта достаточно очевидны, но вот к последнему пункту явно нужны комментарии…

Читать дальше →
Всего голосов 95: ↑76 и ↓19+57
Комментарии195

Swift не нужен?

Время на прочтение10 мин
Количество просмотров31K
Не перестаю задаваться вопросом — какие у Apple планы на Swift и Objective-C? Когда в 2014 году появился Swift, его создатель Крис Латтнер утверждал, что эти два языка смогут сосуществовать бесконечно долго. Из почтовой рассылки пользователям Xcode:
3 Июня 2014
McLaughlin, Michael P.
Кто-нибудь знает, действительно ли Apple собирается прекратить поддержку С и С++? Fortran уже не поддерживается, хотя осталось еще много кода на Fortran, и сравнительно нового, как в MultiNest.
Пожалуйста, скажите, что это не так. Не все считают, что «опытные пользователи» — это те, кто просто создает полнометражные мультики. Многие из них ученые и инженеры.

Здравствуйте, Michael,
Мы не строили планы на что-либо подобное. Swift — это просто новый вариант разработки под платформу. Мы не собираемся прекращать поддержку ни C, ни C++, ни Objective-C. Если вы разрабатываете на одном из этих языков, можете свободно продолжать его использовать.

— Крис.
Оригинальный текст письма
> On Jun 3, 2014, at 5:45 AM, McLaughlin, Michael P. <mpm...@mitre.org> wrote:
> Does anyone know, for real, if Apple intends to stop supporting C and C++?
> That’s what it sounded like. They already do not support Fortran even though
> there is a *lot* of Fortran code out there, even fairly new code like MultiNest.
>
> Please say it isn’t so. Not all of us consider “power users” to be just those
> who create feature-length cartoons. Many are scientists and engineers.

Hi Michael,

We have no plans to do anything like that. Swift is a new option for developing
on the platform. We have no plans to drop C, C++ or Objective-C. If you’re
happy with them, please feel free to keep using them.

-Chris


Дело в том, что в это никто не верит. Крис Латтнер уже давно покинул Apple, и если его утверждение окажется ложным, он не сможет принять критику от лица компании. В целом разработчики согласились на том, что Apple в конечном итоге откажется от Objective-C, и Swift станет единственным языком «первого класса» для разработки Cocoa-приложений.
Читать дальше →
Всего голосов 29: ↑16 и ↓13+3
Комментарии33

Parallels Desktop 13 — семь советов для эффективной работы

Время на прочтение3 мин
Количество просмотров29K


По умолчанию в Parallels Desktop 13 выставлены оптимальные настройки для работы. Но, если вы привыкли брать от жизни все, держите несколько советов, как увеличить быстродействие и сохранить заряд батареи вашего Макбука.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии18

Управление плеером Yandex.Music в OSX, используя клавиатуру без медиа клавиш

Время на прочтение2 мин
Количество просмотров30K
Недавно я принял решение развернуть в офисе на рабочем компьютере Hackintosh. Все получилось. Единственное, что мне не нравилось это отсутствие медиа клавиш на офисной клавиатуре. Ими я привык управлять музыкой, в том числе на сервисе Yandex.Music. Данная статья посвящена тому, как я исправил ситуацию.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии26