# Mobile Payments SDK 2.6.0 (iOS) — reader pairs, then "Unable to establish a secure connection to Square"

**URL:** <https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049>\
**Category:** Questions\
**Tags:** web-payments-sdk\
**Created:** [July 31, 2026, 4:16am UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049 "2026-07-31T04:16:14Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Orcoda](https://avatars.discourse-cdn.com/v4/letter/o/4da419/32.png) [@Orcoda](https://developer.squareup.com/forums/u/Orcoda)\
**Post date:** [July 31, 2026, 4:16am UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049/1 "2026-07-31T04:16:15Z")

</div>

Setup: Flutter plugin 2026.7.4 → native iOS SDK 2.6.0. iPhone 16 Pro, iOS  
18.7.8, debug build. Production application ID + production access token,  
AU merchant.

The reader pairs over Bluetooth, then immediately reports “Reader  
Unavailable. Unable to establish a secure connection to Square” and never  
reaches Ready. Reproducible across forget/re-pair cycles and app restarts.

---

<div class="post-metadata">

**Author:** ![ashley-square](https://avatars.discourse-cdn.com/v4/letter/a/5f9b8f/32.png) [@ashley-square](https://developer.squareup.com/forums/u/ashley-square)\
**Post date:** [July 31, 2026, 2:20pm UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049/4 "2026-07-31T14:20:04Z")

</div>

Can you ensure you are on the latest version of the SDK? We just shipped a fix for this a few days ago. [Mobile SDKs: 2026-07-27 Changelog](https://developer.squareup.com/docs/changelog/mobile-logs/2026-07-27)

---

<div class="post-metadata">

**Author:** ![thecanvasnailstudio](https://avatars.discourse-cdn.com/v4/letter/t/77aa72/32.png) [@thecanvasnailstudio](https://developer.squareup.com/forums/u/thecanvasnailstudio)\
**Post date:** [August 20, 2026, 11:13am UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049/5 "2026-08-20T11:13:41Z")

</div>

Our Square Reader (2nd gen contactless, serial 426LS22205000747, firmware 416099) pairs over Bluetooth and responds to “Identify reader,” but sits at “Reader unavailable — Unable to establish a secure connection to Square.”

Everything on our side is verified:

- Production application sq0idp-pFqYyU6grRdDvu92-gOdPw, production OAuth grant with MERCHANT\_PROFILE\_READ, PAYMENTS\_WRITE, PAYMENTS\_WRITE\_IN\_PERSON.
- Mobile Payments SDK signature registered under that application: Bundle ID com.thecanvasnailstudio.admin, Team ID XSMG7W3WMM — confirmed against the .ipa’s embedded provisioning profile.
- SDK: mobile-payments-sdk-react-native 2026.7.1 → native iOS SDK 2.6.0. iOS release-signed internal-distribution build (Expo/EAS).
- The same reader on the same phone connects and takes payments fine in the Square POS app, so hardware, network, and the merchant account are all healthy.

Can you check the server-side rejection reason for our reader’s secure-session attempts? Merchant timezone America/New\_York; most recent attempts Aug 19–20, 2026.

---

<div class="post-metadata">

**Author:** ![jseok](https://avatars.discourse-cdn.com/v4/letter/j/f475e1/32.png) [@jseok](https://developer.squareup.com/forums/u/jseok)\
**Post date:** [August 20, 2026, 8:32pm UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049/7 "2026-08-20T20:32:50Z")

</div>

Hi @thecanvasnailstudio - The reader and account configuration appear healthy, but the secure connection is being rejected during iOS app-attestation. We recommend reviewing the app’s Apple signing, provisioning, App Attest capability, and Expo config. It may also help to test a fresh TestFlight build to determine whether the issue is specific to internal distribution. If the same error occurs with a correctly provisioned TestFlight build, please let us know so we can escalate it to the Mobile Payments SDK team.

---

<div class="post-metadata">

**Author:** ![thecanvasnailstudio](https://avatars.discourse-cdn.com/v4/letter/t/77aa72/32.png) [@thecanvasnailstudio](https://developer.squareup.com/forums/u/thecanvasnailstudio)\
**Post date:** [August 21, 2026, 12:36pm UTC](https://developer.squareup.com/forums/t/mobile-payments-sdk-2-6-0-ios-reader-pairs-then-unable-to-establish-a-secure-connection-to-square/27049/8 "2026-08-21T12:36:55Z")

</div>

Resolved — thank you, the app-attestation pointer was exactly right.

Root cause: our staff app is distributed internally (EAS ad-hoc build), not through TestFlight/App Store. Apple’s App Attest uses the sandbox attestation environment whenever the `com.apple.developer.devicecheck.appattest-environment` entitlement is absent and the build  
isn’t TestFlight / App Store / Enterprise. Our build had no such entitlement, so since the Aug 17 change (MPSDK ≥ 2.5.0 using App Attest for device integrity) every secure-session attempt attested against Apple’s sandbox and was rejected — hence “Unable to establish a secure connection to Square” on a reader that paired fine and worked in Square POS.

Fix: added the entitlement `com.apple.developer.devicecheck.appattest-environment = production` to the app (Expo ios.entitlements), enabled  
the App Attest capability on the App ID, rebuilt with a fresh provisioning profile. Same bundle ID / Team ID registration as before, no other changes. The Square Reader (2nd gen contactless+chip) now connects and takes payments.

Two suggestions for the docs, since nothing in the “App Attest (MPSDK 2.5.0+)” section mentions setup:  
(1) state that internally distributed / ad-hoc iOS builds must set the appattest-environment entitlement to production (TestFlight and App Store builds are forced to production by iOS and don’t need it);  
(2) note that a missing/sandbox attestation surfaces as the generic “Unable to establish a  
secure connection to Square” reader error, which currently points people at signature/Team ID registration instead.
