Vimari: Status de obtenção da extensão disponível na loja Safari Extension

Criado em 11 jul. 2018  ·  37Comentários  ·  Fonte: televator-apps/vimari

Acabei de me inscrever no Apple Developer Program e verificarei quais mudanças precisam acontecer no código antes de enviá-lo para revisão.

Vou mantê-lo atualizado sobre esta questão!


ATUALIZADA
Leia a edição completa para contextualizar.

PENDÊNCIA

  • [ ] Definições
  • [] Tornar possível abrir vários links em novas guias
  • [] Descubra como distribuir extensão
  • [] Qual site abrir na nova guia? String vazia não funciona, então precisamos de outra coisa, de preferência o equivalente a about:config em outros navegadores

Comentários muito úteis

Olá a todos,

Como mencionei anteriormente nesta edição, tenho lidado com alguns problemas pessoais nos últimos meses, mas as coisas estão muito melhores agora! Como resultado da melhoria da minha qualidade de vida, estou muito mais ocupado com atividades longe do computador, então não tenho tanto tempo e energia para me dedicar ao código aberto. Espero encontrar a centelha motivacional para lançar as configurações e publicar a extensão na App Store em breve.

Espero que todos vocês que doaram não se sintam enganados de alguma forma. Obrigado a todos por serem pacientes e compreensivos ❤️

Todos 37 comentários

Leia os documentos da Apple e eles são ótimos. Parece que o código precisa ser agrupado em um aplicativo macOS, mas não diz de qual tipo. Estarei ocupado por alguns dias agora, mas tentarei espremer um pouco desse trabalho.

Se alguém tiver experiência ou quiser ajudar, por favor me avise.

Já faz algum tempo que estou brincando com isso, e cara ... os médicos estão me matando. Estou curioso para saber como eles esperam que todos migrem suas extensões do Safari para extensões de aplicativos do Safari com esta documentação pobre que não tem nenhum exemplo. Vai demorar muito até que todas as extensões sejam migradas: /

De qualquer forma, eu tenho algo instalado e funcionando agora, posso usar a extensão, mais ou menos, mas preciso entender as diferentes etapas de carregamento da extensão antes de prosseguir. Além disso, não encontrei nenhum suporte para ter configurações para a extensão, o que seria péssimo se isso fosse verdade.

Também acho que podemos escapar sem ter a extensão na App Store, mas ainda não tenho certeza. Eu li em alguns fóruns sobre isso, mas não investiguei mais de perto. Isso significaria que temos lançamentos instantâneos, mas com a desvantagem de que você tem que vir aqui no Github para baixá-lo - em vez de abrir a App Store. Investigarei isso mais adiante.

Eu tenho uma versão que funciona com o Safari 12 agora. É uma solução muito hacky, mas funciona. No entanto, as configurações não podem ser alteradas a menos que você as altere no código.

Siga o progresso em meu PR # 104.

Eu fundi o PR com a extensão de aplicativo nele. Forneci instruções sobre como instalá-lo. Por favor, todos que atualizaram para o macOS Mojave, sigam os passos e nos avisem se algo não estiver funcionando para vocês. Vou continuar trabalhando no código para torná-lo mais agradável, mas por enquanto você terá a funcionalidade básica da extensão.

Enviar um ping para todos os que estiveram envolvidos nisso até agora para que possamos obter alguns comentários sobre isso:
@jad @jaredmichaelwilliams @olivierlefloch @afarrell @weirdfishes @LiYunyang @pcejrowski @lamons @hcgatewood @LeonardCohen @ovisan @jezkline @danielcompton @guyht

Aqui estão as instruções .

Obrigado.

Estou no Mojave (18A326h). Conforme eu construo os projetos, há um erro:

erro: A tarefa falhou com o sinal de saída 1 0 {
/ usr / bin / codesign '--force' '--sign' '0CA31562965A44B984D08063E858CC715E0B0B34' '--verbose' '/ Users / liyunyang / Library / Developer / Xcode / DerivedData / vimari-gcitcrkzdthheyeahqdfyuuyers / Debugri / Debugri / Produtos app / Contents / Frameworks / libswiftAppKit.dylib '
}

@LiYunyang Você tentou alguma dessas duas soluções ?

Depois de passar mais tempo nisso, não tenho certeza se conseguiremos migrar todos os recursos, nem mesmo alguns básicos :(. A API é tão limitada, a menos que você esteja trabalhando com um popover ou barra de ferramentas. Não entendo o porquê e estou tentando o meu melhor para encontrar informações, mas uma vez que isso é tão novo + documentação horrível da Apple, não há nenhuma. Como abrir uma nova guia é trivial com um popover / clique na barra de ferramentas, mas impossível de outra forma. A Apple vai matar a maioria das as extensões atuais com esta abordagem. Vou continuar tentando, mas não posso prometer nada.

Obrigado @simeg. Criei-o com sucesso com meu próprio certificado de desenvolvedor e funciona com Safari 12 no macOS 10.13.6 High Sierra.,

@akrabat Fico feliz que esteja funcionando para você. Você foi obrigado a usar seu próprio certificado de desenvolvedor para fazê-lo funcionar?

sim. Ocorreu um erro na compilação relacionado aos certificados, então selecionei o meu na lista suspensa.

Depois de tirar alguns dias de descanso e obter ajuda, consegui encontrar algumas informações que acho que nos tornarão capazes de migrar mais recursos do que eu esperava inicialmente! Então, o que está no meu radar agora:

  • Migrando todos os recursos
  • Certificando-se de que é possível instalar a extensão sem ter um certificado de desenvolvedor. Se você tentou e falhou, seria útil se você pudesse postar a (s) mensagem (ns) de erro aqui, porque agora não tenho certeza de como consertar isso

[discurso retórico] [Não sou o único desenvolvedor frustrado] (https://forums.developer.apple.com/thread/62410), ao que parece. Fiz o que o staff da Apple recomendou, apresentei um Bug Report onde peço uma API com mais funcionalidade. É difícil, mas não sei mais o que fazer. Espero que a Apple perceba que está acabando com o ecossistema de extensões do Safari e mude a API e escreva uma documentação melhor. [/ rant]

Aqui estão os recursos especificados no README:

f Alternar links
F Alternar links (abrir link em uma nova guia)
k Scroll up
j Role para baixo
h Role para a esquerda
l rolar para a direita
u Rolar meia página para cima
d Role meia página para baixo
gg Vá para o topo da página
G Vá para o final da página

H História voltar
L História adiante
r Recarregar
w Próxima guia
q Aba anterior
x Feche a guia atual e vá para a guia à esquerda
X Feche a guia atual e vá para a guia à direita
t Abra uma nova aba (esta nem parece estar funcionando na versão 1.12)

As linhas tachadas não funcionarão no Safari App Extensions com a API atual, o que é uma droga. Também preciso descobrir como gerenciar as configurações. Tenho certeza de que isso pode ser feito, mas pode levar algum tempo. No entanto, agora que esse trabalho foi feito, posso me concentrar em tornar o vimari disponível para todos, tanto por download quanto no futuro na App Extension Store.

Lamento que muitos de vocês doaram dinheiro para obter 100% da funcionalidade disponível no Safari 12, mas não há nada que eu possa fazer para alterar a API :( Espero que tenham entendido, e ainda estou empenhado em tornar esta extensão melhor.

FWiW, Os que estão disponíveis são os mais importantes para mim. Embora eu não conseguisse fazer F funcionar e tive que remapear para t .

@akrabat Nem tudo está mesclado no master ainda, então isso é esperado.

Obrigado @simeg! Ele está funcionando na minha máquina Mojave. (Surpreendentemente, não fiz nenhuma alteração nas minhas configurações anteriores, apenas funcionou sozinho.)

@LiYunyang Fico feliz em saber que está funcionando para você! Você teve que assiná-lo com sua conta de desenvolvedor? Além disso, tenho um PR aberto com mais alguns recursos implementados que ainda não mesclei com o master, portanto, se você verificar novamente em alguns dias, obterá mais recursos. Como abrir um link em uma nova aba ( shift + t ) ou abrir uma nova aba vazia ( t ). Existem alguns pequenos problemas relacionados a eles, mas estou trabalhando nisso.

@simeg Eu

Acabei de mesclar meu branch em que estou trabalhando no master, que permitirá dois novos recursos: abrir um link em uma nova aba ( shift + t ) e abrir uma nova aba vazia ( t ). Ele tem uma barra de ferramentas que não faz nada no momento, estou tentando descobrir como fazer as configurações, então ignore-a por enquanto.

Então, parece que é preciso alterar a conta de assinatura no Xcode para compilar - entrar com sua conta da Apple no xcode e usar isso parece funcionar muito bem.
Quando se trata de alternar ou fechar guias: @simeg está certo - não há suporte para isso na API no momento e, a menos que a Apple o adicione, não acho que haja nada a fazer. A Apple permite que extensões de aplicativos acessem a guia ativa, mas não permite fechá-la. Eles também não permitem o acesso a todas as guias abertas. A API é literalmente inútil e não tenho ideia de por que a Apple decidiu fazer algo assim. Com esta API, você pode abrir a guia, ir para url, sobrepor a página ativa com alguns novos elementos gráficos, mas isso é tudo

@Rahlir Sim, ainda tenho alguns pequenos problemas como esse para resolver. Não tenho certeza de como fazer isso. Vou publicar isso na extensão oficial do aplicativo em breve e espero que isso acabe com esse tipo de problema. Também estou confuso sobre por que a Apple faria algo assim. Acho que vai diminuir seriamente o uso do Safari.

O que estou tentando descobrir agora são as configurações. Não consigo encontrar nenhuma informação sobre qual é a forma recomendada, então estou tentando ver o que outras pessoas fizeram olhando seu código, mas estou progredindo lentamente. Manterá você atualizado.

O que estou tentando descobrir agora são as configurações. Não consigo encontrar nenhuma informação sobre qual é a forma recomendada, então estou tentando ver o que outras pessoas fizeram olhando seu código, mas estou progredindo lentamente. Manterá você atualizado.

Se você está falando sobre como armazenar configurações em seu código Swift nativo, a forma recomendada seria UserDefaults .

https://www.hackingwithswift.com/read/12/2/reading-and-writing-basics-userdefaults

Obviamente, você terá que ter sua lógica de salvar / carregar no Swift e, em seguida, passá-la para o seu JS com um evento. (algo como "getSettings" "saveSettings" provavelmente)

É absolutamente insano quanta funcionalidade eles removeram das extensões. Se eles realmente quiserem boas extensões, eles terão que implementar o padrão WebExtensions, caso contrário, quase ninguém converterá / suportará suas extensões para o Safari.

Se você tiver alguma dúvida sobre as extensões de aplicativos do Safari e não conseguir encontrar a documentação, sinta-se à vontade para me enviar um ping, eu tenho andado fundo nessas extensões por cerca de 6 meses agora odiando a Apple a cada segundo delas.


Uma observação sobre a funcionalidade da guia ausente, porém, você pode usar uma maneira super hacky de interagir com as guias:

Apple Script.

Em seu código Swift, você pode executar um script AppleScript que irá interagir com as guias para você. Um exemplo de script que pode alterar a guia atual:

tell front window of application "Safari"
    set current tab to tab ((get index of current tab) + 1)
end tell

tell front window of application "Safari"
        close current tab
end tell

Primeiro tell abrirá / ativará a guia à direita da guia atual. O segundo tell fechará a guia atualmente aberta. Assim, você pode criar funções AppleScript para "guia seguinte / anterior" e "fechar corrente ir para esquerda / direita". Você apenas terá que descobrir como escrever o AppleScript para fazer o que deseja.

O problema com isso é que tenho quase certeza de que chamar scripts AppleScript quebrará a caixa de proteção do aplicativo, o que significa que você não pode enviá-lo para a App Extension Store. Portanto, você teria que distribuí-lo sozinho. (Ainda precisa ser assinado)

Para ser justo, na verdade, não testei esse método de guia, mas no passado testei rodar o AppleScript a partir de uma extensão Swift Safari e usá-lo para fazer coisas no Safari. Mas não lancei nada usando ainda.

EDITAR:

Eu meio que comecei a duvidar de mim mesmo, então fui em frente e fiz uma prova de conceito usando a versão atual neste repositório: https://streamable.com/kions

Isso usa meu AppleScript acima para alterar as guias. O código está usando NSAppleScript e a sandbox do aplicativo não precisa ser desativada.

Mas você deve adicionar um "Direito de Exceção Temporária" ao seu arquivo de direitos.

<key>com.apple.security.temporary-exception.apple-events</key>
<string>com.apple.Safari</string>

Documentação: https://developer.apple.com/library/archive/documentation/Misc Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html#//apple_ref/doc/uid/TP40011195 -CH5-SW3

Não tenho certeza de como isso afeta a aprovação para a App Extension Store.

Parece que se você tiver um motivo válido e a Apple concordar que será aprovado: https://stackoverflow.com/a/13903333/7768060

@ jdf221 Uau, você não sabe o quanto eu aprecio ter alguém a quem fazer perguntas - eu realmente aprecio isso. Eu gostaria de ter energia para trabalhar mais nisso no momento. Estou enfrentando algumas coisas difíceis em minha vida pessoal no momento, mas espero encontrar alguma motivação para voltar a este projeto. Agradeço a paciência de todos.

Eu só queria entrar e dizer que seria incrível se estivesse na app store.

Acabei de passar muito tempo tentando compilá-lo antes de conseguir graças a isso: https://stackoverflow.com/questions/39754341/none-of-your-accounts-are-a-member-code-signing-errors- após atualização para xcode

Foi doloroso

Olá a todos,

Como mencionei anteriormente nesta edição, tenho lidado com alguns problemas pessoais nos últimos meses, mas as coisas estão muito melhores agora! Como resultado da melhoria da minha qualidade de vida, estou muito mais ocupado com atividades longe do computador, então não tenho tanto tempo e energia para me dedicar ao código aberto. Espero encontrar a centelha motivacional para lançar as configurações e publicar a extensão na App Store em breve.

Espero que todos vocês que doaram não se sintam enganados de alguma forma. Obrigado a todos por serem pacientes e compreensivos ❤️

@simeg podemos convencê-lo a compartilhar os direitos de publicação / abrir um pouco a equipe de desenvolvedores? Estou registrado como um desenvolvedor Apple e adoraria publicá-lo e continuar ajudando.

Ei pessoal, passei algum tempo esta manhã fazendo isso funcionar e foi submetido para verificação. Se tudo correr bem, espero ver Vimari na Mac App Store em alguns dias. Fiz um fork personalizado, incorporei um PR recente que inclui um ícone legal, etc.

MAS , eu gostaria de alertar que existe outra solução que já existe na app store e parece ser muito melhor mantida. Verifique sVim: https://github.com/flipxfx/sVim

Se você apenas deseja usar algo que funcione como o Vimium sem ter que construí-lo você mesmo, que é o que eu sinto que é o que 95% das pessoas desejam, basta fazer o download na Mac App Store aqui: https: // safari-extensions .apple.com / details /? id = com.flipxfx.svim-6Q2K7JYUZ6

Se você quer o Vimari, esperamos vê-lo na App Store em breve.

Isso foi rejeitado na App Store pelos seguintes motivos:

  1. Não funciona com o Modo escuro do MacOS.
  2. Não há conteúdo no Menu Janela da extensão - isso é definitivamente real.

Se alguém estiver muito comprometido com o Vimari, precisaremos consertar essas coisas antes de reenviar se tivermos alguma esperança de entrar na App Store para facilitar o download. Mas eu sugiro fortemente verificar sVim, que é mencionado em meu comentário acima também: https://safari-extensions.apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6

@nchase , isso não terá o mesmo destino que esta extensão com o próximo lançamento do macOS? A loja Safari Extension não está indo embora e a única maneira de obter extensões é agrupada em aplicativos?

Ah. Por algum motivo, pensei que já estava na mac app store, desculpe por isso.

sVim parece um pouco melhor mantido (alguém está ativamente mesclando solicitações de pull lá recentemente, alguns meses atrás e a extensão não tem nenhum dos problemas que me fizeram ser rejeitado quando enviei o Vimari, então parece que o aumento seria menor para chegar onde precisa estar, mas posso estar errado).

Na verdade, não olhei para o código.

@danielcompton Você tem algum interesse em ser campeão do Vimari? (Se o fizesse, eu poderia simplesmente enviar as alterações que fiz até agora para o meu controle remoto e você pode prosseguir lá.)

Sim, eu pensei sobre isso e estou executando minha própria compilação localmente, que mesclou alguns PRs. Eu ficaria feliz em tentar colocar isso na loja. Também pensei que seria bom a longo prazo basear a compilação do Safari mais de perto no projeto upstream, para que possamos aproveitar (e contribuir com) melhorias na base de código original.

Incrível 😄

Você tem alguma perspectiva sobre sVim vs Vimari? (ou seja, você se aprofundou o suficiente para ter uma opinião sobre o código e a arquitetura de cada um?)

Eu não conhecia o sVim até você mencioná-lo, mas também deriva de um plug-in do Chrome: o cVim, que tem cerca de 30 Vimium, que possui aproximadamente 300

O cVim explica algumas diferenças, embora essas tenham cinco anos e o Vimium possa ter algumas ou todas elas agora. Nenhum dos recursos listados foi tão importante para mim, embora eu pudesse ver por que as pessoas os desejam.

Eu realmente não posso fazer comparações mais informadas deles agora, o que você acha?

Eu uso o Vimium no Chrome também, e foi assim que descobri o Vimari :)

Dependendo de como é fácil portar recursos do Vimium, eu diria que ainda é minha primeira escolha, pois é tão vibrante e ativo.

Alguns anos atrás, eu fui capaz de escrever uma solicitação de pull que foi mesclada ao Vimium sem muito trabalho (ou seja, o código era muito claro e fácil de compreender e alterar, e olhando para o Vimium novamente, ainda parece ser muito pequeno e compreensível - acho que está escrito em coffeescript, que é uma barreira menor, mas vale a pena mencionar).

À distância, parece que não deveria ser horrível portar recursos / manter a paridade 🤷‍♂️

Acho que o verdadeiro trabalho será preparar esse projeto para a App Store. Consegui gastar 90 minutos nisso na semana passada e fui além do esperado, mas não antecipei os problemas pelos quais fomos rejeitados.

Olá a todos,

Em janeiro de 2018, assumi o compromisso de colocar esta extensão na App Store e as pessoas doaram dinheiro para esse objetivo. Eu quero me desculpar com aqueles de vocês que doaram; Sinceramente, pensei que tinha energia e perseverança para fazer isso, mas aconteceram coisas que fizeram meu foco se voltar para outro lugar. Como mencionei antes, tive alguns contratempos em minha vida pessoal que me fizeram priorizar o sentimento de OK novamente em relação a qualquer outra coisa. Agora estou me sentindo bem de novo 🙂 e se alguém quiser seu dinheiro de volta, terei prazer em devolvê-lo. Envie-me um e-mail para [_removido porque nenhuma ação há algum tempo_] para um reembolso! Me sinto mal por não cumprir o que prometi e não quero que ninguém se sinta enganado.

Quanto ao projeto vai, não vou continuar com esse objetivo. Fico feliz em ver outras pessoas se apresentarem e se eu puder ajudar, me avise. O proprietário deste projeto não está mais ativo, mas posso colocar você em contato com ele para ter acesso ao repo.

Fico feliz em ver outras pessoas se apresentarem e se eu puder ajudar, me avise. O proprietário deste projeto não está mais ativo, mas posso colocar você em contato com ele para ter acesso ao repo.

Obrigado, enviei um e-mail para Guy sobre assumir a manutenção deste projeto e colocá-lo na App Store. Espero conseguir algo lá até a data de lançamento de Catalina para que os atualizadores tenham algo para onde se mover.

Olá a todos,

Pretendo transferir Vimari para @danielcompton . Abri uma edição separada para discutir quaisquer últimos comentários antes da transferência - por favor, poste quaisquer comentários em # 137

Fechado em favor de # 139.

Esta página foi útil?
0 / 5 - 0 avaliações