I just created an app and a pass, so I can add the pass to the PassBook in iPod, but I cannot share the pass by email or link from web server. From the documentation I read
Apache
Add the following line to either:
.htaccess
in the directory serving your .pkpass, ormime.types
file, orhttpd.conf
or virtuatl server .conf
fileThen restart Apache (not required if adding to .htaccess
)
AddType application/vnd.apple.pkpass pkpass
nginx
Add the following line to your mime.types
file and restart nginx
application/vnd.apple.pkpass pkpass;
IIS
.pkpass
application.vnd.pkpass
n the MIME text boxIf you are serving your file via a script and are not able to edit your web server config you could add the following line before any content is sent:
PHP
header('Content-Type: application/vnd.apple.pkpass');
C#
WebClient client = new WebClient();
client.Headers.Add("Content-Type", "application/vnd.apple.pkpass");
For a pure PHP solution, add your .pkpass bundle to the server, then create the following file and name this file pass.php.
<?php
$pkpass_file = '/path/to/your/.pkpass/file/GenericMemberCard.pkpass';
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/vnd.apple.pkpass");
header('Content-Disposition: attachment; filename="pass.pkpass"');
clearstatcache();
$filesize = filesize($pkpass_file);
if ($filesize)
header("Content-Length: ". $filesize);
header('Content-Transfer-Encoding: binary');
if (filemtime($pkpass_file)) {
date_default_timezone_set("UTC");
header('Last-Modified: ' . date("D, d M Y H:i:s", filemtime($pkpass_file)) . ' GMT');
}
flush();
readfile($pkpass_file);
Then create a second file linking to the file you created above.
<a href="pass.php">Click to download your pass</a>