<!--
{
  "availability" : [
    "iOS: 11.0.0 - 18.0.0",
    "iPadOS: 11.0.0 - 18.0.0",
    "macCatalyst: 14.0.0 - 18.0.0",
    "macOS: 11.0.0 - 15.0.0",
    "tvOS: 11.0.0 - 18.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SKProductStorePromotionController/update(storePromotionVisibility:for:completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SKProductStorePromotionController(im)updateStorePromotionVisibility:forProduct:completionHandler:"
  },
  "title" : "update(storePromotionVisibility:for:completionHandler:)"
}
-->

# update(storePromotionVisibility:for:completionHandler:)

Updates the visibility of the product on the App Store, per device.

```
func update(storePromotionVisibility promotionVisibility: SKProductStorePromotionVisibility, for product: SKProduct, completionHandler: (@Sendable ((any Error)?) -> Void)? = nil)
```

## Discussion

An in-app purchase product’s default visibility setting is set up in App Store Connect.  You can override the default setting, or return it to the default set in App Store Connect using the values in [`SKProductStorePromotionVisibility`](/documentation/StoreKit/SKProductStorePromotionVisibility).

Visibility settings apply per device.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)