![]() |
GUID nicht unique unter iOS / Android
Hallo,
kann es sein, dass TGUID.NewGuid bei Verwendung unter Android / iOS nicht zwingend eine unique GUID liefert? Zumindest wenn man mehrere GUID´s auf einmal benötigt und somit den Aufruf von TGUID.NewGuid schnell hintereinander ausführt? Ich kann das eindeutig nachvollziehen, wenn ich mir z.B. 100 Guid´s generiere und mir das Ergebnis anschaue. Da gibt es Kollisionen! Hat mich ein wenig erschrocken, da es in meinen Programmen vorkommt, dass ich mal eine gewisse Anzahl von GUIDs auf einmal benötigt... Wie es scheint, sind die GUID´s unter Android / iOS auch von einer ganz anderen Version. Unter Windows ist die erste Ziffer des dritten Blocks immer eine "4".
Code:
Andy
Android GUID: F66F17BA-F4E6-E511-89B9-60F81DC7385A
Windows GUID: A38CB014-7CEE-4B23-AACF-2E8985D82691 |
AW: GUID nicht unique unter iOS / Android
Ich kenne keine Interna, aber sowas hatten wir mal bei unterschiedlichen Geräten einer Charge. Kann also offenbar sein.
Es war allerdings nicht aus TGuid. |
AW: GUID nicht unique unter iOS / Android
Ich meine der richtig Aufruf ist
Delphi-Quellcode:
createGuid(meineTGuidVar);
|
AW: GUID nicht unique unter iOS / Android
Liste der Anhänge anzeigen (Anzahl: 1)
Ohh ja doof...
Kleines Testprogramm anbei... Windows OK.. iOS Sim & Device doppelte aufeinanderfolgende GUID's Mavarik |
AW: GUID nicht unique unter iOS / Android
Zitat:
Delphi-Quellcode:
genau tut?
TGUID.NewGuid
Delphi-Quellcode:
Der eigentliche Unterschied liegt in
class function TGuidHelper.NewGuid: TGUID;
begin if CreateGUID(Result) <> S_OK then RaiseLastOSError; end;
Delphi-Quellcode:
, was vollkommen verschiedene Implemenationen unter Windows und allen Posix-Systemen hat. Kann natürlich sein, daß die Implementierung in den nicht-Windows-Systemen buggy ist. War zumindest früher schon mal der Fall:
CreateGUID
![]() |
AW: GUID nicht unique unter iOS / Android
Hmm, kann Zufall sein, hatte es nicht weiter überprüft, aber in einem iOS-Projekt lieferte TGuid.NewGuid auch doppelte IDs. Hatte dann createGuid genommen und keine Probleme mehr (?).... . Schau ich mit morgen nochmal an, nicht dass ich da eine Leiche habe...
|
AW: GUID nicht unique unter iOS / Android
Macht da jemand einen Quality-Eintrag? Das ist ja schon kritisch. Wir verwenden in unserer App auch GUIDs. Allerdings generieren wir bisher nicht mehrere direkt hintereinander.
|
AW: GUID nicht unique unter iOS / Android
Zitat:
Der UUID-Generator von Android richtet sich nach ![]() Vielleicht erzeugt Delphi einfach nur zu schnellen Code :-D Du kannst ja mal versuchen, ein
Delphi-Quellcode:
zwischen die Generierung zu setzen. Bei 100 GUIDs hast du dann eine Verzögerung von 100 ms. Das ist zwar nicht schön, aber besser als kollidierende GUIDs.
Sleep(1)
|
AW: GUID nicht unique unter iOS / Android
Zitat:
|
AW: GUID nicht unique unter iOS / Android
Das macht man aber auch nur, wenn man weiss, dass dort ein Problem bestehen kann. Und wer weiss das (außer uns paar hier) jetzt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz