Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert (https://www.delphipraxis.net/202795-macos-64-und-ble-als-entwickler-id-konfiguration-kompiliert.html)

philipp.hofmann 9. Dez 2019 23:16

MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Hi,

ich kann mein Projekt nicht mit der Entwickler-ID-Konfiguration nutzen, da ich dort eine BLE-Komponente habe.
Schon der einfachste Code lässt das Programm abstürzen:

procedure TForm1.Button1Click(Sender: TObject);
begin
BluetoothLE1.enabled:=true;
BluetoothLE1.DiscoverDevices(4000);
end;

BluetoothLE1 ist auf dem Form platziert und vom Typ TBluetoothLE.
Im Normal-Konfigurationsmodus läuft das Programm tadellos. Als Test habe ich auch mal den BLEScanner ausprobiert und leider das gleiche Ergebnis erhalten.

Muss man hier irgendetwas freischalten?

Grüße, Philipp

philipp.hofmann 14. Dez 2019 22:08

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Ich habe es noch nicht ausprobiert, aber es gibt ein Entitlement, welches man im Template statt in der IDE freischalten muss, eventuell ist dies der Grund für den Fehler:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <%appSandboxKeys%>
    <key>com.apple.security.device.bluetooth</key>
    <true/>
</dict>
</plist>

philipp.hofmann 15. Dez 2019 07:09

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Nein, auch bei korrigierten Entitlements stürzt die App ab, wenn sie Entwickler-ID-Modus kompiliert wurde und sobald ich BLE aktiviere.

Rollo62 15. Dez 2019 09:50

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Ich verstehe nicht genau was Du mit "Entwickler" Einstellungen meinst.
Bei mir läuft das BLE auf dem Macos-64 im Debug-Build, ohne das ich da was Besonderes freischalten müsste.
Habe aber keine Release-App im Store, da kann Alles wieder anders sein.

philipp.hofmann 16. Dez 2019 09:13

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Für MacOS gibt es unter Konfiguration drei Typen:

- Normal: und hier läuft alles stabil, man kann die App aber nur begrenzt weitergeben;

- Anwendungsstore: hier muss man Entitlements setzen und dies geht teilweise in der IDE und teilweise nur über das Template-File (so z.B. für die Nutzung von Bluetooth); hier ist man dann aber auf das Wohlwollen der AppStore-Prüfung angewiesen; da hänge ich z.B. gerade daran, dass FFMPEG wohl intern LZMA einsetzt und Apple dies nicht zulässt;

- Entwickler-ID: hier wird die Anwendung von Apple beglaubigt, was die Weitergabe einfacher macht (bzw. wenn ich es richtige sehe, unter Catalina sogar Pflicht ist, wenn man den AppStore nicht benutzt): und diese Version läuft definitiv fehlerhaft; BLE ist nicht nutzbar, sondern lässt das Programm crashen;

Ich bin mir daher immer noch unsicher, wie ich meine App zukünftig für Apple vertreiben soll.

Rollo62 16. Dez 2019 14:45

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Ah OK, ich habe da noch nie so bewusst reingeschaut.
Deshalb hätte ich das Entwickler-ID auch erstmal AdHoc genannt, so wie bei iOS,
es scheint aber doch was anderes zu sein.

Das Beglaubigen (Notarization) scheint ja wirklich nur bei Entwickler-ID nötig zu sein,
bisher ich bin davon ausgegangen das es generell nötig wäre.

Ich habe mich mit den verschiedenen Distributionswegen von Apple noch nicht so tief beschäftigt,
aber es macht ja wahrscheinlich Sinn Apps nicht über den AppStore zu vertreiben.
Insbesondere wenn diese verkauft werden sollen, damit man um die "Apple-Marge" herumkommt.
Da werden sollen ja ca. bis zu 30% fällig sein, was schon an Wucher grenzt.

https://developer.apple.com/macos/distribution/
Das Business model ist wohl eher für iOS gedacht, aber Macos sollte doch ähnlich sein.
https://developer.apple.com/app-store/business-models/

Ein konkreteres Pricing für Macos finde ich auf die Schnelle aber nicht, gibt es da "Preislisten" ?

philipp.hofmann 16. Dez 2019 17:45

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Ich kenne da auch keine Preisliste. Meine Monetarizierung läuft via PayPal, somit OS-unabhängig.

philipp.hofmann 17. Dez 2019 11:19

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Aktuell ist meine Tendenz zur Auslieferung die für den AppStore kompilierte Datei zu verwenden und mit Packages selbst als Installationsdatei zu bauen und per Website-Download auszuliefern (also nicht über den AppStore). Die gleiche Datei ist in der Sandbox leider noch instabil (stürzt unmotiviert dazwischen ab) und den Grund habe ich noch nicht gefunden (und da das Exception-Handling bei MacOS-64-Bit (noch) tricky ist, wird dies noch etwas dauern) und so komme ich nicht in den AppStore.

Die mit Developer-ID kompilierte Version funktioniert mit Bluetooth-LE überhaupt nicht und die im Normal-Modus kompilierte Version lässt sich bei Catalina nicht installieren. Also ist MacOS Auslieferungsseitig echt ein Spaß.

philipp.hofmann 23. Dez 2019 08:50

AW: MacOS-64 und BLE als Entwickler-ID-Konfiguration kompiliert
 
Jetzt funktioniert auch mein AppStore-Kompilat und lässt sich in den AppStore hochladen. Ich hatte an einer Stelle in einem Thread (nicht im Main-Thread) noch ein Application.processMessages(), welches aber sehr selten aufgerufen wurde. Darauf reagiert MacOS mit dem Absturz.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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