Apple tiene páginas debajo https://support.apple.com/en_US/downloads/ios para cada versión importante de iOS. Mirando Acerca de las actualizaciones de iOS 13 se puede ver un resumen de todas las versiones disponibles de iOS13.
En la fuente HTML se codifica como
<p><a href="#1341"><img alt="" src="/library/content/dam/edam/applecare/images/en_US/il/spacer.png" width="76">iOS 13.4.1<br>
</a>
<p><a href="#135"><img alt="" src="/library/content/dam/edam/applecare/images/en_US/il/spacer.png" width="76">iOS 13.5<br>
</a>
<p><a href="#1351"><img alt="" src="/library/content/dam/edam/applecare/images/en_US/il/spacer.png" width="76">iOS 13.5.1<br>
</a>
Así que si usted está dispuesto a adaptar su script con cada versión importante de iOS/iPadOS podría utilizar
curl -s "https://support.apple.com/en-us/HT210393" | \
sed -n '/\/library\/content/s|.*width="76">\([^<]*\)<.*|\1|p' | \
tail -1
para obtener la versión más reciente disponible ( iOS 13.5.1
ahora mismo).
sed -n
ejecuta sed suprimiendo cualquier salida de impresión a menos que se le indique específicamente
/\/library\/content/
aplica el siguiente comando a todas las líneas que coincidan /library/content
s|STRING-TO-MATCH|REPLACEMENT|
realiza la sustitución de cadenas basada en patrones
.*width="76">\([^<]*\)<.*
toma toda la línea y pone la parte entre width="76">
y lo siguiente <
en \1
\1
simplemente sustituye toda la línea por el contenido de \1
(que en este caso es el número de versión)
p
imprime el resultado en stdout
Obviamente, esto coincide (e imprime) todas las líneas (basta con omitir el carácter tail
para comprobarlo), así que al final sólo tomamos la última línea.
Lo que cambia seguro con cada versión principal es la URL, lo que puede change es el código para encontrar y extraer el contenido relevante de la página. La dirección sed/tail
combinación anterior funciona para iOS12 y iOS13 por lo menos.
PD: Puede evitar <code>tail</code> corriendo
curl -s https://support.apple.com/en-us/HT210393 | \
sed -n '/\/library\/content/{s|.*width="76">\([^<]*\)<.*|\1|;h;}; ${g;p;}'
pero esto hace que sea difícil de leer para la mayoría de la gente :-)
0 votos
¿Qué utilizarías para script esto? Apple publica páginas web en todas las actualizaciones, por lo que podría ver que el raspado de esas páginas o ver un feed de Twitter que ya raspa las páginas.
0 votos
Estaba pensando que sería posible enviar una solicitud a uno de los servidores de actualización. ¿Hay alguna cuenta de Twitter que ya lo haga?
2 votos
Sí. Me gusta istheapplestoredown.com/ios
1 votos
@bmike Ah, bien, ese incluso tiene una API que devuelve objetos JSON :-)