
Como funcionam os clipes de aplicativos
O App Clip é parte de um aplicativo completo (de acordo com as regras da Apple, os App Clips não podem ultrapassar 10 MB), aprimorado para realizar uma tarefa específica. Por exemplo, pedir comida, comprar uma passagem, reservar um hotel, etc. Ao mesmo tempo, o App Clips não precisa ser instalado - você só precisa executá-lo a partir do link.
Os gadgets não são salvos nas telas iniciais de seu smartphone ou tablet iOS, mas estão localizados na Biblioteca de aplicativos. Eles são excluídos automaticamente do dispositivo 30 dias após o último lançamento. Para conveniência dos usuários, o App Clips tem a capacidade de adicionar suporte para Apple Pay e fazer login via Apple ID para autorização rápida e pagamento de serviços e mercadorias - sem registrar, inserir informações adicionais e números de cartão bancário.

A Apple também fez muitas opções para o lançamento de clipes de aplicativos tanto offline quanto online:
- clipes de aplicativos de marca
- Etiqueta NFC
- Código QR
- Link de url
- bandeira
- Apple Maps
- Siri.

Ao mesmo tempo, os clipes de aplicativos usam a mesma base de código do aplicativo principal e, em seu formato, são mais como um plugin ou contêiner.
Um guia rápido para adicionar clipes de aplicativos ao Rambler / Checkout
Neste artigo, queremos falar sobre algumas das nuances da criação de clipes de aplicativo para aplicativos Rambler / Caixa.
No momento, desenvolvemos um algoritmo para integrar o mini-aplicativo:
- Você precisa adicionar o AppClip de destino ao projeto, enquanto especifica o projeto de destino como o pai (em nosso caso, o destino Kassa).
- Adicione os pods necessários, se necessário, especificando-os para um destino específico no Podfile (execute a instalação do pod).
- App Clips Signing & Capabilities Associated Domains appclips:{ , App Clips}. «/» appclips:kassa.rambler.ru appclips:m.kassa.rambler.ru.
- target App Clips, .
- url App Clips App Clips , Apple
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void -> Bool. - ( App Clips) AppStore.
- !
Depois que o usuário clica em "Open AppClip / Application" na tela pop-up com App Clips, o método dispara:
func application (_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
O userActivity.webpageURL contém a URL que costuramos como um link para os clipes de aplicativo.
Em seguida, com base nos parâmetros deste link, será aberta a tela do aplicativo desejado.
Tipos de links
No momento, Rambler / Cashier App Clips oferece suporte a três cenários de compra de ingressos:
- abrir a tela de detalhes de um evento específico;
- abrir a tela de detalhes para um local específico;
- abrindo uma tela para uma sessão específica para um evento específico.
Para teste, pegamos links funcionais para eventos disponíveis no Rambler / Caixa com diferentes parâmetros.
1. Evento . Pegamos creationid, cityid, creationtype como parâmetros de entrada:
m.kassa.rambler.ru/msk/movie/100547?creationid=100547&cityid=2&creationtype=movie O
link abre a tela de detalhes do evento, o ambiente é idêntico à compra de um ingresso em um aplicativo completo, exceto pelos seguintes itens :
- não há botão para adicionar aos favoritos na tela de detalhes do evento;
- não há exibição de vídeo nos detalhes do evento.
2. Localização . Placeid, cityid, creationtype foram usados como parâmetros de entrada:
m.kassa.rambler.ru/msk/cinema/formula-kino-cdm-54351?placeid=97417&cityid=2&creationtype=movie O
link abre a tela de detalhes do lugar, o ambiente é idêntico ao de comprar um ingresso completo aplicação, exceto para:
- a tela de detalhes do local não tem uma barra inferior com funcionalidade para navegar até um local, adicioná-lo aos favoritos e compartilhar um link.
3. Link para uma sessão específica . Usamos sessionid como parâmetros de entrada:
m.kassa.rambler.ru/msk/concert/717293?cityid=2&sessionid=54293235 O
link abre uma tela com uma sessão específica (na forma de um diagrama de mesa ou hall), o ambiente é idêntico à compra de um ingresso em um aplicativo completo.



Problemas e soluções
1. O clipe de aplicativo inicia e trava
O problema é observado ao usar pods de terceiros. Ao construir o produto, as bibliotecas não são copiadas para o diretório final. O motivo é a falta de um script nas fases de construção.
Para resolver esse problema, você precisa adicionar um script (vamos chamá-lo de [CP] Embed Pods Frameworks):
$ {PODS_ROOT} / Target Support Files / Pods- {aqui o nome do destino com o upclip} / Pods- {aqui o nome do destino com o upclip} -frameworks.sh
No caso de Rambler / Cashier, o script se parece com este:
$ {PODS_ROOT} / Target Support Files / Pods-KassaAppClip / Pods-KassaAppClip-frameworks.sh
2. O assembly com App Clips é coletado, arquivado e enviado para a AppStore, mas vem uma rejeição para pesos de aplicação
Principalmente a causa desse problema são alguns recursos grandes e bibliotecas de terceiros.
Uma solução para reduzir o tamanho da biblioteca no arquivo de destino é habilitar o Bitcode (Build Settings / Build Options / Enable Bitcode).
3. Em App Clips, o método UIDevice.current.identifierForVendor retorna 000000-0000-000000 .....
Isso se deve a um recurso de App Clips: acesso restrito da Apple ao identificador por motivos de segurança. Nos Rambler / Cashier App Clips, usamos um sal de 32 dígitos gerado aleatoriamente.
Qual é o resultado final?
Clipes de aplicativos são uma boa maneira de aumentar as conversões para aplicativos de e-com como Rambler / Checkout. Todos permanecem no preto:
- os usuários podem comprar um ingresso rapidamente sem baixar ou instalar o aplicativo principal;
- , iOS 14:
