Возможно, вы могли бы отправить запрос продукта в фоновом режиме, и отображать кнопку покупки, только если что-то возвращается.Недостатком является то, что могут быть проблемы (сбои в работе магазина, проблемы с сетью, вы временно отключаете продукт), которые могут привести к сбою запроса продукта, поэтому вам придется соответствующим образом разработать альтернативный интерфейс пользователя.
SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:productId]];
productRequest.delegate = self;
[productRequest start];
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
if ([[response products] count] > 0) {
// display purchase link
} else {
// display alternative UI
}
}