All but React Native are in beta.
All but React Native are in beta.

The simulator reaches Buoy Desktop at localhost. A physical iPhone or iPad needs your computer's LAN address and two Info.plist changes.
The quickest way is a BUOY_SOCKET_URL environment variable in your Run scheme. Set it to the address alone (192.168.1.20) or a full URL (http://192.168.1.20:42831). Buoy uses it only when socketURL is left at its default.
To set it in code instead, do so before calling Buoy.start:
var config = BuoyConfig()
if let brokerURL = URL(string: "http://192.168.1.20:42831") {
config.socketURL = brokerURL
}
Buoy.start(config)
var config = BuoyConfig()
if let brokerURL = URL(string: "http://192.168.1.20:42831") {
config.socketURL = brokerURL
}
Buoy.start(config)
Replace the example IP address with your computer's address, and keep your app's startup guard around this code.
Your buoy login token works on an iPhone or iPad too, when Xcode runs a dev build. The Run scheme passes BUOY_LICENSE_KEY to the device. An ad hoc, TestFlight or App Store build turns the token down. Those builds sign in with a code. See Test builds.
Merge these entries into your app's Info.plist, keeping any transport-security configuration you already have:
<key>NSLocalNetworkUsageDescription</key>
<string>Connects to the Buoy desktop dashboard for debugging.</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>192.168.0.0/16</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSLocalNetworkUsageDescription</key>
<string>Connects to the Buoy desktop dashboard for debugging.</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>192.168.0.0/16</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Since iOS 17, NSAllowsLocalNetworking alone no longer allows plain HTTP to a bare IP address, so the address also needs an NSExceptionDomains entry. Use the range that contains your computer's address (for example 10.0.0.0/8) or the exact IP. CIDR keys require iOS 17; on iOS 16, list the exact IP.
Limit these entries to the builds that include Buoy, for example with a separate Info.plist per build configuration.
On a physical device, Buoy.start prints a [Buoy] setup: line to the Xcode console when the URL still points at localhost or one of these entries is missing.
Allow local-network access when iOS asks, and make sure the device can reach the computer's broker port. These entries do not open a firewall. If the connection fails, check the connection error in the console.
Use a trusted development network. Account validation makes external requests, and device sessions cross your LAN.