6

我正在创建应用程序,在其中添加和显示从 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"]);    
    }
}

如果我们在设备上运行应用程序以支持存折集成,是否需要进行任何更改?

4

2 回答 2

8

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

于 2013-01-25T05:21:10.647 回答
4

当您在模拟器上运行应用程序时,它基本上会忽略passTypeIdentifier ,Passbook应用程序中的通行证是使用创建的。因此,如果模拟器上的 Passbook 应用程序至少有一次通过,它将显示在您的应用程序中。

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

请记住,您签署代码时使用的 App ID 也应该在 Provisioning 门户上为 Passes 启用。

于 2012-12-24T22:33:43.063 回答