SDK Integration
6 min
at purple, we are happy to integrate sdks and third party systems that we don't support out of the box it adds variability and opportunity for our customers not every third party system is ready to integrate with the purple platform the requirements below describe what an sdk has to provide so that we can integrate it cleanly context how purple builds apps purple is a white label app framework (native android and ios) we pass a specific configuration into the framework and get a finished app as output, fully automated for third party integrations, we provide abstraction layers , for example, for analytics frameworks and consent management platforms because the build runs automatically and unattended, any sdk we integrate must fit into this pipeline without manual steps requirements an sdk integration must meet the following specifications 1\ distributed via a standard package manager we expect the sdk to be published as an artifact in a common package manager we do not include library code or drop in frameworks by hand android maven a published aar artifact in a maven repository, so we can add it as a gradle dependency, for example implementation 'com sourcepoint cmplibrary\ cmplibrary 7 1 0' the maven repository may be password protected if needed ios swift package manager (spm) a published swift package , which we add to our package swift (sourcepoint as an example) // package dependency — we pin exact versions (exact , not from ) package(url "https //github com/sourcepointusa/ios cmp app", exact "7 12 9"), // declared as a dependency of the relevant library target, // since our app framework is itself a swift package / library product(name "consentviewcontroller", package "ios cmp app"), the package must resolve cleanly with current swiftpm / xcode if you don't want to publish your source code publicly, you can ship a precompiled xcframework as a binary swift package like consentmanager (iubenda) does, which we consume via spm (see https //github com/iubenda/cm sdk xcframework) this is also the recommended route for non public sdks, as it needs no repository nor ssh access on ios we support swift package manager exclusively other integration methods are not supported 2\ no ssh keys our builds run on various developer machines and ci/cd runners, and these change over time (e g , when we add a new machine) we therefore cannot use ssh keys to access your artifacts please make them reachable without ssh for example, via a password /token protected maven repository (android) or a binary xcframework swift package (ios) 3\ a development environment to ensure smooth development, we also need a development environment it should be configured like a generic production environment and let us verify that our code and configuration work correctly