# OpenVPNPlugins
**Repository Path**: tyousan_admin/OpenVPNPlugins
## Basic Information
- **Project Name**: OpenVPNPlugins
- **Description**: OpenVPN的iOS配套扩展插件
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-10-26
- **Last Updated**: 2025-02-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenVPNPlugins
#### 介绍
OpenVPN的iOS配套扩展插件(含用友和DCloud平台配套插件使用说明)
## 重要
苹果上架遇见4.3问题,可能需要你自己制作appex扩展文件,防止上架审核4.3问题。
1.用xcode创建一个App工程。
2.添加target,选择Network Extension。
3.导入OpenVPNAdapter.framework。
4.添加swift\下的PacketTunnelProvider.swift文件
5.添加swift\下的Then.swift文件。
6.运行程序,获取PacketTunnel.appex。
7.删除PacketTunnel.appex内部的embedded.mobileprovision文件。
8.将PacketTunnel.appex内部的Frameworks目录下的OpenVPNAdapter.framework复制到XF-OpenVPNPlugins/ios/目录下。
9.删除PacketTunnel.appex内部的Info.plist中Bundle identifier。
10.替换XF-OpenVPNPlugins里面的PacketTunnel.appex文件。
11.你自己的appex扩展就做好了。
## ** 一、用友 OpenVPNPlugins配置说明 **
#### 主工程 Info.plist 需要配置
1. Info.plist中新增groupName值:如group.主工程ID。
```js
groupName
group.主工程ID
NSSystemExtensionUsageDescription
VPN权限申请描述信息
```
#### 主工程 UZApp.entitlements 需要配置
```js
com.apple.developer.networking.networkextension
packet-tunnel-provider
com.apple.security.application-groups
group.com.soft.qingyanjiasu
```
#### 扩展库 PacketTunnel.appex
1. appex扩展内部 Info.plist 根据实际情况填写一下内容。
2. Info.plist中新增Bundle identifier值:如:主工程ID.PacketTunnel。
3. Info.plist中新增groupName值:如group.主工程ID。
4. 根据自己实际情况替换appex中的embedded.mobileprovision证书
```js
CFBundleIdentifier
主工程ID.PacketTunnel
groupName
group.主工程ID
```
## ** 二、Dcloud XF-OpenVPNPlugins配置说明 **
1. 修改ios-extension.json里面配置信息:
```js
{
"PacketTunnel.appex": {
"identifier":"",//必须修改为自己的id值
"profile":"ios-PacketTunnelExt.mobileprovision",//可以不修改
"plists":{
"groupName":"",//App Group数据共享ID
},
"entitlements":{
"com.apple.developer.networking.networkextension":["packet-tunnel-provider"],
"com.apple.security.application-groups":[""]//App Group数据共享ID
}
}
}
```
2. 替换ios-PacketTunnelExt.mobileprovision描述文件为你自己的扩展描述文件(文件名称请不要变).
3. 修改package.json里面com.apple.security.application-groups信息为自己的值,同时修改NSSystemExtensionUsageDescription权限的描述信息。

## ** 三、离线打包 **
#### 主工程和扩展工程配置如图

#### 主工程单独引入扩展 PacketTunnel.appex 如图


同时在Info.Plist中填写权限NSSystemExtensionUsageDescription的描述信息。