Como vender aplicativos Mac fora da App Store





O Mac sempre foi diferente de seu primo próximo iOS, especialmente em termos do que o usuário pode ou não executar em seu sistema. Mesmo após o advento do Apple Silicon, a Apple deixou claro que o Mac ainda é um Mac e ainda pode ser hackeado , mesmo quando executado em uma nova arquitetura.



Para os programadores, isso significa que, ao desenvolver para a plataforma Mac, temos uma escolha: podemos distribuir aplicativos de forma independente, fora da Mac App Store, apenas por meio da Mac App Store, ou uma combinação de ambos.



Este artigo é o resultado de minhas reflexões sobre este assunto. A intenção era ser um guia sobre o que você deve saber ao distribuir aplicativos Mac fora da App Store, em vez de uma descrição detalhada de etapas específicas. Espero que as informações apresentadas aqui ajudem os novatos a desvendar o mistério deste processo e que minha própria descrição do processo seja útil como um ponto de referência.



App Store e distribuição direta: prós e contras



Todas essas opções têm suas próprias vantagens e desvantagens. Para começar, alguns aplicativos Mac simplesmente não podem ser distribuídos pela Mac App Store. Um exemplo disso é meu aplicativo AirBuddy , que precisa executar um agente de sistema e usar APIs privadas para permitir uma integração profunda com dispositivos sem fio da Apple, o que é proibido na App Store. O mesmo é verdadeiro para muitos outros tipos de aplicativos que simplesmente não podem ser executados sob as restrições da sandbox do Mac.



Para quem tem escolha, compilei uma lista dos prós e contras do lançamento na Mac App Store ou distribuição independente.



Profissionais da Mac App Store



  • A Apple distribui, vende e licencia para você.
  • .
  • Apple .
  • , Apple, , Mac App Store


Mac App Store



  • Apple 15% 30% . , .
  • , , App Review .
  • - «» macOS.
  • .




  • ,
  • macOS , , «», API .
  • .
  • -, App Store
  • , Apple App Store




  • , ( , )
  • (consumable) (non-consumable) ( StoreKit)
  • Apple, , Apple ( , , CloudKit, )


Catalyst SwiftUI



O Catalyst trouxe uma série de novos aplicativos para Mac porque é muito mais fácil pegar um aplicativo de prateleira para iPad e transportá-lo para o Mac. Os aplicativos transferidos para o macOS via Catalyst não precisam ser lançados na App Store, mesmo que o original para iOS esteja lá.



Além disso, atualmente não há TestFlight para macOS (um dos meus desejos para 2021), então se você quiser distribuir compilações beta de um aplicativo criado pelo Catalyst, isso deve ser feito fora da Mac App Store, e isso não é muito diferente da distribuição do aplicativo na produção.



Muito do que é descrito neste artigo se aplica a aplicativos Catalyst - afinal, esses são aplicativos Mac, mas alguns aplicativos exigirão hacking adicional - a Apple impede que todos os recursos do AppKit sejam usados ​​diretamente de um aplicativo Catalyst. Entretanto, com um pouco de trabalho, você pode fazer o aplicativo Catalyst usar muitos dos recursos do Mac, incluindo suporte a AppleScript e outros recursos.



Ao desenvolver aplicativos SwiftUI para Mac, não deve haver grandes diferenças no processo de distribuição, porque em um aplicativo SwiftUI, podemos usar todas as funções da API do macOS sem os hacks necessários para aplicativos Catalyst.



Propagação



A distribuição de um aplicativo tem dois aspectos: baixar, salvar e baixar o binário do aplicativo e suas atualizações e criar um pacote que funcionará para seus usuários.



Hospedagem



O primeiro grande passo para colocar seu aplicativo Mac nas mãos de usuários que não são da App Store é escolher como distribuir seu binário. A falta de uma App Store significa que você terá que hospedar os binários e atualizações do aplicativo em algum lugar da Internet, fornecendo aos usuários um link para download.



Isso pode ser feito de muitas maneiras diferentes. Para um aplicativo de código aberto, você pode usar versões no Github e até hospedar um feed de atualização do aplicativo em um repositório Github. É assim que distribuo o aplicativo WWDC para macOS .



Para aplicativos comerciais, usei o Backblaze B2 para armazenar binários de aplicativos, atualizações delta e feed de atualização, fazendo proxy de todas as solicitações por meio do Cloudflarepara que eu tenha meu próprio domínio para download / atualizações e também adicione filtragem, cache e lógica ao servidor, se necessário.



B2 é um provedor extremamente acessível (raramente pago mais de US $ 1 por mês). A maioria dos aplicativos do Mac é pequena, então mesmo que o download do seu aplicativo seja pesado, é improvável que você precise pagar muito por armazenamento / largura de banda. Os buckets do Amazon S3 são outra opção popular, mas seu painel me apavora, então eu prefiro o B2, que é muito mais simples (e barato).



Até agora não automatizei o estágio de publicação dos lançamentos de meus aplicativos, então, para baixar um novo lançamento, basta usar o Transmitcomo um cliente para meus baldes B2. A propósito, antes de enviarmos a versão para o servidor, há mais uma etapa importante: obter o arquivo necessário para fazer o upload.






Publicidade



Se você precisa de um servidor na Rússia para depurar ou hospedar projetos, nossos servidores épicos são perfeitos para você . Criação da sua própria configuração em alguns cliques, faturamento diário de servidores, anti-DDoS na caixa, um painel de controle conveniente. Melhor tentar uma vez!










Confirmação e embalagem



Ao exportar um aplicativo compactado do Xcode, temos duas opções principais de distribuição: App Store Connect e Developer ID. Para distribuir aplicativos sem a App Store, usaremos o ID de desenvolvedor.



A mesma conta de desenvolvedor que você usa para distribuir aplicativos por meio da Mac App Store também pode ser usada para assinar aplicativos quando você distribui aplicativos usando um ID de desenvolvedor. O certificado em si é diferente, mas o Xcode irá gerá-lo e instalá-lo automaticamente se você ainda não o fez durante o processo de exportação.



Desde o lançamento do macOS Catalina, todos os aplicativos que são distribuídos diretamente aos usuários devem ser validados pela Apple, caso contrário, eles não serão iniciados por padrão. O processo de verificação envolve a entrega do aplicativo à Apple, que realiza a inspeção automatizada de malware e “marca” seu binário com uma assinatura especial que permite sua execução. Este não é um procedimento de revisão de aplicativo, mas uma verificação automatizada que impede que o malware se espalhe dessa forma. Também permite que a Apple sinalize um único arquivo binário como malware, em vez de toda a conta do desenvolvedor, caso ele seja comprometido.



A capacidade de validar o binário diretamente no organizador do Xcode depende do método de empacotamento que você escolher para distribuir o aplicativo. Você não pode simplesmente fazer o upload de uma pasta .app



para um servidor e permitir que os usuários façam o download, ela precisa ser transformada em um arquivo não estruturado. A maneira mais fácil de fazer isso é compactar o aplicativo com zip e distribuí-lo como um arquivo zip; no entanto, em minha experiência, distribuir o aplicativo como um arquivo DMG reduz significativamente o número de solicitações de ajuda dos usuários.



Você provavelmente já viu DMG ao baixar arquivos Mac. Essas são imagens de disco que o macOS monta quando você clica duas vezes no Finder. Eles também podem conter instruções gráficas sobre como arrastar e soltar o aplicativo na pasta Aplicativos. Isso facilita a vida do usuário e reduz a probabilidade de que ele inicie o aplicativo a partir da pasta Downloads ou de algum outro local arbitrário.



Se você for distribuir seu aplicativo como um DMG, basta exportá-lo selecionando a opção ID do desenvolvedor no Xcode sem notarização e, em seguida, validar o próprio DMG. O Xcode não tem uma opção de exportação para DMG, então você terá que usar uma ferramenta de terceiros. Eu gosto de trabalhar com create-dmg... Além disso, criei e abri o código da ferramenta dmgdist que automatiza o processo de criação, download e carimbo de um DMG para que você possa obter uma imagem pronta para distribuição com um único comando.



Para distribuir seu aplicativo como um arquivo zip, o processo de provisionamento é mais simples: após selecionar o Xcode Developer ID, selecione a opção de upload. Uma versão verificada do aplicativo será gerada, que pode então ser compactada e distribuída.



Atualizações de aplicativos



Outro aspecto da App Store é que ela lida com atualizações de aplicativos. Quando carregamos uma nova versão no App Store Connect e ela é validada, uma atualização fica disponível para os usuários na App Store. Precisamos recriar de alguma forma esse processo para aplicativos redistribuíveis diretos.



A melhor (e mais popular) maneira é usar o Sparkle . Já existe há muitos anos e se tornou quase a forma oficial de distribuição de atualizações para aplicativos Mac vendidos fora da Mac App Store.



Agora Sparkle parece estar vivendo uma vida dupla. Você pode usar a versão "legada" do Sparkle ou a ramificação mais moderna "v2", que inclui muitas melhorias, como a capacidade de atualizar aplicativos usados ​​na "sandbox". Ainda uso a versão legada porque estou familiarizada com ela, e integrar a versão mais moderna ainda parece um pouco complicado. Não há necessidade de consertar o que não está quebrado.



O processo de geração de uma atualização de aplicativo geralmente ocorre da seguinte maneira: verificamos se a versão do aplicativo fica maior a cada atualização, criamos um pacote conforme descrito acima (o Sparkle entende pacotes zip, DMG e instalador) e, em seguida, usamos a ferramenta generate_appcast



para atualizar o feed. Depois disso, carregamos os deltas, o pacote da nova versão e o feed AppCast atualizado para a hospedagem selecionada, após o que os usuários verão a nova versão verificando se há atualizações dentro do aplicativo.



Pode parecer assustador e definitivamente requer prática, mas uma vez configurado, o processo acaba sendo completamente descomplicado (muito melhor do que trabalhar com o App Store Connect, na minha opinião).



Ganhar dinheiro fora da Mac App Store



Se você deseja distribuir seu aplicativo Mac fora da App Store, é provável que em algum momento você queira ganhar dinheiro com isso. Assim como na App Store, muitos modelos de negócios diferentes podem ser usados, mas o mais popular para venda direta aos clientes é o bom e velho modelo de pagamento antecipado: o usuário paga para baixar o aplicativo, registra-o com uma chave de licença e obtém atualizações de graça, pelo menos, por um período de tempo.



Outro modelo de negócios popular para aplicativos distribuídos fora da App Store é o modelo de assinatura, em que os usuários pagam uma taxa mensal ou anual para continuar usando o aplicativo. É possível escrever um guia completo (ou uma série de guias) para a escolha de um modelo de negócios, então não estou ajudando você com isso. Nesta seção, assumirei que estou usando o modelo de pagamento que escolhi para minhas inscrições.



Para receber o pagamento por seu produto, você precisa de algum tipo de loja que os usuários visitem, aprendam sobre o aplicativo e comprem (se tiverem sorte). Uma boa opção para iniciantes é o site Gumroad , que oferece uma página da loja, processamento de pagamentos, hospedagem e licenciamento. Quando lancei a primeira versão O AirBuddy em janeiro de 2019 usou o Gumroad e me serviu muito bem, vendendo dezenas de milhares de cópias do aplicativo ao longo de um ano.



No entanto, Gumroad não foi originalmente projetado para vender software, por isso não tem a flexibilidade que outros serviços têm. Após o lançamento do meu novo aplicativo FusionCast e AirBuddy 2.0, mudei para o Paddle , que agora lida com o processamento de pagamentos e licenciamento de meus aplicativos.



Outra opção é simplesmente usar um serviço de pagamento como Stripe ou FastSpring, ou você pode processar pedidos e licenciar-se. Isso oferece flexibilidade ideal, embora você precise trabalhar mais e provavelmente precise pagar por serviços adicionais (como o envio de e-mails).



Eu diria que se você está procurando ganhar algum dinheiro vendendo aplicativos Mac fora da Mac App Store, então Gumroad é a melhor opção, já que este site faz quase tudo para você e você nem mesmo precisa criar um site para o aplicativo. No entanto, se você vende aplicativos como uma empresa ou sua principal fonte de receita, uma solução profissional com menos restrições, como o Paddle, fornecerá mais flexibilidade.



Licenciamento, proteção contra cópia e pirataria



Se você distribuir aplicativos Mac diretamente, pode acabar pirateando: qualquer um pode pegar o binário do seu aplicativo e executá-lo sem pagar uma licença, a menos que você habilite algum tipo de proteção contra cópia.



Embora seja esse o caso, cheguei à conclusão de que os desenvolvedores, especialmente os independentes, não devem gastar uma quantidade significativa de tempo construindo proteção contra cópia. Sim, algumas pessoas vão roubar seu trabalho, mas não pagariam de qualquer maneira, então o tempo gasto se preocupando com isso ou incorporando DRM superavançado em um aplicativo é tempo que poderia ser gasto corrigindo bugs e desenvolvendo novos recursos. Além disso, essas práticas acabam punindo usuários legítimos com mais frequência do que desencorajando a pirataria (basta olhar para os muitos exemplos disso na indústria de desenvolvimento de jogos).



Na primeira versão do AirBuddy, não havia proteção contra cópias, nem mesmo o formulário de registro mais simples para inserir uma chave de licença. Encontrei várias cópias enroladas na Internet (é claro, algumas delas estavam infectadas), mas não vi sinais de que o aplicativo seja pirateado por uma grande porcentagem de usuários e meus indicadores também não refletem isso. Na versão 2, eu uso o Paddle SDK para me registrar ao instalar o aplicativo, mas é só isso.



Os aplicativos distribuídos pela Mac App Store também não têm proteção antipirataria automática: você precisa verificar manualmente a App Store para certificar-se de que a cópia é legal. A maioria dos códigos de verificação de cheques são facilmente hackeados, portanto, um aplicativo distribuído pela Mac App Store não é mais seguro contra pirataria do que um aplicativo distribuído diretamente.



Marketing



Eu adicionei esta seção principalmente para dizer que não há grande diferença de marketing entre a distribuição direta de um aplicativo Mac e a distribuição por meio da Mac App Store. Hoje em dia, simplesmente lançar um aplicativo na App Store não significa quase nada, porque é improvável que os usuários simplesmente descubram um aplicativo totalmente novo sem informações externas.



Ao distribuir por meio da App Store, você pode pular a etapa de criação do site, já que pode usar uma página da App Store como vitrine principal, mas, mesmo assim, acredito que a maioria dos aplicativos se beneficiará de ter uma página de destino separada.



O marketing de aplicativos em si pode ser um tópico para mais um tutorial, mas em geral, quaisquer canais disponíveis para você podem ser recomendados, especialmente se você já tem seguidores (Twitter, Instagram, TikTok, etc.). Enviar seu aplicativo (com uma licença gratuita) para sites e revisores de aplicativos Mac também pode ser uma ótima maneira de aumentar a popularidade. Você também pode usar anúncios pagos em redes sociais, podcasts e publicações.



All Articles