Sto tentando di includere OpenSSL in un progetto Swift OS X per la convalida della ricevuta.Aggiunta di openSSL al progetto Swift OS X per la convalida della ricevuta
Ho creato con successo i file di intestazione e libreria OpenSSL necessari. Li ho aggiunti al mio progetto, ma in questo modo non è stato richiesto di creare un file di intestazione di bridging. Ho creato manualmente il file di intestazione del bridging con #import per ciascuno dei file di intestazione openssl. Nell'impostazione del progetto, ho impostato l'intestazione del bridging C obiettivo sotto "swift compiler - code generation" nella mia intestazione di bridging. Ho generato i file ans1c per il formato del payload come descritto nella guida alla programmazione della convalida della ricevuta: "Elenco 1-1 della definizione ASN.1 del formato del payload" e li ho aggiunti alla mia intestazione di bridging.
Ottengo numerosi errori di compilazione durante la compilazione, principalmente per i nomi di tipi sconosciuti nei file di intestazione openSSL che avrei pensato sarebbero stati definiti nei file di intestazione ans1c, ma non lo sono. Ricevo anche un errore "Impossibile importare l'intestazione di bridging ... (il mio file di intestazione di bridging)".
Sono a corto di idee e potrebbe dover abbandonare openSSL per la convalida della ricevuta. Se qualcuno sa cosa sto facendo male, o se hai un metodo alternativo per fare la convalida, mi piacerebbe sentirlo. La mia app avrà IAP, quindi sembra che avrei bisogno di un modo per controllare la ricevuta.
Credo di aver isolato il mio problema attuale, ma non so come correggerlo. Ho costruito due progetti bare bones in cui ho importato la libreria e le intestazioni openSSL, un progetto in Swift e l'altro in Objective C. Con la versione C obiettivo posso creare senza errori. Con la versione Swift, la build risulta in più errori del compilatore, la maggior parte dei quali sono nomi di tipi sconosciuti per alcuni dei tipi openSSL. Quando porto i file header nel progetto Swift, non mi viene richiesto di creare un'intestazione di bridging, il che mi rende sospetto che non li sto importando correttamente. – jbaraga