118 lines
3.3 KiB
Markdown
118 lines
3.3 KiB
Markdown
## WebID Meta Plugin – React Native POC
|
||
|
||
> **Disclaimer**
|
||
>
|
||
> This iOS example application is provided **solely as a proof of concept and for technical evaluation**.
|
||
> It is **experimental**, **not formally approved**, **not officially released**, and **not endorsed** by WebID for production use.
|
||
>
|
||
> The setup described below includes **non-standard workarounds** and **temporary configuration adjustments** that are required due to current tooling and dependency constraints.
|
||
> **Do not use this configuration as a production reference.**
|
||
|
||
---
|
||
|
||
## Overview
|
||
|
||
This repository contains an example iOS application demonstrating integration of the **WebID Meta Plugin** in a React Native environment.
|
||
|
||
Due to:
|
||
- mixed minimum iOS deployment targets,
|
||
- vendored dynamic XCFrameworks,
|
||
- React Native / CocoaPods integration constraints,
|
||
|
||
additional manual steps are currently required to successfully build and run the app.
|
||
|
||
---
|
||
|
||
## Prerequisites
|
||
|
||
- macOS with Xcode installed
|
||
- Node.js + Yarn
|
||
- CocoaPods
|
||
- Xcode Command Line Tools
|
||
|
||
---
|
||
|
||
## Getting Started
|
||
|
||
### Create and Configure the `.env` File
|
||
|
||
Navigate to the example project and create the environment file:
|
||
|
||
|
||
in WebIdMetaPluginReactNative/web-id-meta-plugin/example
|
||
|
||
```
|
||
cp .env.example .env
|
||
```
|
||
|
||
Edit the .env file and add your username and API key.
|
||
|
||
ℹ️ The provided CERT_BASE64 value is preconfigured for the test system and is valid until 2026-02-21.
|
||
In most cases, this value does not need to be modified if you intend to test against the test environment.
|
||
|
||
### Install pods
|
||
|
||
|
||
in WebIdMetaPluginReactNative/web-id-meta-plugin/example/ios
|
||
|
||
```
|
||
pod install
|
||
```
|
||
|
||
Post-install Notes
|
||
Duplicate PrivacyInfo.xcprivacy
|
||
|
||
After running pod install, the Xcode project may contain duplicate PrivacyInfo.xcprivacy files.
|
||
|
||
- Open the Xcode workspace
|
||
- Remove the duplicate reference from the project navigator
|
||
|
||
Special Configuration Notes
|
||
WebIdPayOnServer Dependency Handling
|
||
|
||
If the WebIdPayOnServer product is included, some of its transitive dependencies currently require manual configuration to avoid build and runtime issues.
|
||
|
||
iOS Deployment Target Adjustment
|
||
|
||
In the Pods Xcode project, set the iOS Deployment Target to iOS 13.0 for the following targets:
|
||
|
||
- KeychainAccess
|
||
|
||
- NVActivityIndicatorView
|
||
|
||
- SwiftyJSON
|
||
|
||
- XS2AiOS
|
||
|
||
⚠️ These targets may default to iOS 13.4 and must be adjusted manually.
|
||
|
||
Reasons:
|
||
|
||
The React Native version used by this project requires a minimum iOS version of 13.4
|
||
The libraries listed above are compiled from source during the Xcode build and therefore inherit the 13.4 minimum
|
||
The WebID SDK, however, is compiled against iOS 13.0 and expects its dependencies to match this deployment target
|
||
The example project’s Podfile explicitly forces these libraries to be built as dynamic frameworks, as required by the WebID SDK
|
||
This mismatch otherwise leads to compiler errors or runtime crashes.
|
||
|
||
### Running the App
|
||
|
||
in WebIdMetaPluginReactNative/web-id-meta-plugin:
|
||
|
||
```
|
||
yarn prepare
|
||
```
|
||
|
||
(skip for future runs)
|
||
|
||
in WebIdMetaPluginReactNative/web-id-meta-plugin/example/ios
|
||
|
||
```
|
||
yarn ios
|
||
```
|
||
|
||
### Core files to inspect:
|
||
- WebIdMetaPluginReactNative/web-id-meta-plugin/react-native-web-id-meta-plugin.podspec
|
||
- WebIdMetaPluginReactNative/web-id-meta-plugin/example/ios/Podfile
|
||
- WebIdMetaPluginReactNative/web-id-meta-plugin/example/src/App.tsx
|
||
- WebIdMetaPluginReactNative/web-id-meta-plugin/ios/WebIdMetaPlugin.swift
|