Vimari: Estado de obtención de la extensión disponible en la tienda de extensiones de Safari

Creado en 11 jul. 2018  ·  37Comentarios  ·  Fuente: televator-apps/vimari

Me acabo de inscribir en el Programa de desarrolladores de Apple y estaré investigando qué cambios deben realizarse en el código antes de enviarlo para su revisión.

¡Los mantendré informados sobre este tema!


ACTUALIZADO
Lea el número completo para conocer el contexto.

HACER

  • [ ] Ajustes
  • [] Permitir abrir varios enlaces en nuevas pestañas
  • [] Descubra cómo distribuir la extensión
  • [] ¿Qué sitio web abrir en una pestaña nueva? La cadena vacía no funciona, por lo que necesitamos algo más, idealmente el equivalente a about:config en otros navegadores

Comentario más útil

Hola a todos,

Como mencioné anteriormente en este número, he estado lidiando con algunos problemas personales en los últimos meses, ¡pero las cosas están mucho mejor ahora! Como resultado de mejorar mi calidad de vida, estoy mucho más ocupado con actividades fuera de la computadora, por lo que no tengo tanto tiempo y energía para dedicarlo al código abierto. Espero encontrar la chispa motivadora para sacar adelante la configuración y publicar la extensión en la App Store pronto.

Espero que todos los que donaron no se sientan engañados de ninguna manera. Gracias a todos por ser pacientes y comprensivos ❤️

Todos 37 comentarios

Lea los documentos de Apple y son geniales. Parece que el código debe estar incluido en una aplicación macOS, pero no dice de qué tipo. Estaré ocupado durante unos días, pero intentaré hacer algo de este trabajo.

Si alguien tiene experiencia con esto o quiere ayudar, hágamelo saber.

He estado jugando con eso desde hace algún tiempo, y hombre ... los médicos me están matando. Tengo curiosidad por saber cómo esperan que todos migren sus extensiones de Safari a las extensiones de aplicación de Safari con esta documentación deficiente que no tiene ejemplos. Pasará mucho tiempo antes de que se migren todas las extensiones: /

De todos modos, tengo algo en funcionamiento ahora, puedo usar la extensión, un poco, pero necesito comprender los diferentes pasos para cargar la extensión antes de continuar. Además, no he encontrado ningún soporte para tener configuraciones para la extensión que serían una mierda si eso fuera cierto.

También creo que podemos salirse con la nuestra sin tener la extensión en la App Store, pero aún no estoy seguro. Lo he leído en algunos foros pero no lo he investigado más de cerca. Eso significaría que tenemos lanzamientos instantáneos, pero con la desventaja de que tienes que venir aquí a Github para descargarlo, en lugar de abrir la App Store. Investigaré esto más adelante.

Ahora tengo una versión que funciona con Safari 12. Es una solución muy hacky pero funciona. Sin embargo, la configuración no se puede cambiar a menos que la cambie en el código.

Siga el progreso en mi PR # 104.

Fusioné el PR con la extensión de la aplicación en él. Proporcioné instrucciones sobre cómo instalarlo. Por favor, todos los que se hayan actualizado a macOS Mojave, sigan los pasos y avísenos si algo no les funciona. Seguiré trabajando en el código haciéndolo más agradable, pero por ahora tendrás la funcionalidad básica de la extensión.

Haciendo ping a todos los que han estado involucrados en esto hasta ahora para que podamos obtener comentarios sobre esto:
@jad @jaredmichaelwilliams @olivierlefloch @afarrell @weirdfishes @LiYunyang @pcejrowski @lamons @hcgatewood @LeonardCohen @ovisan @jezkline @danielcompton @guyht

Aquí están las instrucciones .

Gracias.

Estoy en Mojave (18A326h). Mientras construyo los proyectos, hay un error:

error: la tarea falló con la señal de salida 1 0 {
/ usr / bin / codesign '--force' '--sign' '0CA31562965A44B984D08063E858CC715E0B0B34' '--verbose' '/ Users / liyunyang / Library / Developer / Xcode / DerivedData / vimari-gcitcrkzdthheyeahqdfyuuywers / app / Contenidos / Frameworks / libswiftAppKit.dylib '
}

@LiYunyang ¿ estas dos soluciones ?

Después de dedicar más tiempo a esto, no estoy seguro de que podamos migrar todas las funciones, ni siquiera algunas básicas :(. La API es muy limitada a menos que esté trabajando con una ventana emergente o una barra de herramientas. No entiendo por qué y estoy haciendo todo lo posible para encontrar información, pero dado que esto es tan nuevo + la terrible documentación de Apple, no hay ninguna. Como abrir una nueva pestaña es trivial con un clic en la barra de herramientas / ventana emergente, pero imposible de lo contrario. Apple matará a la mayoría de las extensiones actuales con este enfoque. Seguiré intentándolo pero no puedo prometer nada.

Gracias @simeg. Lo construí con éxito con mi propio certificado de desarrollador y funciona con Safari 12 en macOS 10.13.6 High Sierra.,

@akrabat Me alegro de que te esté funcionando. ¿Debía utilizar su propio certificado de desarrollador para que funcionara?

Si. Hubo un error en la compilación relacionado con los certificados, por lo que seleccioné el mío en el menú desplegable.

Después de tomar un descanso de unos días y obtener ayuda, logré encontrar información que creo que nos permitirá migrar más funciones de las que esperaba inicialmente. Entonces, ¿qué hay en mi radar ahora?

  • Migrando todas las funciones
  • Asegurarse de que sea posible instalar la extensión sin tener un certificado de desarrollador. Si lo ha intentado y ha fallado, sería útil si pudiera publicar los mensajes de error aquí, porque en este momento no estoy seguro de cómo solucionarlo.

[despotricar] [No soy el único desarrollador frustrado] (https://forums.developer.apple.com/thread/62410), parece. Hice lo que me recomendó el personal de Apple, presenté un informe de error en el que solicité una API con más funcionalidad. Está buscando pajitas, pero no sé qué más hacer. Con suerte, Apple se dará cuenta de que están matando el ecosistema de extensiones para Safari y cambiarán la API y escribirán mejor documentación. [/despotricar]

Estas son las características que se especifican en el archivo README:

f Alternar enlaces
F Alternar enlaces (abrir enlace en una nueva pestaña)
k Desplazarse hacia arriba
j Desplácese hacia abajo
h Desplazarse hacia la izquierda
l Desplácese hacia la derecha
u Desplazarse hasta la mitad de la página
d Desplazarse por la mitad de la página
gg Ir al principio de la página
G Ir al final de la página

H Historia atrás
L Historia adelante
r Recargar
w Pestaña siguiente
q Pestaña anterior
x Cierre la pestaña actual y vaya a la pestaña izquierda
X Cierre la pestaña actual y vaya a la pestaña derecha
t Abrir una nueva pestaña (esta ni siquiera parece funcionar en la versión 1.12)

Las líneas tachadas no funcionarán en las extensiones de la aplicación Safari con la API actual, lo cual apesta. También necesito averiguar cómo administrar la configuración. Estoy bastante seguro de que se puede hacer, pero puede llevar algún tiempo. Sin embargo, ahora que se ha realizado este trabajo, puedo concentrarme en hacer que vimari esté disponible para todos, tanto mediante descarga como en el futuro en la App Extension Store.

Lamento que muchos de ustedes hayan donado dinero para obtener el 100% de la funcionalidad disponible en Safari 12, pero no hay nada que pueda hacer para cambiar la API :( Espero que lo entiendan, y todavía me dedico a mejorar esta extensión.

FWiW, los que están disponibles son los clave para mí. Aunque no pude hacer que F funcionara y tuve que reasignarlo a t .

@akrabat Todo no se ha fusionado todavía en el maestro, por lo que se espera.

¡Gracias @simeg! Está funcionando en mi máquina Mojave. (Sorprendentemente, no hice ningún cambio en mi configuración anterior, simplemente funciona por sí solo).

@LiYunyang ¡Me alegra saber que está funcionando para ti! ¿Tuviste que firmarlo con tu cuenta de desarrollador? Además, tengo un PR abierto con algunas funciones más implementadas que aún no he fusionado con el maestro, por lo que si vuelve a consultar en unos días, obtendrá más funciones. Como abrir un enlace en una nueva pestaña ( shift + t ) o abrir una nueva pestaña vacía ( t ). Hay algunos problemas menores relacionados con ellos, pero estoy trabajando en ello.

@simeg Inicié sesión con mi ID de Apple (que no es una cuenta de desarrollador registrada) la primera vez.

Acabo de fusionar mi rama en la que he estado trabajando con la maestra, lo que habilitará dos nuevas funciones: abrir enlace en una nueva pestaña ( shift + t ) y abrir una nueva pestaña vacía ( t ). Tiene una barra de herramientas que no hace nada en este momento, estoy tratando de averiguar cómo hacer la configuración, así que ignórala por ahora.

Entonces, parece que uno tiene que cambiar la cuenta de inicio de sesión en Xcode para compilar: iniciar sesión con su cuenta de Apple en xcode y usar eso parece funcionar bien.
Cuando se trata de cambiar o cerrar pestañas: @simeg tiene razón: no hay soporte para eso en la API en este momento y, a menos que Apple lo agregue, no creo que haya nada que hacer. Apple permite que las extensiones de la aplicación accedan a la pestaña activa, pero no permite cerrarla. Tampoco permiten el acceso a todas las pestañas abiertas. La API es literalmente inútil y no tengo idea de por qué Apple decidió hacer algo como esto. Con esta API, puede abrir una pestaña, ir a la URL, superponer la página activa con algunos elementos gráficos nuevos, pero eso es todo.

@Rahlir Sí, todavía tengo algunos problemas menores como ese por resolver. No estas seguro de cómo hacerlo. Publicaré esto en la extensión oficial de la aplicación pronto y espero que eso elimine ese tipo de problemas. También estoy confundido sobre por qué Apple haría algo como esto. Creo que reducirá seriamente el uso de Safari.

Lo que estoy tratando de averiguar ahora es la configuración. No puedo encontrar ninguna información sobre cuál es la forma recomendada, así que estoy tratando de ver qué hicieron otras personas mirando su código, pero estoy progresando lentamente. Te mantendremos al tanto.

Lo que estoy tratando de averiguar ahora es la configuración. No puedo encontrar ninguna información sobre cuál es la forma recomendada, así que estoy tratando de ver qué hicieron otras personas mirando su código, pero estoy progresando lentamente. Te mantendremos al tanto.

Si está hablando de almacenar configuraciones en su código Swift nativo, la forma recomendada sería UserDefaults .

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

Obviamente, tendrá que tener su lógica de guardar / cargar en Swift y luego pasarla a su JS con un evento. (algo como "getSettings" "saveSettings" probablemente)

Es absolutamente una locura la cantidad de funcionalidad que eliminaron de las extensiones. Si realmente quieren buenas extensiones, tendrán que implementar el estándar WebExtensions, de lo contrario, casi nadie convertirá / admitirá sus extensiones para Safari.

Si tiene alguna pregunta sobre las extensiones de la aplicación Safari sobre la que no puede encontrar documentación, no dude en enviarme un ping, he estado metido hasta el cuello en estas extensiones durante aproximadamente 6 meses y ahora odia a Apple cada segundo.


Sin embargo, una nota sobre la funcionalidad de la pestaña faltante, puede usar una forma súper pirata de interactuar con las pestañas:

Apple Script.

En su código Swift, puede ejecutar un script AppleScript que interactuará con las pestañas por usted. Un ejemplo de un script que puede cambiar la pestaña actual:

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

Primero tell abrirá / activará la pestaña a la derecha de la pestaña actual. El segundo tell cerrará la pestaña abierta actualmente. Por lo tanto, puede crear funciones de AppleScript para "pestaña siguiente / anterior" y "cerrar la actual ir a la izquierda / derecha". Solo tendrá que averiguar cómo escribir el AppleScript para hacer lo que quiera.

El problema con esto es que estoy bastante seguro de que llamar a los scripts de AppleScript romperá la zona de pruebas de la aplicación, lo que significa que no puede enviarla a la App Extension Store. Por lo tanto, estaría atrapado en distribuirlo usted mismo. (Aún tiene que estar firmado)

Para ser justos, no he probado este método de pestañas, pero en el pasado probé ejecutar AppleScript desde una extensión Swift Safari y usarlo para hacer cosas en Safari. Pero aún no he lanzado nada que lo use.

EDITAR:

Comencé a dudar de mí mismo, así que seguí adelante e hice una prueba de concepto utilizando la versión actual en este repositorio: https://streamable.com/kions

Esto usa mi AppleScript anterior para cambiar pestañas. El código usa NSAppleScript y no es necesario deshabilitar la zona de pruebas de la aplicación.

Pero debe agregar un "derecho de excepción temporal" a su archivo de derechos.

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

Documentación: https://developer.apple.com/library/archive/documentation/Misiverse/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html#//apple_ref/doc/uid/TP40011195 -CH5-SW3

No estoy seguro de cómo afecta eso a la aprobación de la App Extension Store.

Parece ser que si tiene una razón válida y Apple está de acuerdo, será aprobada: https://stackoverflow.com/a/13903333/7768060

@ jdf221 Vaya, no sabes cuánto aprecio tener a alguien a quien hacer preguntas. Realmente lo aprecio. Ojalá tuviera la energía para trabajar más en esto en este momento. Estoy enfrentando algunas cosas difíciles en mi vida personal en este momento, pero espero encontrar alguna motivación para volver a este proyecto. Agradezco la paciencia de todos.

Solo quería aparecer y decir que sería increíble si estuviera en la tienda de aplicaciones.

Pasé mucho tiempo tratando de compilarlo antes de tener éxito gracias a esto: https://stackoverflow.com/questions/39754341/none-of-your-accounts-are-a-member-code-signing-errors- después de la actualización a xcode

Fue doloroso

Hola a todos,

Como mencioné anteriormente en este número, he estado lidiando con algunos problemas personales en los últimos meses, ¡pero las cosas están mucho mejor ahora! Como resultado de mejorar mi calidad de vida, estoy mucho más ocupado con actividades fuera de la computadora, por lo que no tengo tanto tiempo y energía para dedicarlo al código abierto. Espero encontrar la chispa motivadora para sacar adelante la configuración y publicar la extensión en la App Store pronto.

Espero que todos los que donaron no se sientan engañados de ninguna manera. Gracias a todos por ser pacientes y comprensivos ❤️

@simeg, ¿podemos convencerlo de que comparta los derechos de publicación / abra un poco el equipo de desarrolladores? Estoy registrado como desarrollador de Apple y me encantaría publicarlo y seguir ayudando.

Hola amigos, pasé un tiempo esta mañana haciendo que esto funcione y se ha enviado para verificación. Si todo va bien, espero que veamos a Vimari en la Mac App Store dentro de unos días. Hice una bifurcación personalizada, incorporé un PR reciente que incluye un bonito icono, etc.

PERO , quería decir que hay otra solución que ya existe en la tienda de aplicaciones y parece estar MUCHO mejor mantenida. Consulte sVim: https://github.com/flipxfx/sVim

Si solo desea usar algo que funcione como Vimium sin tener que construirlo usted mismo, que es lo que creo que es lo que quiere el 95% de la gente, simplemente descárguelo de la Mac App Store aquí: https: // safari-extensions .apple.com / details /? id = com.flipxfx.svim-6Q2K7JYUZ6

Si quieres Vimari, con suerte lo veremos pronto en la App Store.

Esto fue rechazado en la App Store por las siguientes razones:

  1. No funciona con el modo oscuro de MacOS.
  2. No hay contenido en el menú de la ventana de la extensión, esto es definitivamente real.

Si alguien está muy comprometido con Vimari, tendríamos que arreglar estas cosas antes de volver a enviarlo si tuviéramos alguna esperanza de ingresar a la App Store para facilitar la descarga. Pero le sugiero que consulte sVim, que también se menciona en mi comentario anterior: https://safari-extensions.apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6

@nchase , ¿no sufrirá el mismo destino que esta extensión con la próxima versión de macOS? ¿No va a desaparecer la tienda de extensiones de Safari y la única forma de obtener extensiones está incluida en las aplicaciones?

¡Ah! Por alguna razón, pensé que ya estaba en la tienda de aplicaciones de Mac, lo siento.

sVim parece estar un poco mejor mantenido (alguien está fusionando activamente solicitudes de extracción allí tan recientemente como hace unos meses y la extensión no tiene ninguno de los problemas que me rechazaron cuando envié Vimari, por lo que parece que el aumento sería más pequeño para llevarlo donde debe estar, pero podría estar equivocado).

En realidad, no he mirado el código en absoluto.

@danielcompton ¿Tiene algún interés en ser campeón de Vimari? (Si lo hiciera, podría simplemente enviar los cambios que he realizado hasta ahora a mi control remoto y usted puede continuar allí).

Sí, he pensado en esto y estoy ejecutando mi propia compilación localmente, que ha fusionado algunos PR. Me encantaría intentar llevar esto a la tienda. También pensé que sería bueno a largo plazo hacer que la compilación de Safari se basara más de cerca en el proyecto anterior para que podamos aprovechar (y contribuir a) las mejoras en la base del código original.

Impresionante 😄

¿Tiene alguna perspectiva sobre sVim vs Vimari? (es decir, ¿ha investigado lo suficiente como para tener una opinión sobre el código y la arquitectura de cada uno?)

No conocía sVim hasta que lo mencionaste, pero también se deriva de un complemento de Chrome: cVim que tiene ~ 30k usuarios. Vimari se deriva de Vimium, que tiene ~ 300k usuarios. Yo también uso Vimium en Chrome.

cVim explica algunas diferencias, aunque tienen cinco años y Vimium puede tener algunas o todas ahora. Ninguna de las funciones enumeradas ha sido tan importante para mí, aunque pude ver por qué la gente podría quererlas.

Realmente no puedo hacer comparaciones más informadas de ellos en este momento, ¿qué piensas?

También uso Vimium en Chrome, que es como encontré a Vimari :)

Dependiendo de lo fácil que sea portar funciones de Vimium, diría que sigue siendo mi primera opción, ya que es tan vibrante y activa.

Hace unos años pude escribir una solicitud de extracción que se fusionó con Vimium sin mucho trabajo (es decir, el código era bastante claro y fácil de comprender y alterar, y al mirar Vimium nuevamente, parece ser bastante pequeño y comprensible - supongo que está escrito en coffeescript, que es una barrera menor pero que vale la pena mencionar).

A distancia, parece que no debería ser horrible portar funciones / mantener la paridad 🤷‍♂️

Creo que el verdadero trabajo será preparar este proyecto para la App Store. Pude dedicar 90 minutos a eso la semana pasada y llegué más lejos de lo esperado, pero no anticipé los problemas por los que nos rechazaron.

Hola a todos,

En enero de 2018, me comprometí a poner esta extensión en la App Store y la gente donó dinero para ese objetivo. Quiero disculparme con aquellos de ustedes que donaron; Honestamente, pensé que tenía la energía y la perseverancia para hacerlo así, pero sucedieron cosas que hicieron que mi atención se volviera hacia otra parte. Como mencioné antes, tuve algunas molestias en mi vida personal que me hicieron dar prioridad a sentirme bien de nuevo por encima de cualquier otra cosa. Ahora me siento bien de nuevo 🙂 y si alguien quiere que le devuelvan su dinero, con mucho gusto se lo devolveré. Envíeme un correo electrónico a [_removed because no action for some time_] para un reembolso! Me siento mal por no cumplir lo que prometí y no quiero que nadie se sienta engañado.

En cuanto al proyecto, no continuaré con este objetivo. Estoy feliz de ver a otras personas dar un paso al frente y si puedo ser de ayuda, hágamelo saber. El propietario de este proyecto ya no está activo, pero es posible que pueda ponerlo en contacto con él para acceder al repositorio.

Estoy feliz de ver a otras personas dar un paso al frente y si puedo ser de ayuda, hágamelo saber. El propietario de este proyecto ya no está activo, pero es posible que pueda ponerlo en contacto con él para acceder al repositorio.

Gracias, le envié un correo electrónico a Guy para que se hiciera cargo del mantenimiento de este proyecto y lo llevara a la App Store. Espero tener algo allí antes de la fecha de lanzamiento de Catalina para que los mejoradores tengan algo a lo que moverse.

Hola a todos,

Planeo transferir a Vimari a @danielcompton . Abrí un número separado para discutir los últimos comentarios antes de la transferencia; publique cualquier comentario en el n. ° 137

Cerrado a favor del # 139.

¿Fue útil esta página
0 / 5 - 0 calificaciones