[Atualizado] Apple finalmente implementa o donotbackup no iOS 5.0.1

Desde o surgimento do iCloud os desenvolvedores reclamam sem parar que certos dados dos aplicativos não devem ser propagados ao iCloud, tanto por ocupar desnecessáriamente espaço de backup, na nuvem e no iTunes, quanto por serem necessários aos aplicativos para o seu funcionamento enquanto desconectados da internet e não devem ser apagado quando o aplicativo é encerrado.

Um exemplo de fácil entendimento é o Instapaper, este permite a leitura off-line dos artigos salvos por você e para funcionar corretamente a aplicação requer que os dados sincronizados com servidores do serviço sejam mantidos no seu iPhone/iPod/iPad para que seja possível a leitura quando desconectado da internet. Até o momento a Apple enviava estes dados para o iCloud o que é um desperdício de espaço, afinal quando conectado novamente na internet, o Instapaper irá atualizá-los/baixá-los novamente. Portanto estes dados não devem entrar no backup e nem ser apagados quando o Instapaper é encerrado, devem ser mantidos somente no device, sem ir para o iCloud ou iTunes.

Hoje, a Apple finalmente escuta os desenvolvedores e disponibiliza aos mesmos a opção de utilizar uma função de tratamento de arquivo para manter os arquivos no dispositivo e gerenciados pela aplicação: o “não-efetuar-backup”.

Veja as explicações do seu uso e o código de exemplo:

New file attribute for non-purgeable, non-backed up files

iOS 5.0.1 beta introduces a new “do not back up” attribute for specifying files that should remain on device, even in low storage situations. Use this attribute with data that can be recreated but needs to persist even in low storage situations for proper functioning of your app or because customers expect it to be available during offline use. This attribute works on marked files regardless of what directory they are in, including the Documents directory. These files will not be purged and will not be included in the user’s iCloud or iTunes backup. Because these files do use on-device storage space, your app is responsible for monitoring and purging these files periodically.

To set the “do not back up” attribute, add the following method to a class in your application. Whenever you create a file that should not be backed up to iCloud, write the data to the file and then call this method, passing in a URL that points to the file.

#include <sys/xattr.h>
- (void) AddSkipBackupAttributeToFile: (NSURL*) url
{
    u_int8_t b = 1;
    setxattr([[url path] fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0);
}

Finalmente a Apple parece que resolveu escutar os seus desenvolvedores e usuários. Ponto para a Apple por também liberar os gestos multitoque no iPadv1 e prorrogar o início do Sandboxing para 01 de março de 2012, aumentando em quase 100 dias o prazo para os desenvolvedores adaptarem os seus aplicativos da Mac App Store.

Sobre AlexandreTorres

Alexandre Torres já escreveu 833 artigos no AppleSpotlight..




Artigos similares:




  • Cibele

    in tim cook we trust <3333333333