Dev

Projetando um DMG de distribuição para seu app macOS (2): Coordenadas de layout de janela e ícones, e automação

Completando o layout do DMG com coordenadas Na Parte 1, apresentamos a ferramenta create-dmg e preparamos uma pasta de staging contendo apenas o .app junto com uma imagem de fundo. Agora a peça final, o layout. Com que tamanho abrir a janela do DMG e onde colocar o ícone do app e o atalho para Applications — tudo isso é decidido pelas coordenadas que você passa para o create-dmg. Neste artigo, projetaremos essas coordenadas uma por uma. ...

21 de maio de 2026 · 9 minutos · 1731 palavras · Juhyun Lee
English 한국어 日本語 简体中文 Bahasa Indonesia Español Français Tiếng Việt 繁體中文
Dev

Projetando um DMG de distribuição para seu app macOS (1): create-dmg e preparando a imagem de fundo

A primeira tela que um usuário vê Quando você distribui um app macOS por conta própria, o usuário baixa um arquivo .dmg e dá um duplo clique nele. Nesse momento, uma única janela do Finder se abre. Esta janela é a primeira tela onde o usuário encontra seu app. Uma janela .dmg bem feita geralmente tem esta aparência — uma imagem de guia preenche o fundo, o ícone do app fica à esquerda e um atalho para a pasta Applications fica à direita. O usuário conclui a instalação arrastando o ícone do app para Applications. Esse fluxo de “arrastar para instalar” é efetivamente a experiência de instalação padrão para apps macOS independentes. ...

20 de maio de 2026 · 8 minutos · 1639 palavras · Juhyun Lee
English 한국어 日本語 简体中文 Bahasa Indonesia Español Français Tiếng Việt 繁體中文
Dev

Publicando um app macOS na Mac App Store (3): Configurações de upload e registro no App Store Connect

O caminho que envia um build para a App Store Na Parte 1 criamos o target de build MAS e na Parte 2 criamos os arquivos de configuração e a ramificação de código que separam os dois canais. O target FocusTimer MAS agora está em uma forma que pode ser colocada na App Store. Nesta parte final, vamos configurar o caminho para fazer o upload desse build para o App Store Connect e explicar como verificar os dois canais para que permaneçam íntegros daqui para frente, concluindo a série. ...

19 de maio de 2026 · 6 minutos · 1104 palavras · Juhyun Lee
English 한국어 日本語 简体中文 Bahasa Indonesia Español Français Tiếng Việt 繁體中文
Dev

Publicando um app macOS na Mac App Store (2): Separando configurações e código entre os canais

Tornando o target verdadeiramente “específico para MAS” Na Parte 1, registramos um Bundle ID exclusivo para MAS e duplicamos o target de build FocusTimer MAS. Mas esse target ainda é apenas uma cópia do target de distribuição direta. Um build MAS precisa diferir do build de distribuição direta em três aspectos. Entitlements — apenas o conjunto mínimo adequado para a App Store Info.plist — remova as chaves do Sparkle, adicione metadados da App Store Código — ramifique para que compile mesmo sem o Sparkle Neste artigo, vamos separar todos os três. ...

18 de maio de 2026 · 7 minutos · 1401 palavras · Juhyun Lee
English 한국어 日本語 简体中文 Bahasa Indonesia Español Français Tiếng Việt 繁體中文
Dev

Publicando um app macOS na Mac App Store (1): Criando um target de build separado

Outro canal de distribuição — a Mac App Store A série anterior cobriu a configuração inicial para distribuir um app macOS diretamente com um Developer ID. Uma vez que você tenha certificados, notarização, atualizações automáticas com Sparkle e um feed de atualizações hospedado, pode permitir que os usuários baixem um arquivo .dmg diretamente sem passar pela App Store. Esta série cobre a configuração inicial para colocar esse mesmo app na Mac App Store (MAS) também. Os dois métodos de distribuição não são uma escolha mutuamente exclusiva. Você pode operar um único app pelos canais de distribuição direta e da App Store ao mesmo tempo. A App Store tem a Apple gerenciando pagamentos, reembolsos e visibilidade nas buscas em seu nome, e traz maior confiança dos usuários, então operá-la junto com a distribuição direta é uma escolha comum. ...

17 de maio de 2026 · 8 minutos · 1549 palavras · Juhyun Lee
English 한국어 日本語 简体中文 Bahasa Indonesia Español Français Tiếng Việt 繁體中文