2012-12-24 40 views
6

Tôi đang tạo ứng dụng mà tôi đang thêm và hiển thị số lần chuyển từ ứng dụng sổ tiết kiệm của iOS6 cho ứng dụng của tôi. Nhưng khi tôi chạy ứng dụng trên giả lập nó cho thấy thêm đi nhưng khi tôi chạy cùng trên thiết bị nó cho thấy sổ tiết kiệm của tôi là sản phẩm nào.Làm thế nào để truy cập vào pass từ passbook trong ứng dụng của tôi?

Tôi đã theo dõi iOS6 tutorial integrating passbook your applications liên kết để tạo, thêm và hiển thị thẻ.

để truy cập đèo Tôi đã sử dụng sau mã -

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"]);  
    } 
} 

Chúng ta cần phải thực hiện bất kỳ thay đổi nếu chúng ta chạy ứng dụng trên thiết bị để hỗ trợ hội nhập sổ tiết kiệm?

Trả lời

6

Tạo AppId tương tự với passTypeIdentifier. Ví dụ: nếu passTypeIdentifier của bạn là pass.abc.xyz thì AppId của bạn phải là com.abc.xyz. Khi tạo hồ sơ cấp phép, hãy sử dụng appId này và sử dụng hồ sơ cấp phép này cho ứng dụng của bạn. Sau đó, chỉ có bạn mới có thể phân biệt các thẻ có sẵn trong sổ tiết kiệm của bạn.

+0

Tôi đã làm tương tự, Vẫn không hoạt động –

+1

Câu trả lời hoàn hảo .. –

3

Khi bạn đang chạy một ứng dụng trên Trình mô phỏng về cơ bản, nó bỏ qua passTypeIdentifier các đường chuyền trong ứng dụng Sổ tiết kiệm được tạo. Do đó, nếu ứng dụng Passbook trên Trình mô phỏng có ít nhất một lần truyền, nó sẽ hiển thị trong ứng dụng của bạn.

Mặt khác, trên thiết bị PKPassLibrary chỉ khởi tạo với đèo đã được tạo ra với passTypeIdentifier 's tương đương với những người bạn có trong hồ sơ provisioning của bạn và thiết lập trong quyền của ứng dụng. Nói đúng - chỉ với vé bạn sở hữu.

Hãy nhớ rằng ID ứng dụng bạn ký mã cũng phải là Bật cho số trên cổng Cấp phép.

+0

Cảm ơn câu trả lời của bạn. Nhưng tôi vẫn không thể giải quyết vấn đề. Tôi không nhận được những gì chính xác có nghĩa là - "vượt qua được tạo ra với passTypeIdentifier bằng với những người bạn có trong hồ sơ cung cấp của bạn". Bạn có thể nói chi tiết không? – Trup

+0

Xin chào, trước hết bạn không thể truy cập các thẻ đã được tạo trong tài khoản nhà phát triển khác. Chỉ vượt qua được tạo ra bởi bạn có thể truy cập trên thiết bị với phương pháp PKPassLibrary. Ngoài ra, các cấu hình Provision (cả dev và ad-hoc) nên được tạo với App-Id mà không có '*' trong tên của nó. –

Các vấn đề liên quan