新开始使用Eclipse IDE for Java Developers为我的一个新项目我必须为我的iphone项目配置Jpasskit。我创建了新的test.java文件。
public static void main(String [ ] args)
{
String appleWWDRCA = "passbook/AppleWWDRCA.pem"; // this is apple's developer relation cert
String privateKeyPath = "./privateKey.p12"; // the private key you exported from keychain
String privateKeyPassword = "password"; // the password you used to export
try {
PKSigningInformation pkSigningInformation = PKSigningUtil.
loadSigningInformationFromPKCS12FileAndIntermediateCertificateFile(
privateKeyPath, privateKeyPassword, appleWWDRCA);
PKPass pass = new PKPass();
pass.setPassTypeIdentifier("pass.com.yourdomain.type");
pass.setAuthenticationToken("vxwxd7J8AlNNFPS8k0a0FfUFtq0ewzFdc");
pass.setSerialNumber("12345678000");
pass.setTeamIdentifier("abcdefg"); // replace this with your team ID
pass.setOrganizationName("your org");
pass.setDescription("some description");
pass.setLogoText("some logo text");
PKBarcode barcode = new PKBarcode();
barcode.setFormat(PKBarcodeFormat.PKBarcodeFormatPDF417);
barcode.setMessageEncoding(Charset.forName("iso-8859-1"));
barcode.setMessage("123456789");
pass.setBarcode(barcode);
PKGenericPass generic = new PKGenericPass();
List<PKField> primaryFields = new ArrayList<PKField>();
PKField member = new PKField();
member.setKey("mykey"); // some unique key for primary field
member.setValue("myvalue"); // some value
primaryFields.add(member);
generic.setPrimaryFields(primaryFields);
pass.setGeneric(generic);
PKLocation location = new PKLocation();
location.setLatitude(37.33182); // replace with some lat
location.setLongitude(-122.03118); // replace with some long
List<PKLocation> locations = new ArrayList<PKLocation>();
locations.add(location);
pass.setLocations(locations);
if (pass.isValid()) {
String pathToTemplateDirectory = "./mypass.raw"; // replace with your folder with the icons
byte[] passZipAsByteArray = PKSigningUtil.
createSignedAndZippedPkPassArchive(pass, pathToTemplateDirectory, pkSigningInformation);
String outputFile = "./mypass.pkpass"; // change the name of the pass
ByteArrayInputStream inputStream = new ByteArrayInputStream(passZipAsByteArray);
IOUtils.copy(inputStream, new FileOutputStream(outputFile));
System.out.println("Done!");
} else {
System.out.println("the pass is NOT Valid man!!!");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("failed!");
}
}
我不知道我做错了什么?
我不确定我是否导入了项目.. 或classpth问题。 或者我的样本中可能有问题。答案 0 :(得分:0)
你安装了蚂蚁吗? ANT_HOME,CLASSPATH和JAVA_HOME设置了吗? JAVA_HOME与项目使用的jdk相同吗?