如何在我的应用程序中访问存折的通行证?

我正在创建应用程序,我正在添加并显示从iOS6的存折应用程序到我的应用程序的传递。 但是当我在模拟器上运行应用程序时,它显示了添加的通行证,但是当我在设备上运行相同时,它显示我的存折是空的。

我已经按照iOS6教程整合了存折你的应用程序链接来创建,添加和显示传递。

访问传递我使用以下代码 –

NSArray * passArray = [_passLib passes]; NSLog(@"number of passes in library are: %d",[passArray count]); //if more tha one pass in library, just use the first one. if ([passArray count] > 0) { for (int i = 0; i<[passArray count]; i++) { PKPass *onePass = [passArray objectAtIndex:i]; //access general fieldnames NSLog(@"%@",[onePass localizedName]); NSLog(@"%@",[onePass organizationName]); //access a specific field name NSLog(@"%@",[onePass localizedValueForFieldKey:@"rewards"]); } } 

如果我们在设备上运行app来支持存折集,我们是否需要进行任何更改?

创建类似于passTypeIdentifier的AppId。 例如,如果您的passTypeIdentifier是pass.abc.xyz,那么您的AppId必须是com.abc.xyz。创建配置文件时,请使用此appId并为您的应用程序使用此配置文件。 然后,只有您能够区分存折中的可用通行证。

当您在模拟器上运行应用程序时,它基本上忽略了PassType应用程序中的传递创建的passTypeIdentifier 。 因此,如果模拟器上的Passbook应用程序至少有一个过程,它将显示在您的应用程序中。

另一方面,在设备PKPassLibrary上初始化仅使用passTypeIdentifier创建的传递等于您在配置文件中具有的传递并在应用程序的权利中设置。 严格来说 – 只有您拥有的通行证。

请记住,您为代码签名的App ID也应该是Provisioning门户上的Enable for Passes