Ich benutze diese passgenerator Bibliothek, um eine .pkpass
zu generieren, die auf einem Apple Wallet auf dem iPhone installiert werden soll. Die .pkpass
Datei wurde erfolgreich erstellt, konnte jedoch nicht zu "wallet" auf dem iPhone hinzugefügt werden. Es wird sogar kein Fehler angezeigt, wenn ich versuche, diese Datei über einen E-Mail-Anhang zu öffnen. Wenn ich es mit "Pass Viewer" auf dem Mac öffne, zeigt es einen Fehler im Barcode-Bereich. Hier ist Screenshot;PHP generiert Pass wird nicht in Brieftasche auf einem iPhone installiert
Ich weiß nicht, wo ich etwas falsch tue. Ich benutze Laravel 5.1 und ich habe dieses Paket korrekt benötigt und auch als Dokumentation gefragt, um Umgebungsvariablen zu setzen, um Zertifikate Pfade zu setzen.
Hier ist mein Controller-Code, wo ich seine Konfigurationen im JSON-Format einstellen.
public function index(PassGenerator $pass)
{
$pass_identifier = 'testPkPass'; // This, if set, it would allow for retrieval later on of the created Pass
$pkpass = $pass->getPass($pass_identifier);
if (!$pkpass) {
$pkpass = $this->createWalletPass($pass_identifier);
}
$path = storage_path().'/app/passgenerator/'.$pass_identifier.'.pkpass';
return Response::download($path, $pass_identifier.'.pkpass', [
'Content-Transfer-Encoding' => 'binary',
'Content-Description' => 'File Transfer',
'Content-Disposition' => 'attachment; filename="myTestingPass.pkpass"',
'Content-length' => strlen($pkpass),
'Content-Type' => PassGenerator::getPassMimeType(),
'Pragma' => 'no-cache',
]);
}
private function createWalletPass($pass_identifier)
{
$pass = new PassGenerator($pass_identifier);
$pass_definition = [
"description" => "description",
"formatVersion" => 1,
"organizationName" => "Black Book",
"passTypeIdentifier"=> "pass.biz.myIdentifier.coupon",
"serialNumber" => "123456",
"teamIdentifier" => "xyz",
"foregroundColor" => "rgb(255, 255, 255)",
"backgroundColor" => "rgb(44, 49, 51)",
"barcode" => [
"message" => "encodedmessageonQR",
"format" => "PKBarcodeFormatQR",
"altText" => "altextfortheQR",
"messageEncoding"=> "utf-8",
],
"coupon" => [
"headerFields" => [
[
"key" => "header",
"label" => "Value",
"value" => "30%"
]
],
"secondaryFields" => [
[
"key" => "welcome",
"label" => "",
"value" => "Welcome valued customer!"
],
[
"key" => "date",
"label" => "EXPIRES",
"value" => "2016/06/29"
]
],
"backFields" => [
[
"key" => "terms",
"label" => "Terms & Conditions",
"value" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
], [
"key" => "contact",
"label" => "Contact Us",
"value" => "[Contact-us] Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco."
],
],
],
];
$pass->setPassDefinition($pass_definition);
// Add assets to the PKPass package
$pass->addAsset(base_path('public/assets/wallet/background.png'));
$pass->addAsset(base_path('public/assets/wallet/thumbnail.png'));
$pass->addAsset(base_path('public/assets/wallet/icon.png'));
$pass->addAsset(base_path('public/assets/wallet/logo.png'));
$pkpass = $pass->create();
return $pkpass;
}
Jede Hilfe würde wirklich geschätzt werden. Bitte lassen Sie mich wissen, wenn ich irgendetwas falsch mit Konfiguration oder woanders mache.
Was sagen Ihre Xcode-Protokolle? Wenn Sie keinen Mac oder Xcode haben, können Sie einen Link zum .pkapss-Bundle veröffentlichen. Sie haben kein Ablaufdatum in Ihrem JSON festgelegt, daher vermute ich, dass der Barcode ausgegraut ist, weil Ihr Pass-Type-ID-Zertifikat abgelaufen ist oder widerrufen wurde. – PassKit
Sie haben auch eine leere Zeichenfolge in Ihrem sekundären Etikett. Entfernen Sie den Schlüssel oder fügen Sie ein Leerzeichen hinzu. Eine leere Zeichenfolge verursacht einen Fehler. – PassKit
@PassKit Ich habe mein sekundäres Feld geändert, aber es hat keine Auswirkungen. Können Sie mir Ihre E-Mail-Adresse angeben, damit ich Ihnen eine E-Mail mit dem Pass-Paket zusenden kann? –