Install the SDK
This page adds the Grona iOS SDK to your app with Swift Package Manager. Do it once for the app target that shows Grona content. When the package resolves, go on to initialise the SDK.
Requirements
Section titled “Requirements”| Requirement | Value | Notes |
|---|---|---|
| Minimum iOS version | iOS 16 | Your app’s deployment target must be iOS 16 or later. A target with a lower deployment target cannot link the package. |
| Swift | 5.10 or later | Xcode 15.3 or later. The package also compiles in the Swift 6 language mode, and your app can use either mode. Apple’s own minimum for App Store uploads is higher: Xcode 26 or later since 28 April 2026. |
| UI frameworks | UIKit and SwiftUI | GronaSlotView is a UIView. GronaSlot and the .gronaDecision modifier are for SwiftUI. |
| Dependencies | None | The SDK uses only Apple frameworks. It brings no third-party code into your app. |
| Info.plist keys | None | The SDK needs no usage descriptions and never asks for App Tracking Transparency. |
| App extensions | Not supported | Call Grona.start from your app only. In an app extension it does nothing and the SDK stays inactive. |
Add the package
Section titled “Add the package”The package is https://github.com/GronaAI/grona-ios. It has two products:
| Product | Add it to | Purpose |
|---|---|---|
Grona |
Your app target | The SDK. |
GronaDebug |
Your app target, used only in debug builds | A debug view for your own builds. See Test and debug. |
Before 1.0, a minor version can contain breaking changes. Pin the exact version, 0.1.0, and read the changelog before you move to a newer one.
-
In Xcode, choose File > Add Package Dependencies.
-
Paste
https://github.com/GronaAI/grona-iosinto the search field. -
Set Dependency Rule to Exact Version and enter
0.1.0. Click Add Package. -
Add the
Gronaproduct to your app target. AddGronaDebugto the same target if you want the debug view. Click Add Package. -
Build the app once. Xcode records the resolved revision in
Package.resolved. Commit that file.
If your app’s features live in a Swift package, add Grona to that package’s manifest:
// swift-tools-version: 5.10import PackageDescription
let package = Package( name: "AcmeMarketFeatures", platforms: [.iOS(.v16)], products: [ .library(name: "AcmeMarketFeatures", targets: ["AcmeMarketFeatures"]), ], dependencies: [ .package(url: "https://github.com/GronaAI/grona-ios", exact: "0.1.0"), ], targets: [ .target( name: "AcmeMarketFeatures", dependencies: [ .product(name: "Grona", package: "grona-ios"), .product(name: "GronaDebug", package: "grona-ios"), ] ), ])The package: argument is the last component of the repository URL, grona-ios.
How the SDK is distributed
Section titled “How the SDK is distributed”The SDK ships as a source Swift package, so your security reviewers can read every line you build. There is no binary framework, CocoaPods pod or Carthage build.
- CocoaPods. Grona does not publish a pod. CocoaPods’ central spec repository is scheduled to stop accepting new pods in December 2026.
- Signatures. Apple requires signatures for binary copies of the SDKs on its list of commonly used third-party SDKs. Grona is a source package and is not on that list, so there is no signature to check. The exact revision pinned in
Package.resolvedis what guarantees you build the code you reviewed.
What the SDK adds to your app
Section titled “What the SDK adds to your app”- No permissions or Info.plist keys. The SDK never shows a system prompt.
- A privacy manifest. The package includes a
PrivacyInfo.xcprivacyfile, which Xcode includes when it generates your app’s privacy report. See App Store privacy and privacy manifest. - Network requests to known hosts only. The SDK contacts the URLs in your options and the image hosts your workspace configuration allows, over https only. See Domains and network calls.
- One folder of files. The SDK keeps its state in its own folder inside your app’s Application Support directory, excluded from backups. See Consent for what it stores.
The SDK never reads the advertising identifier (IDFA), the identifier for vendor (IDFV) or any other device identifier.
Next steps
Section titled “Next steps”- Initialise the SDK when your app launches.
- Read Rendering modes to decide where Grona draws and where your app draws.