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
|