Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Win8 Desktop Application Zertifizierung (https://www.delphipraxis.net/179388-win8-desktop-application-zertifizierung.html)

generic 4. Mär 2014 11:20

Win8 Desktop Application Zertifizierung
 
Gibt aber im Augenblick viele Bas0r Themen hier in der DP:
  • Preispolitik Embarcadero
  • Quo vadis Embarcadero?
  • Ist RemObjects die Zukunft von Delphi?

Ich hab gerade ein viel größeres Problem mit unseren Lieblings-Compiler.

Ich probiere gerade unsere Microsoft Gold AppDev Zertifizierung durch zu bekommen.
Leider muss ich mit graus feststellen, dass Delphi (XE5) für 32bit Programme nicht das Compiler-Flag SafeSEH unterstützt.
Das Problem ist zuerst für XE2 vor ca. 2,5 Jahren ins QC gestellt worden:
[Windows 8] lack of SafeSEH support
Diese Flag ist neuerdings notwendig:
Zertifizierungsanforderungen für Windows-Desktop-Apps

Da wir gezwungen sind, die Zertifizierung zu schaffen, da ansonsten auf uns Lizenzkosten von über 200.000 Euro zukommen würden.
Und paar von uns ärgern sich über den einen Tausender für Delphi Upgrades.

Ich muss mal schauen, was für eine App ich nun aus der Hut zaubere.
Eine x64 Delphi App vielleicht oder mal was auf anderer Technologie.
Deadline für die fertig zertifizierte App ist der 30.04.2014 :-(

himitsu 4. Mär 2014 11:34

AW: Win8 Desktop Application Zertifizierung
 
Joar, dann bleibt wohl nur Win64, wo das SafeSEH nicht benötigt wird. (ARM wird ja auch noch nicht unterstützt)

Win32 läuft ja noch nicht über das neue Compiler-Backend, womit man da auch nicht zu versuchen bräuchte dieses Flag selber zu übergeben.
(wenn's im Compiler nicht eingebaut ist, dann bringt da ja nichts)
Für XE5 gibt es ja eh kein (großes) Update mehr und ich glaub kaum, daß die noch so große neue Funktionen in den alten Compiler reinbauen. (als "Update" mit XE 7, 8 ...)

Es gibt auch Vorschläge, wonach man, nach dem Compilieren, die PE bearbeiten und selber eine SafeSEH-Section einfügen solle. :stupid:

mkinzler 4. Mär 2014 11:41

AW: Win8 Desktop Application Zertifizierung
 
Dazu gibt es auch noch einen QC-Case von XE2

http://qc.embarcadero.com/wc/qcmain.aspx?d=106781

Daniel 4. Mär 2014 11:51

AW: Win8 Desktop Application Zertifizierung
 
Ja, das ist der, den Bernd verlinkt hatte. ;-)
Ich habe den bei EMBT noch mal auf den Tisch gebracht.

Der schöne Günther 4. Mär 2014 12:16

AW: Win8 Desktop Application Zertifizierung
 
Ich bin jetzt kein Compiler-Spezialist, aber würde es denn was bringen, das über den C++ Builder zu kompilieren? Hat der das Problem bei 32 Bit auch?

himitsu 4. Mär 2014 12:26

AW: Win8 Desktop Application Zertifizierung
 
Laut Google soll es im C++Builder (bzw. VisualStudio) seit "XP" drin sein.
[GOOGLE]SafeSEH C++Builder[/GOOGLE]


Aber mit etwas Glück könnte die Umstellung auf Win64 einfacher sein. :gruebel:


[edit] Ich glaub das Google-Tag ist bissl kaputt. :angel:

Der schöne Günther 4. Mär 2014 12:44

AW: Win8 Desktop Application Zertifizierung
 
Der VC-Compiler sicher, aber der C++ Builder anscheinend auch nicht, oder?

Das einzige was ich spontan finde ist das hier (2012):
http://stackoverflow.com/questions/1...17989#12117989

generic 4. Mär 2014 13:04

AW: Win8 Desktop Application Zertifizierung
 
Ich hab leider hier nur Delphi Anwendungen am Start.

Alle 32Bit und meist auf dem Stand für Delphi 2007.
Derzeit habe ich nur eine Anwendung vollständig zu Delphi XE5 gebracht. Diese hält sich aber nicht an die Shutdown-Regeln und somit nicht zertifizierbar.

Meist hängt es an Drittanbieter-Komponenten.

CCRDude 5. Mär 2014 07:03

AW: Win8 Desktop Application Zertifizierung
 
In Sachen Zertifizierung ist man mit Delphi eh übel dran, da habe ich schon zu XE1-Zeiten Tickets eingereicht:

signtool /ph (Zertifizierungsbedingung) wg. falscher PE-Header nicht möglich - ist angeblich mit XE5 Update 2 gefixt - Ticket von 2009 bis 2013 offen, nur 4 Jahre. Da ich die Updates nicht mitgemacht habe, wenn solche essentiellen Sachen nicht behoben werden, kann ich das nicht prüfen.

Ach ja, Windows Error Reporting muss man auch unterstützen, mein Ticket dazu stammt von 2007, nur 7 Jahre alt, immer noch offen.

Fast User Switching muss man für die Zertifizierung auch prüfen, mein TMediaPlayer-Ticket dazu ist auch schon seit 2007 offen.

Ich hab noch zwei ältere Tickets, die irgendwann einfach ohne Lösung geschlossen wurden. Etwa zum Thema Manifest und dazu, dass man borlndmm.dll nicht signieren darf und daher in zertifizierten Anwendungen nicht verwenden kann...

Klar, man kann drumherum arbeiten. WER selber implementieren, den PE-Header des Binaries nachträglich vor dem Signieren bearbeiten, etc. ... aber schon zu Delphi-XE-Zeiten mit Vista-Kompabilität werben, wenn jetzt, 7 Jahre später, gerade mal einer von fünf Punkten kompatibel mit Microsofts Anforderungen an Vista-Programme ist, ist und bleibt in meinen Augen unverschämt. Und an Nach-Vista-Versionen denke ich gar nicht erst...

mquadrat 5. Mär 2014 07:24

AW: Win8 Desktop Application Zertifizierung
 
Ok, das ist natürlich wirklich Mist. Noch ne Baustelle mehr. Zum Glück haben wir aktuell keinerlei Pläne mehr als ein "Registered Partner" zu werden.

himitsu 5. Mär 2014 08:20

AW: Win8 Desktop Application Zertifizierung
 
Wenn man Zugriff auf die verwendenden Quellen hat, dann kann man die Borlandmm.dll auch ganz abschafen, (seit D2006, glaug ich, wo Codegear auf FastMM umstellte)
bzw. man erstellt sich seine eigene "Borlndmm.dll . (der Quellcode ist ja verfügbar oder die paar Exports bekommt man auch so zusammen)

Ein kleines Problem weniger :)

Der schöne Günther 5. Mär 2014 10:05

AW: Win8 Desktop Application Zertifizierung
 
Realistische Erwartungshaltung wäre dann, dass der Desktop-Compiler ... beständig bleibt und in ferner Zukunft (hoffentlich) (wie auf "Mobile") durch ein LLVM-Frontend ersetzt wird, oder?

So wie beim C++ Builder auf Win64 ja schon seit XE3 geschehen.

PS: Was ist denn jetzt dein Plan? Ist kein 32 Bit ein KO-Kriterium?

CCRDude 6. Mär 2014 09:07

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Zitat von himitsu (Beitrag 1250673)
Wenn man Zugriff auf die verwendenden Quellen hat, dann kann man die Borlandmm.dll auch ganz abschafen, (seit D2006, glaug ich, wo Codegear auf FastMM umstellte)

Wir haben unseren älteren Code halt angepasst, dass er die nicht mehr braucht, aber das bedeutete halt Aufwand. Emba hätte nur sagen müssen "Ja, wir erlauben euch, die Datei auch modifiziert weiterzugeben, wenn die Modifikation nur aus einer Signatur besteht", dann hätten wir die selber signiert. Aber da gab's nur ne strikte Weigerung.

generic 6. Mär 2014 15:50

AW: Win8 Desktop Application Zertifizierung
 
Mit dem x64 Binary bin ich jetzt schon weiter, allerdings hängt es noch an anderen komischen Prüfungen.

Zitat:

Test der Betriebssystemversion-Überprüfung




NICHT BESTANDEN
Ordnungsgemäße Betriebssystemversion-Prüfung

• Fehler: Beim Test der korrekten Betriebssystemversion wurden folgende Fehler erkannt:

• Auswirkungen, falls nicht behoben: So werden Kunden unnötigerweise am Installieren ihrer Apps gehindert.


• Behebungsmethode: Testen Sie auf die korrekte Windows-Version, indem Sie prüfen, ob die aktuelle Version größer oder gleich der erforderlichen Version ist.
Betriebssystemversionierung
Es ist weder im Setup noch in der Delphi-Anwendung eine Versionsprüfung drin.
Vor allem der Text: "wurden folgende Fehler erkannt: " und keine Liste dahinter nervt mich schon wieder.

Zitat:

Test der Mehrbenutzersitzungen




WARNUNG
Mehrbenutzerprüfprotokolle

• Warnung: Beim Test der Mehrbenutzerprüfprotokolle wurden folgende Fehler erkannt:

• Auswirkungen, falls nicht behoben: Möglicherweise ist die Installation der App nicht für mehrere Benutzer zugreifbar oder verwendbar.


• Behebungsmethode: Stellen Sie sicher, dass die App keine systemweiten Datendateien oder Einstellungen in benutzerspezifischen Datenspeichern wie Benutzerprofilen oder HKCU speichert. In diesem Fall sind diese nicht für andere Benutzer verfügbar. Ihre App muss systemweite Konfigurationen und Daten installieren. Weitere Informationen finden Sie unter dem folgenden Link:
Programmierrichtlinien für Remotedesktopdienste


WARNUNG
Mehrbenutzersitzungstest

• Warnung: Beim Test der Mehrbenutzersitzung wurden folgende Fehler erkannt:


• Auswirkungen, falls nicht behoben: Mehrere Benutzer können die App möglicherweise nicht problemlos in gleichzeitigen Sitzungen starten.


• Behebungsmethode: Stellen Sie sicher, dass die App das Starten mehrerer gleichzeitiger Sitzungen, lokal oder remote, nicht blockiert. Die App darf nicht von globalen Mutexen oder anderen benannten Objekten abhängen, um auf mehrere Instanzen zu überprüfen oder sie zu blockieren. Wenn die App mehrere gleichzeitige Sitzungen pro Benutzer blockiert, müssen pro Benutzer oder pro Sitzung definierte Namespaces für Mutexe oder andere benannte Objekte verwendet werden. Weitere Informationen finden Sie unter dem folgenden Link:
Programmierrichtlinien für Remotedesktopdienste
Auch interessant, da ich im Setup nur HKLM einen globalen Wert anlegen muss (systemweite Installation).
In der Anwendung würde nur HKCU geschrieben, für die persönlichen Einstellungen.

Wenn jemand noch Ideen hat, was ich falsch mache, immer her damit.

himitsu 6. Mär 2014 16:15

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Ordnungsgemäße Betriebssystemversion-Prüfung
Kann es sein, daß die dort die angegebene OS-Kompatibilität im XPManifest meinen?

Gut, die neusten Delphis hab ich übersprungen, aber mir ist noch nicht bekannt, daß Delphi dort etwas angibt.



Zitat:

Test der Mehrbenutzersitzungen
Nur mal so aus Interesse, falls ich das jetzt falsch verstanden hab.

Man darf kein Programm schreiben, welches nur einmal auf einem Computer ausgeführt werden darf?

CCRDude 7. Mär 2014 06:45

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Zitat von generic (Beitrag 1250959)
Zitat:

Test der Betriebssystemversion-Überprüfung
Es ist weder im Setup noch in der Delphi-Anwendung eine Versionsprüfung drin.

Da steht doch schon alles! Ich kan nicht für die 8er Dokumente sprechen, aber in den früheren Anforderungen stand immer klar drin, dass jedes Binary die Betriebssystemversion prüfen muss. Wenn jetzt auch noch in der Meldung drinsteht, dass es ein Fehler ist, dass sie nicht geprüft wird, und Du selber es zugibst, verstehe ich Deine Aufregung nicht :)

(ich habe das plump so gelöst, dass meine Unit, in der ich diverse Hilfsfunktionen zur Betriebssystemversion habe, ein GetVersionEx direkt im initialization aufruft und das Ergebnis für alle Hilfsfunktionen cacht...)

Zu Mutexen hast Du noch nichts geschrieben...

Insgesamt: es lohnt sich, die Anfordungen (sowohl das Theorie- als auch das Prakisdokument) auszudrucken und mal in Ruhe ohne Unterbrechung zu lesen. Nur auf den Output des Validierungstools einzugehen doktort nur an Symptomen rum...

generic 7. Mär 2014 09:48

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Zitat von himitsu (Beitrag 1250966)
Man darf kein Programm schreiben, welches nur einmal auf einem Computer ausgeführt werden darf?

Auf einen Terminalserver wäre das schlecht, denn es kann dann nur zeitgleich von einer Person genutzt werden.

CCRDude 7. Mär 2014 10:01

AW: Win8 Desktop Application Zertifizierung
 
Und wer denkt, ein Terminalserver wäre weit weg, denke nur mal an Fast User Switching, das ist das gleiche.

generic 7. Mär 2014 10:16

AW: Win8 Desktop Application Zertifizierung
 
Ich habe im Setup und in der Anwendung nun ein Prüfung welche auf Vista oder höher prüft.
Schwups, läuft das Tool durch. Schade, dass die mich zwingen alte Windows Versionen auszuschließen.

Bernhard Geyer 7. Mär 2014 10:26

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Zitat von generic (Beitrag 1251073)
Ich habe im Setup und in der Anwendung nun ein Prüfung welche auf Vista oder höher prüft.
Schwups, läuft das Tool durch. Schade, dass die mich zwingen alte Windows Versionen auszuschließen.

Und was bzw wie wird genau geprüft? Wir haben hier ein eigenes Setup-Programm und müssten das u.U. auch implementieren.

CCRDude 7. Mär 2014 10:57

AW: Win8 Desktop Application Zertifizierung
 
Es ist eine ganze Weile her, dass ich mich damit beschäftigt habe, aber damals reichte es wirklich, GetVersionEx aufzurufen (evtl. sogar, wenn es einfach nur in der Import-Tabelle steht...). Wie man das Ergebnis auswertet, bleibt jedem selber überlassen :stupid: , wir waren und sind immer noch XP-kompatibel und hatten den Test bestanden.

generic 19. Mär 2014 08:49

AW: Win8 Desktop Application Zertifizierung
 
Kurzes Update:
Wir sind inzwischen durch mit der Zertifizierung.

Zu der Versionsprüfung:
Es muss auf Vista oder höher geprüft werden, sonst zeigt das Programmfehler an.

Zu der Mehrbenutzerprüfung:
Das Tool findet die Exe nicht und daher die Warnung.

Diese Warnungen wurden bei der Zertifizierung von MS angenommen.

Der schöne Günther 19. Mär 2014 08:56

AW: Win8 Desktop Application Zertifizierung
 
In 64 Bit, oder?

generic 19. Mär 2014 20:00

AW: Win8 Desktop Application Zertifizierung
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1252480)
In 64 Bit, oder?

Jupp, da unser Lieblingscompiler leider nicht alle notwendigen Compiler/Linker-Switche in 32bit kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz