2013-07-15 11 views
5

Ho l'app che mostra la sua immagine di sfondo designata mentre carica l'app. E poi si blocca in esecuzione il codice in fase di avvio:L'app Delphi XE4 iOS funziona su simulatore ma non su dispositivo di debug

// unzip own resources like images, data files ettc. 
    FAppDataDirPath := GetHomePath + PathDelim + Application.Title + '.app' + PathDelim; 
    P := FAppDataDirPath + 'assets.zip'; 
    if FileExists(P) then 
    begin 
     Z := TZipFile.Create; 
     try 
     Z.Open(P, zmRead); 
     Z.ExtractAll(FAppDataDirPath + 'Library'); 
     finally 
     Z.Free; 
     end; 
    end 
    ; 

Questo è l'errore che ottengo:

enter image description here

+4

Quindi il file/private/var/mobile/Applicazioni/blanked_out/blanked_out_also.app/Library/assets/app_bac' o directory esiste sul dispositivo attuale? –

+0

Mi sta confondendo. Sul simulatore questo percorso esiste: "/private/var/mobile/Applications/exampleGuID/example.app/Library" ma su iphone he ** Library ** non parte e non può essere creato? – Tom

+0

@KenWhite: ho creato una domanda più specifica qui: http://stackoverflow.com/questions/17809533/delphi-xe4-ios-how-to-get-library-path-on-actual-ios-device - I sarà felice di accettare la risposta e dare generosità a voi su questa domanda (anche se il mio problema non è risolto, è anche un grande aiuto per essere in grado di fare una domanda più specifica) – Tom

risposta

3

Il problema è che si sta utilizzando il metodo sbagliato per ottenere le posizioni.

Passaggio all'utilizzo System.IOUtils.TPath, utilizzando TPath.GetHomePath per ottenere la cartella home, TPath.GetDocumentsPath per la cartella Documents, e TPath.GetLibraryPath per ottenere la posizione della cartella Library.

+0

Grazie. Ci proverò. Attualmente sto usando ** GetHomePath ** (più la parte "Directory") che nella guida è descritta come "Su iOS, punta alla posizione specifica del dispositivo della sandbox per l'applicazione, la posizione iOS in genere include un locale directory e un GUID. " - Ho visto alcuni esempi sulla rete usando questo. Proverò la tua soluzione più tardi stasera. – Tom

+0

Vedere la mia ultima modifica; la mia prima risposta è stata più difficile di quanto avrebbe dovuto essere. Eri diretto nella giusta direzione. :-) –

+0

Posso confermare ora funziona :) – Tom

Problemi correlati