# 在Unity升级至IAP SDK v21

### 更新Unity用v21 Library文件

{% hint style="info" %}
如果只更换Library文件，IAP SDK v21新提供的多次购买、订阅等功能将无法使用。
{% endhint %}

#### 删除v19 Library文件。 <a href="#id-zai-unity-sheng-ji-zhi-iapsdkv21-shan-chu-v19library-wen-jian" id="id-zai-unity-sheng-ji-zhi-iapsdkv21-shan-chu-v19library-wen-jian"></a>

| **Assets > Plugins > Android** | <p>· iap\_sdk-v19.00.xx.aar<br>· iap\_adapter-v1.x.x.aar</p> |
| ------------------------------ | ------------------------------------------------------------ |
| **Assets > StreamingAssets**   | · global-appstores.json                                      |

#### 从AndroidManifest.xml中删除元素 <a href="#id-zai-unity-sheng-ji-zhi-iapsdkv21-cong-androidmanifest.xml-zhong-shan-chu-yuan-su" id="id-zai-unity-sheng-ji-zhi-iapsdkv21-cong-androidmanifest.xml-zhong-shan-chu-yuan-su"></a>

Assets > Plugins > Android > AndroidManifest.xml

删除ProxyActivity和 iap\_version元数据。

```xml

<manifest>
<application>
        <activity android:name="com.gaa.sdk.iap.ProxyActivity"
android:configChanges="locale|fontScale|keyboard|keyboardHidden|layoutDirection|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

         <meta-data android:name="iap:api_version" android:value="6"/>
...
</application>
</manifest>

```

#### [添加v21 Library文件。](https://github.com/ONE-store/unity_plugins/tree/archive) <a href="#id-zai-unity-sheng-ji-zhi-iapsdkv21-tian-jia-v21library-wen-jian" id="id-zai-unity-sheng-ji-zhi-iapsdkv21-tian-jia-v21library-wen-jian"></a>

将Library文件添加到下面的文件夹。

| **Assets > Plugins > Android** | <p>· sdk-base-v1.0.0.aar<br>· sdk-auth-v1.0.1.aar<br>· sdk-iap-v21.00.00.aar<br>· sdk-configuration-kr-v1.0.0.aar<br>· iap-unity-adapter-v2.0.0.aar</p> |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |

### 为使用IAP SDK v21新功能进行升级

#### 删除v19 ".unitypackage"中添加的文件

| **Assets > Plugins > Android**  | <p>· iap\_sdk-v19.00.xx.aar<br>· iap\_adapter-v1.x.x.aar</p>                                                                                  |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Assets > Scripts > Purchase** | <p>· GaaIapCallManager.cs<br>· GaaIapCallbackManager.cs<br>· GaaIapResultListener.cs<br>· GaaIapPurchaseResponse.cs<br>· AndroidNative.cs</p> |
| **Assets > StreamingAssets**    | · global-appstores.json                                                                                                                       |

#### 从AndroidManifest.xml中删除元素

Assets > Plugins > Android > AndroidManifest.xml\
删除ProxyActivity和iap\_version元数据。

```
<manifest>
    <application>
         <activity android:name="com.gaa.sdk.iap.ProxyActivity"
                  android:configChanges="locale|fontScale|keyboard|keyboardHidden|layoutDirection|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode"
                  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
 
         <meta-data android:name="iap:api_version" android:value="6"/>
        ...
    </application>
</manifest>
```

#### 删除GameObject

删除GaaIapCallbackManager 游戏对象。 应用了 v2的Unity Plugin，无需手动添加 GameObject 。<br>

<figure><img src="https://2757207078-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FG1QmZshNU0saLqpjlDho%2Fuploads%2FDVnQiOkMFma5QPZICNYa%2F7.png?alt=media&#x26;token=1ea6401a-112d-4d2f-beb0-2d018f999038" alt=""><figcaption></figcaption></figure>

\
如果执行了上述所有操作,在应用IAP SDK v21之前已经做好了事前准备。\
现在可以参照 [在Unity使用One store In-App支付](https://onestore-dev.gitbook.io/dev/chi/tools/billing/v21/unity)指南使用即可。
