Unity Plugin
Unity Plugin 基本說明
該文件是在Unity開發環境下安裝AppGuard時提供的適應Unity的插件,比現有SDK安裝方式更容易適用。
Plugin 下載和安裝
安裝Unity Plugin,在Unity中構建項目的方法如下。
-
在AppGuard manager 管理平臺中 選擇Download > Unity Pluings 下載最新版本。
-
將下載的 AppGuardUnityPlugin.zip文件解壓文件夾,將內部的AppGuardPostProcessBuild.cs, AppGuardUnityManager.cs文件和 /Plugins 文件夾複製到 Project/Asset/ 路徑內。
如果編譯時 **Assets/**中只有 AppGuardUnityManager.cs 文件, /Assets/Plugins/ *文件夾未複製時到Project/Asset/ 路徑 內,
需要注意,可能會出現錯誤("Error: Symbol(s) not found for a architecture arm64")。
AppGuard Config 文件下載和設置
-
登錄AppGuard manager 管理平臺,選擇 Applying Security > 下載 > CHAPTER 2. nProtect AppGuard CONFIG 文件下載파 >選擇 CONFIG FILE DOWNLOAD 下載。
-
下載的 Config 文件解壓後得到 AppGuard Config 文件。 AppGuard Config 文件由
appguard,appguard.crt,appguard.mf,appguard106000四個文件構成。 -
- 上面4個文件複製到以下路徑中。
Copy To : Project/Assets/
- 上面4個文件複製到以下路徑中。
AppGuardPostProcessBuild.cs 說明
AppGuardPostProcessBuild.cs使用 Unity Editor提供的 PostProcessBuild 功能,在 Unity生成的 Xcode Project中執行以下功能。
- AppGuard SDK 驅動所需的構建環境文件設置
- AppGuard SDK 驅動所需的環境文件設置
- 在Unity中選擇的,按 Target SDK分類的
AppGuardCore.xcframework鏈接設置 但是, Unity生成的 Xcode Project無法正常識別 xcframewrok 格式。 這被判斷爲Unity本身不支持該部分。
作爲應對方案,Inca Internet通過 AppGuardPostProcessBuild.cs 文件,提供根據Unity選擇的Target SDK鏈接所需framework 。
從AppGuard for iOS SDK v1.8.6 開始 iOS用 SDK的分發方式在現有的單一 framework 方式中支持多重 framework 的 xcframework 格式發佈。
因此, AppGuard for iOS SDK的名稱從 AppGuardCore.framework變更 AppGuardCore.xcframework,
AppGuardCore.xcframework支持 Unity的 Device SDK和 Simulator SDK 構建及執行。
xcframework爲支持蘋果發佈多重平臺,推薦使用framework的格式。
使用AppGuard 1.8.6 以下版本及Xcode 13.3.3 以下版本環境的客戶公司的情況
AppGuardCore.xcframework/ios-arm64_armv7/ AppGuardCore.framework複製到
Project/Assets/Plugins/AppGuardCore.xcframework/ios-arm64/ 文件夾中使用即可以現有方式使用。
使用AppGuard 1.8.6 以上版本及 Xcode 13.3.3 以上版本環境的客戶公司的情況
使用 AppGuardCore.xcframework/ios-arm64/ AppGuardCore.framework 即可與現有方式一樣使用。
一定要確認 AppGuardPostProcessBuild.cs 文件,如果與客戶公司的環境不同, 可能需要修改。
AppGuardUnityManager.cs 說明
配置文件 Assets/ 文件夾的 AppGuardUnityManager.cs是用於服務器認證的 Unity Plugin 示例,
相關 *.cs 文件中存在的類名及method需要保留,
可使用下列method或修改後使用。
Set method
| method | 說明 |
|---|---|
public void setUserId(string userid) | 設置在檢測到違反安全策略時發送到日誌服務器的用戶標識符 (UserID)。 |
public void setUniqueClientId(string uniqueId, long retryTimeSec = 180) | 設置用於服務器認證的會話唯一標識符。 |
Callback method
| 配置文件及文件夾 | 說明 |
|---|---|
public void onViolationCallback(string data) | 作爲接收安全政策違規檢測相關事件Callback的method,當發現違反安全策略時 AppGuard會調用相關method併發送狀態信息。 |
public void onS2AuthTryCallback(string data) | 服務器認證是通過接收服務器認證相關事件Callback的method進行服務器認證後, AppGuard會調用相應的method併發送狀態信息。 |
AppGuardUnityManager.cs提供對於同時附加分發的SDK或Framework的示例代碼的使用方法。
設置 UserID
AppGuardUnityManager.cs 示例中包含的 AppGuard中檢測違反策略時,在log server上同時提供登記註冊User ID的setUserId() method。
如下示例代碼所示,"userID" 部分中實際存在會話的用戶 ID可以用任意 string 形式的數據一起調用。
AppGuardUnityManager.Instance.setUserId("userID");