links linking link from example ios ios-universal-links

linking - universal links from email ios



iOS Universal Links con comodines no funcionan (4)

Agregué mis hallazgos a este hilo: https://forums.developer.apple.com/thread/47315

En resumen, incluso en iOS 10, parece que la configuración de comodines requiere que la raíz del comodín sirva el archivo de apple-app-site-association .

Por ejemplo, si desea utilizar *.domain.com , entonces la apple-app-site-association debe estar alojada en ambos, por ejemplo, app1.domain.com y app1.domain.com , de lo contrario no funcionará simplemente. especificando applinks:*.domain.com en Xcode.

Esto es desafortunado si su sitio principal está alojado en www.domain.com y tiene un redireccionamiento 301 en domain.com (que lo redirige a www.domain.com ), porque Universal Links no permite redireccionamientos.

La solución que encontré fue crear un subdominio principal para su aplicación y usar sub-subdominios para el comodín. P.ej

  • app.domain.com (debe servir el archivo de apple-app-site-association )
  • server1.app.domain.com (debe servir la apple-app-site-association )
  • server2.app.domain.com (...)

De esa manera, en Xcode, solo puede especificar applinks:*.app.domain.com y Universal Links funcionará sin que tenga que especificar server1.app.domain.com , server2.app.domain.com , etc. .en Xcode.

Sin embargo, tenga en cuenta que también debe especificar explícitamente applinks:app.domain.com si planea usar ese servidor también con su aplicación.

Espero que esto ayude.

En una aplicación para iOS en la que estoy trabajando, he configurado Universal Links. La aplicación alberga múltiples dominios. Algunos dominios los he configurado con un comodín. Estos dominios no parecen funcionar. Por ejemplo, quiero enlazar a https://news.mydomain.com/ . Si agrego lo siguiente a la lista de dominios asociados:

applinks:*.mydomain.com -> No funciona

applinks:news.mydomain.com -> funciona bien

Así que creo que configuré todo correctamente, el archivo de asociación-sitio-asociación-manzana está bien configurado. Incluso puedo ver en ambos casos (usando Charles Proxy) que el archivo de asociación-sitio-asociación-manzana se recuperó bien.

En el caso del comodín, el enlace solo se abre en Safari.

Cuando configuro el dominio sin un comodín, la aplicación se abre.

¿Me estoy perdiendo de algo? Ejecuto iOS 9.3.2 en el dispositivo y ejecuto Xcode 7.3.1, que son las últimas versiones.



Intenté esto en septiembre de 2016, con iOS 9.3.5 y iOS 10 beta. La situación no ha cambiado: los enlaces universales aún no funcionan si applinks contiene solo dominios comodín, aunque la documentación sugiere que esto debería funcionar.


Parece que agregar un comodín en la parte del dominio de los applinks solo se ha introducido en iOS 9.3 Beta 2 . En 9.3 notas de la versión Beta 2:

Ahora puede usar Universal Links con subdominios arbitrarios en lugar de tener que enumerar todos los subdominios de la aplicación como nombres de dominio completos. Las entradas tienen la forma:

: [: número de puerto] en el que se encuentra "webcredentials", "activitycontinuation" o "applinks".

La parte de la entrada ahora puede ser opcionalmente prefijada con "*." Para indicar un subdominio comodín. Por ejemplo:

applinks: *. example.com

Usted dice que se ejecuta en iOS 9.3.2 . ¿Pero es su deployment target > = iOS 9.3 ? Si no lo es: intente cambiándolo. Creo que va a resolver su problema.

Aquí puede encontrar una copia de las notas de esta versión (lo siento, no tengo ninguna otra fuente pública)

Editar:

Incluso si el Apple Doc dice que puedes usar comodines en los dominios, parece que tienen un problema en esto :

Para hacer coincidir todos los subdominios de un dominio asociado, puede especificar un comodín prefijando . antes del comienzo de un dominio específico (se requiere el período). La coincidencia de dominios se basa en la subcadena más larga en las entradas de applinks. Por ejemplo, si especifica las entradas applinks: .mywebsite.com y applinks: *. Users.mywebsite.com, la coincidencia para el dominio emily.users.mywebsite.com se realiza contra la entrada más larga * .users.mywebsite.com. Tenga en cuenta que una entrada para * .mywebsite.com no coincide con mywebsite.com debido al período después del asterisco. Para habilitar la coincidencia para * .mywebsite.com y mywebsite.com, debe proporcionar una entrada de applinks por separado para cada uno.