接入外部sdk

This commit is contained in:
2026-06-05 15:02:47 +08:00
parent 53d578b6eb
commit cb476b3988
864 changed files with 43510 additions and 550 deletions
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
</manifest>
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5eea3d4fa71d3594ebc484be36832997
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 480ab794634c2944d944c5f3ac5cf15e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.firebase.app.unity"
android:versionCode="1"
android:versionName="1.0">
</manifest>
@@ -0,0 +1,2 @@
target=android-9
android.library=true
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@string/gcm_defaultSenderId,@string/google_storage_bucket,@string/project_id,@string/google_api_key,@string/google_crash_reporting_api_key,@string/google_app_id">
<string name="gcm_defaultSenderId" translatable="false">47379855623</string>
<string name="google_storage_bucket" translatable="false">cursed-night-vampire-slots.firebasestorage.app</string>
<string name="project_id" translatable="false">cursed-night-vampire-slots</string>
<string name="google_api_key" translatable="false">AIzaSyDXG6OV3RO0ydU80q8ZiudbIDRc1mh30kY</string>
<string name="google_crash_reporting_api_key" translatable="false">AIzaSyDXG6OV3RO0ydU80q8ZiudbIDRc1mh30kY</string>
<string name="google_app_id" translatable="false">1:47379855623:android:9723758e453cb34ff5eda2</string>
</resources>
@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 49cafa14e5e14ad4399fe1dd0918f35c
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.firebase.crashlytics.unity"
android:versionCode="1"
android:versionName="1.0">
</manifest>
@@ -0,0 +1,2 @@
target=android-9
android.library=true
@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><resources><string name="com.crashlytics.android.build_id" translatable="false">727fe3ed-708f-4699-a198-d58d2e7e6a8b</string></resources>
@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><resources><string name="com.google.firebase.crashlytics.unity_version" translatable="false">2022.3.62f2</string></resources>
@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: bc7ca36701d22f14ab56cac8b3fd7d74
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads">
<uses-sdk android:minSdkVersion="23" />
<uses-permission android:name="android.permission.INTERNET" />
<application>
<uses-library android:required="false" android:name="org.apache.http.legacy" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713" />
<meta-data android:name="com.google.unity.ads.UNITY_VERSION" android:value="2022.3.62f2" />
</application>
</manifest>
@@ -0,0 +1,5 @@
android {
packagingOptions {
pickFirst "META-INF/kotlinx_coroutines_core.version"
}
}
@@ -0,0 +1,2 @@
target=android-31
android.library=true
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="preferExternal">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<application android:extractNativeLibs="true"
android:label="@string/app_name"
android:icon="@mipmap/app_icon"/>
</manifest>
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7409fae52bf1254479ea33489af7c957
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,82 @@
/*
* This file is generated by the FirebaseMessagingActivityGenerator script.
* Refer to that script for more information.
*/
package com.google.firebase;
import android.content.Intent;
import android.os.Bundle;
import com.google.firebase.messaging.MessageForwardingService;
import com.unity3d.player.UnityPlayerActivity;
/**
* MessagingUnityPlayerActivity is a UnityPlayerActivity that updates its intent when new intents
* are sent to it.
*
* This is a workaround for a known issue that prevents Firebase Cloud Messaging from responding to
* data payloads when both a data and notification payload are sent to the app while it is in the
* background.
*/
public class MessagingUnityPlayerActivity extends UnityPlayerActivity {
// The key in the intent's extras that maps to the incoming message's message ID. Only sent by
// the server, GmsCore sends EXTRA_MESSAGE_ID_KEY below. Server can't send that as it would get
// stripped by the client.
private static final String EXTRA_MESSAGE_ID_KEY_SERVER = "message_id";
// An alternate key value in the intent's extras that also maps to the incoming message's message
// ID. Used by upstream, and set by GmsCore.
private static final String EXTRA_MESSAGE_ID_KEY = "google.message_id";
// The key in the intent's extras that maps to the incoming message's sender value.
private static final String EXTRA_FROM = "google.message_id";
/**
* Workaround for when a message is sent containing both a Data and Notification payload.
*
* <p>When the app is in the background, if a message with both a data and notification payload is
* received the data payload is stored on the Intent passed to onNewIntent. By default, that
* intent does not get set as the Intent that started the app, so when the app comes back online
* it doesn't see a new FCM message to respond to. As a workaround, we override onNewIntent so
* that it sends the intent to the MessageForwardingService which forwards the message to the
* FirebaseMessagingService which in turn sends the message to the application.
*/
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// If we do not have a 'from' field this intent was not a message and should not be handled. It
// probably means this intent was fired by tapping on the app icon.
Bundle extras = intent.getExtras();
if (extras == null) {
return;
}
String from = extras.getString(EXTRA_FROM);
String messageId = extras.getString(EXTRA_MESSAGE_ID_KEY);
if (messageId == null) {
messageId = extras.getString(EXTRA_MESSAGE_ID_KEY_SERVER);
}
if (from != null && messageId != null) {
Intent message = new Intent(this, MessageForwardingService.class);
message.setAction(MessageForwardingService.ACTION_REMOTE_INTENT);
message.putExtras(intent);
message.setData(intent.getData());
MessageForwardingService.enqueueWork(this, message);
}
setIntent(intent);
}
/**
* Dispose of the mUnityPlayer when restarting the app.
*
* <p>This ensures that when the app starts up again it does not start with stale data.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
if (mUnityPlayer != null) {
mUnityPlayer.quit();
mUnityPlayer = null;
}
super.onCreate(savedInstanceState);
}
}
@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 2bfe1e2f6ccf50649b6b50becea1293f
labels:
- FirebaseMessagingActivityGenerated
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 59b3f9343bdac42318926c7944365bb9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ea6387b3379b4458498b339bcd316c7c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 70fc6af576ac24f6aa283eecbf393621
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: c318684db3e949ee938fbe37ab78acbb
labels:
- gvh
- gvh_version-10.6.0
- gvhp_exportpath-Plugins/Android/googlemobileads-unity.aar
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 1
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 1
settings:
CPU: x86
Linux64:
enabled: 1
settings:
CPU: x86_64
LinuxUniversal:
enabled: 1
settings:
CPU: AnyCPU
OSXIntel:
enabled: 1
settings:
CPU: x86
OSXIntel64:
enabled: 1
settings:
CPU: x86_64
OSXUniversal:
enabled: 1
settings:
CPU: AnyCPU
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 1
settings:
CPU: x86
Win64:
enabled: 1
settings:
CPU: x86_64
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,12 @@
org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
org.gradle.parallel=true
unityStreamingAssets=**STREAMING_ASSETS**
# Android Resolver Properties Start
android.useAndroidX=true
android.enableJetifier=true
# Android Resolver Properties End
**ADDITIONAL_PROPERTIES**
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
android.enableLint=false
android.lint.disableLintTasks=true
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 40825427c859b6746a5509597a58a1f2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,64 @@
apply plugin: 'com.android.application'
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
implementation project(':unityLibrary')
}
android {
namespace "**NAMESPACE**"
ndkPath "**NDKPATH**"
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
applicationId '**APPLICATIONID**'
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
multiDexEnabled true // 添加
}
aaptOptions {
noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~"
}**SIGN**
lintOptions {
abortOnError false
}
buildTypes {
debug {
minifyEnabled **MINIFY_DEBUG**
proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
jniDebuggable true
}
release {
minifyEnabled **MINIFY_RELEASE**
proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
}
}**PACKAGING_OPTIONS****PLAY_ASSET_PACKS****SPLITS**
**BUILT_APK_LOCATION**
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = true
}
}
}**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP**
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9e912912ee5108e4992059f4898a1c5d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+119
View File
@@ -0,0 +1,119 @@
apply plugin: 'com.android.library'
**APPLY_PLUGINS**
configurations.all {
resolutionStrategy {
force "androidx.core:core-ktx:1.9.0"
force "androidx.lifecycle:lifecycle-common:2.6.2"
force "androidx.lifecycle:lifecycle-runtime:2.6.2"
force "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"
force "androidx.lifecycle:lifecycle-process:2.6.2"
force "androidx.compose.ui:ui:1.5.4"
force "androidx.compose.ui:ui-graphics:1.5.4"
force "androidx.compose.animation:animation-core:1.5.4"
force "androidx.activity:activity:1.7.2"
force "androidx.activity:activity-compose:1.7.2"
force "androidx.annotation:annotation-experimental:1.3.1"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
implementation 'androidx.annotation:annotation:1.2.0' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:7
implementation 'androidx.appcompat:appcompat:1.2.0' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:5
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:12
implementation 'androidx.lifecycle:lifecycle-process:2.6.2' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:17
implementation 'androidx.media3:media3-exoplayer:1.0.0-alpha01' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:4
implementation 'androidx.recyclerview:recyclerview:1.2.1' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:9
implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:7
implementation 'com.android.support:customtabs:28.+' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:7
implementation 'com.android.support:recyclerview-v7:28.+' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:6
implementation 'com.applovin.mediation:bidmachine-adapter:3.6.1.0' // Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:bigoads-adapter:5.8.2.0' // Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:bytedance-adapter:7.9.1.3.0' // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:chartboost-adapter:9.11.1.0' // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:facebook-adapter:[6.11.0.0]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:fyber-adapter:8.4.4.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:google-adapter:[25.2.0.0]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5
implementation 'com.applovin.mediation:google-ad-manager-adapter:[25.2.0.0]' // Assets/MaxSdk/Mediation/GoogleAdManager/Editor/Dependencies.xml:5
implementation 'com.applovin.mediation:inmobi-adapter:11.2.0.0' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:ironsource-adapter:9.4.0.0.0' // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:mintegral-adapter:17.1.51.0' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
implementation 'com.applovin.mediation:moloco-adapter:4.8.0.0' // Assets/MaxSdk/Mediation/Moloco/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:unityads-adapter:4.17.0.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4
implementation 'com.applovin.mediation:vungle-adapter:7.7.3.0' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4
implementation 'com.applovin:applovin-sdk:13.6.2' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4
implementation 'com.appsflyer:af-android-sdk:6.17.6' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:5
implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:8
implementation 'com.appsflyer:unity-wrapper:6.17.91' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:6
implementation 'com.bigossp:bigo-ads:5.3.0' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml:11
implementation 'com.google.android.gms:play-services-ads:24.5.0' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:9
// implementation 'com.google.android.gms:play-services-base:16.1.0' // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:9
implementation 'com.google.android.gms:play-services-base:18.6.0' // Assets/Firebase/Editor/AppDependencies.xml:17
implementation 'com.google.android.material:material:1.2.1' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:6
implementation 'com.google.android.ump:user-messaging-platform:3.2.0' // Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7
implementation 'com.google.firebase:firebase-analytics:22.4.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15
implementation 'com.google.firebase:firebase-analytics-unity:12.8.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
implementation 'com.google.firebase:firebase-app-unity:12.8.0' // Assets/Firebase/Editor/AppDependencies.xml:22
implementation 'com.google.firebase:firebase-common:21.0.0' // Assets/Firebase/Editor/AppDependencies.xml:13
implementation 'com.google.firebase:firebase-crashlytics-ndk:19.4.2' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:13
implementation 'com.google.firebase:firebase-crashlytics-unity:12.8.0' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:20
implementation 'com.google.firebase:firebase-iid:21.1.0' // Assets/Firebase/Editor/MessagingDependencies.xml:17
implementation 'com.google.firebase:firebase-messaging:24.1.1' // Assets/Firebase/Editor/MessagingDependencies.xml:13
implementation 'com.google.firebase:firebase-messaging-unity:12.8.0' // Assets/Firebase/Editor/MessagingDependencies.xml:24
implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' // Assets/Firebase/Editor/MessagingDependencies.xml:19
implementation 'com.squareup.picasso:picasso:2.71828' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:5
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10' // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:8
// Android Resolver Dependencies End
**DEPS**}
// Android Resolver Exclusions Start
android {
packagingOptions {
exclude ('/lib/armeabi/*' + '*')
exclude ('/lib/mips/*' + '*')
exclude ('/lib/mips64/*' + '*')
exclude ('/lib/x86/*' + '*')
exclude ('/lib/x86_64/*' + '*')
}
}
// Android Resolver Exclusions End
android {
namespace "com.unity3d.player"
ndkPath "**NDKPATH**"
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
aaptOptions {
noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~"
}**PACKAGING_OPTIONS**
}
**IL_CPP_BUILD_SETUP**
**SOURCE_BUILD_SETUP**
**EXTERNAL_SOURCES**
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ce27eea5dc4d2994090175237f56e154
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,48 @@
pluginManagement {
repositories {
**ARTIFACTORYREPOSITORY**
gradlePluginPortal()
google()
mavenCentral()
}
}
include ':launcher', ':unityLibrary'
**INCLUDES**
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
**ARTIFACTORYREPOSITORY**
google()
mavenCentral()
// Android Resolver Repos Start
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven {
url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/CrashlyticsDependencies.xml:20, Assets/Firebase/Editor/MessagingDependencies.xml:24
}
maven {
url "https://maven.aliyun.com/repository/google" // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7, Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:12, Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:17, Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7
}
maven {
url "https://repo1.maven.org/maven2/" // Assets/H1PQxZETMtqhSoMBSDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml:11
}
maven {
url "https://artifactory.bidmachine.io/bidmachine" // Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml:8
}
maven {
url "https://artifact.bytedance.com/repository/pangle" // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
}
maven {
url "https://cboost.jfrog.io/artifactory/chartboost-ads/" // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:8
}
maven {
url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
}
mavenLocal()
// Android Resolver Repos End
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a08fd354071782f4fb8aa5efd09c9867
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5415c2bc4488c42739b36767bc7f8c83
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,539 @@
#if UNITY_EDITOR
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Text;
using System.Xml;
using System;
using UnityEditor.Android;
#if UNITY_2018_1_OR_NEWER
using UnityEditor.Build;
#endif
using UnityEditor.Callbacks;
using UnityEditor;
using UnityEngine;
#if UNITY_2018_1_OR_NEWER
public class UnityWebViewPostprocessBuild : IPreprocessBuild, IPostGenerateGradleAndroidProject
#else
public class UnityWebViewPostprocessBuild
#endif
{
private static bool nofragment = false;
//// for android/unity 2018.1 or newer
//// cf. https://forum.unity.com/threads/android-hardwareaccelerated-is-forced-false-in-all-activities.532786/
//// cf. https://github.com/Over17/UnityAndroidManifestCallback
#if UNITY_2018_1_OR_NEWER
public void OnPreprocessBuild(BuildTarget buildTarget, string path) {
if (buildTarget == BuildTarget.Android) {
var dev = "Packages/net.gree.unity-webview/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl";
var rel = "Packages/net.gree.unity-webview/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl";
if (!File.Exists(dev) || !File.Exists(rel)) {
dev = "Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl";
rel = "Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl";
}
var src = (EditorUserBuildSettings.development) ? dev : rel;
//Directory.CreateDirectory("Temp/StagingArea/aar");
//File.Copy(src, "Temp/StagingArea/aar/WebViewPlugin.aar", true);
Directory.CreateDirectory("Assets/Plugins/Android");
File.Copy(src, "Assets/Plugins/Android/WebViewPlugin.aar", true);
}
}
public void OnPostGenerateGradleAndroidProject(string basePath) {
var changed = false;
var androidManifest = new AndroidManifest(GetManifestPath(basePath));
if (!nofragment) {
changed = (androidManifest.AddFileProvider(basePath) || changed);
{
var path = GetBuildGradlePath(basePath);
var lines0 = File.ReadAllText(path).Replace("\r\n", "\n").Replace("\r", "\n").Split(new[]{'\n'});
{
var lines = new List<string>();
var independencies = false;
foreach (var line in lines0) {
if (line == "dependencies {") {
independencies = true;
} else if (independencies && line == "}") {
independencies = false;
lines.Add(" implementation 'androidx.core:core:1.6.0'");
} else if (independencies) {
if (line.Contains("implementation(name: 'core")
|| line.Contains("implementation(name: 'androidx.core.core")
|| line.Contains("implementation 'androidx.core:core")) {
break;
}
}
lines.Add(line);
}
if (lines.Count > lines0.Length) {
File.WriteAllText(path, string.Join("\n", lines) + "\n");
}
}
}
{
var path = GetGradlePropertiesPath(basePath);
var lines0 = "";
var lines = "";
if (File.Exists(path)) {
lines0 = File.ReadAllText(path).Replace("\r\n", "\n").Replace("\r", "\n") + "\n";
lines = lines0;
}
if (!lines.Contains("android.useAndroidX=true")) {
lines += "android.useAndroidX=true\n";
}
if (!lines.Contains("android.enableJetifier=true")) {
lines += "android.enableJetifier=true\n";
}
if (lines != lines0) {
File.WriteAllText(path, lines);
}
}
}
changed = (androidManifest.SetExported(true) || changed);
changed = (androidManifest.SetWindowSoftInputMode("adjustPan") || changed);
changed = (androidManifest.SetHardwareAccelerated(true) || changed);
#if UNITYWEBVIEW_ANDROID_USES_CLEARTEXT_TRAFFIC
changed = (androidManifest.SetUsesCleartextTraffic(true) || changed);
#endif
#if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA
changed = (androidManifest.AddCamera() || changed);
changed = (androidManifest.AddGallery() || changed);
#endif
#if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE
changed = (androidManifest.AddMicrophone() || changed);
#endif
if (changed) {
androidManifest.Save();
Debug.Log("unitywebview: adjusted AndroidManifest.xml.");
}
}
#endif
public int callbackOrder {
get {
return 1;
}
}
private string GetManifestPath(string basePath) {
var pathBuilder = new StringBuilder(basePath);
pathBuilder.Append(Path.DirectorySeparatorChar).Append("src");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("main");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("AndroidManifest.xml");
return pathBuilder.ToString();
}
private string GetBuildGradlePath(string basePath) {
var pathBuilder = new StringBuilder(basePath);
pathBuilder.Append(Path.DirectorySeparatorChar).Append("build.gradle");
return pathBuilder.ToString();
}
private string GetGradlePropertiesPath(string basePath) {
var pathBuilder = new StringBuilder(basePath);
if (basePath.EndsWith("unityLibrary")) {
pathBuilder.Append(Path.DirectorySeparatorChar).Append("..");
}
pathBuilder.Append(Path.DirectorySeparatorChar).Append("gradle.properties");
return pathBuilder.ToString();
}
//// for others
[PostProcessBuild(100)]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path) {
#if UNITY_2018_1_OR_NEWER
try {
File.Delete("Assets/Plugins/Android/WebViewPlugin.aar");
File.Delete("Assets/Plugins/Android/WebViewPlugin.aar.meta");
Directory.Delete("Assets/Plugins/Android");
File.Delete("Assets/Plugins/Android.meta");
Directory.Delete("Assets/Plugins");
File.Delete("Assets/Plugins.meta");
} catch (Exception) {
}
#else
if (buildTarget == BuildTarget.Android) {
string manifest = Path.Combine(Application.dataPath, "Plugins/Android/AndroidManifest.xml");
if (!File.Exists(manifest)) {
string manifest0 = Path.Combine(Application.dataPath, "../Temp/StagingArea/AndroidManifest-main.xml");
if (!File.Exists(manifest0)) {
Debug.LogError("unitywebview: cannot find both Assets/Plugins/Android/AndroidManifest.xml and Temp/StagingArea/AndroidManifest-main.xml. please build the app to generate Assets/Plugins/Android/AndroidManifest.xml and then rebuild it again.");
return;
} else {
File.Copy(manifest0, manifest, true);
}
}
var changed = false;
if (EditorUserBuildSettings.development) {
if (!File.Exists("Assets/Plugins/Android/WebView.aar")
|| !File.ReadAllBytes("Assets/Plugins/Android/WebView.aar").SequenceEqual(File.ReadAllBytes("Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl"))) {
File.Copy("Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl", "Assets/Plugins/Android/WebView.aar", true);
changed = true;
}
} else {
if (!File.Exists("Assets/Plugins/Android/WebView.aar")
|| !File.ReadAllBytes("Assets/Plugins/Android/WebView.aar").SequenceEqual(File.ReadAllBytes("Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl"))) {
File.Copy("Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl", "Assets/Plugins/Android/WebView.aar", true);
changed = true;
}
}
var androidManifest = new AndroidManifest(manifest);
if (!nofragment) {
changed = (androidManifest.AddFileProvider("Assets/Plugins/Android") || changed);
var files = Directory.GetFiles("Assets/Plugins/Android/");
var found = false;
foreach (var file in files) {
if (Regex.IsMatch(file, @"^Assets/Plugins/Android/(androidx\.core\.)?core-.*.aar$")) {
found = true;
break;
}
}
if (!found) {
foreach (var file in files) {
var match = Regex.Match(file, @"^Assets/Plugins/Android/(core.*.aar).tmpl$");
if (match.Success) {
var name = match.Groups[1].Value;
File.Copy(file, "Assets/Plugins/Android/" + name, true);
break;
}
}
}
}
changed = (androidManifest.SetWindowSoftInputMode("adjustPan") || changed);
changed = (androidManifest.SetHardwareAccelerated(true) || changed);
#if UNITYWEBVIEW_ANDROID_USES_CLEARTEXT_TRAFFIC
changed = (androidManifest.SetUsesCleartextTraffic(true) || changed);
#endif
#if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA
changed = (androidManifest.AddCamera() || changed);
changed = (androidManifest.AddGallery() || changed);
#endif
#if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE
changed = (androidManifest.AddMicrophone() || changed);
#endif
#if UNITY_5_6_0 || UNITY_5_6_1
changed = (androidManifest.SetActivityName("net.gree.unitywebview.CUnityPlayerActivity") || changed);
#endif
if (changed) {
androidManifest.Save();
Debug.LogError("unitywebview: adjusted AndroidManifest.xml and/or WebView.aar. Please rebuild the app.");
}
}
#endif
if (buildTarget == BuildTarget.iOS) {
string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
var type = Type.GetType("UnityEditor.iOS.Xcode.PBXProject, UnityEditor.iOS.Extensions.Xcode");
if (type == null)
{
Debug.LogError("unitywebview: failed to get PBXProject. please install iOS build support.");
return;
}
var src = File.ReadAllText(projPath);
//dynamic proj = type.GetConstructor(Type.EmptyTypes).Invoke(null);
var proj = type.GetConstructor(Type.EmptyTypes).Invoke(null);
//proj.ReadFromString(src);
{
var method = type.GetMethod("ReadFromString");
method.Invoke(proj, new object[]{src});
}
var target = "";
#if UNITY_2019_3_OR_NEWER
//target = proj.GetUnityFrameworkTargetGuid();
{
var method = type.GetMethod("GetUnityFrameworkTargetGuid");
target = (string)method.Invoke(proj, null);
}
#else
//target = proj.TargetGuidByName("Unity-iPhone");
{
var method = type.GetMethod("TargetGuidByName");
target = (string)method.Invoke(proj, new object[]{"Unity-iPhone"});
}
#endif
//proj.AddFrameworkToProject(target, "WebKit.framework", false);
{
var method = type.GetMethod("AddFrameworkToProject");
method.Invoke(proj, new object[]{target, "WebKit.framework", false});
}
var cflags = "";
if (EditorUserBuildSettings.development) {
cflags += " -DUNITYWEBVIEW_DEVELOPMENT";
}
#if UNITYWEBVIEW_IOS_ALLOW_FILE_URLS
cflags += " -DUNITYWEBVIEW_IOS_ALLOW_FILE_URLS";
#endif
cflags = cflags.Trim();
if (!string.IsNullOrEmpty(cflags)) {
// proj.AddBuildProperty(target, "OTHER_LDFLAGS", cflags);
var method = type.GetMethod("AddBuildProperty", new Type[]{typeof(string), typeof(string), typeof(string)});
method.Invoke(proj, new object[]{target, "OTHER_CFLAGS", cflags});
}
var dst = "";
//dst = proj.WriteToString();
{
var method = type.GetMethod("WriteToString");
dst = (string)method.Invoke(proj, null);
}
File.WriteAllText(projPath, dst);
}
}
}
internal class AndroidXmlDocument : XmlDocument {
private string m_Path;
protected XmlNamespaceManager nsMgr;
public readonly string AndroidXmlNamespace = "http://schemas.android.com/apk/res/android";
public AndroidXmlDocument(string path) {
m_Path = path;
using (var reader = new XmlTextReader(m_Path)) {
reader.Read();
Load(reader);
}
nsMgr = new XmlNamespaceManager(NameTable);
nsMgr.AddNamespace("android", AndroidXmlNamespace);
}
public string Save() {
return SaveAs(m_Path);
}
public string SaveAs(string path) {
using (var writer = new XmlTextWriter(path, new UTF8Encoding(false))) {
writer.Formatting = Formatting.Indented;
Save(writer);
}
return path;
}
}
internal class AndroidManifest : AndroidXmlDocument {
private readonly XmlElement ManifestElement;
private readonly XmlElement ApplicationElement;
public AndroidManifest(string path) : base(path) {
ManifestElement = SelectSingleNode("/manifest") as XmlElement;
ApplicationElement = SelectSingleNode("/manifest/application") as XmlElement;
}
private XmlAttribute CreateAndroidAttribute(string key, string value) {
XmlAttribute attr = CreateAttribute("android", key, AndroidXmlNamespace);
attr.Value = value;
return attr;
}
internal XmlNode GetActivityWithLaunchIntent() {
return
SelectSingleNode(
"/manifest/application/activity[intent-filter/action/@android:name='android.intent.action.MAIN' and "
+ "intent-filter/category/@android:name='android.intent.category.LAUNCHER']",
nsMgr);
}
internal bool SetUsesCleartextTraffic(bool enabled) {
// android:usesCleartextTraffic
bool changed = false;
if (ApplicationElement.GetAttribute("usesCleartextTraffic", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) {
ApplicationElement.SetAttribute("usesCleartextTraffic", AndroidXmlNamespace, (enabled) ? "true" : "false");
changed = true;
}
return changed;
}
// for api level 33
internal bool SetExported(bool enabled) {
bool changed = false;
var activity = GetActivityWithLaunchIntent() as XmlElement;
if (activity.GetAttribute("exported", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) {
activity.SetAttribute("exported", AndroidXmlNamespace, (enabled) ? "true" : "false");
changed = true;
}
return changed;
}
internal bool SetWindowSoftInputMode(string mode) {
bool changed = false;
var activity = GetActivityWithLaunchIntent() as XmlElement;
if (activity.GetAttribute("windowSoftInputMode", AndroidXmlNamespace) != mode) {
activity.SetAttribute("windowSoftInputMode", AndroidXmlNamespace, mode);
changed = true;
}
return changed;
}
internal bool SetHardwareAccelerated(bool enabled) {
bool changed = false;
var activity = GetActivityWithLaunchIntent() as XmlElement;
if (activity.GetAttribute("hardwareAccelerated", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) {
activity.SetAttribute("hardwareAccelerated", AndroidXmlNamespace, (enabled) ? "true" : "false");
changed = true;
}
return changed;
}
internal bool SetActivityName(string name) {
bool changed = false;
var activity = GetActivityWithLaunchIntent() as XmlElement;
if (activity.GetAttribute("name", AndroidXmlNamespace) != name) {
activity.SetAttribute("name", AndroidXmlNamespace, name);
changed = true;
}
return changed;
}
internal bool AddFileProvider(string basePath) {
bool changed = false;
var authorities = PlayerSettings.applicationIdentifier + ".unitywebview.fileprovider";
if (SelectNodes("/manifest/application/provider[@android:authorities='" + authorities + "']", nsMgr).Count == 0) {
var elem = CreateElement("provider");
elem.Attributes.Append(CreateAndroidAttribute("name", "androidx.core.content.FileProvider"));
elem.Attributes.Append(CreateAndroidAttribute("authorities", authorities));
elem.Attributes.Append(CreateAndroidAttribute("exported", "false"));
elem.Attributes.Append(CreateAndroidAttribute("grantUriPermissions", "true"));
var meta = CreateElement("meta-data");
meta.Attributes.Append(CreateAndroidAttribute("name", "android.support.FILE_PROVIDER_PATHS"));
meta.Attributes.Append(CreateAndroidAttribute("resource", "@xml/unitywebview_file_provider_paths"));
elem.AppendChild(meta);
ApplicationElement.AppendChild(elem);
changed = true;
var xml = GetFileProviderSettingPath(basePath);
if (!File.Exists(xml)) {
Directory.CreateDirectory(Path.GetDirectoryName(xml));
File.WriteAllText(
xml,
"<paths xmlns:android=\"http://schemas.android.com/apk/res/android\">\n" +
" <external-path name=\"unitywebview_file_provider_images\" path=\".\"/>\n" +
"</paths>\n");
}
}
return changed;
}
private string GetFileProviderSettingPath(string basePath) {
var pathBuilder = new StringBuilder(basePath);
pathBuilder.Append(Path.DirectorySeparatorChar).Append("src");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("main");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("res");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("xml");
pathBuilder.Append(Path.DirectorySeparatorChar).Append("unitywebview_file_provider_paths.xml");
return pathBuilder.ToString();
}
internal bool AddCamera() {
bool changed = false;
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.CAMERA']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.CAMERA"));
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/uses-feature[@android:name='android.hardware.camera']", nsMgr).Count == 0) {
var elem = CreateElement("uses-feature");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.hardware.camera"));
ManifestElement.AppendChild(elem);
changed = true;
}
// cf. https://developer.android.com/training/data-storage/shared/media#media-location-permission
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.ACCESS_MEDIA_LOCATION']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.ACCESS_MEDIA_LOCATION"));
ManifestElement.AppendChild(elem);
changed = true;
}
// cf. https://developer.android.com/training/package-visibility/declaring
if (SelectNodes("/manifest/queries", nsMgr).Count == 0) {
var elem = CreateElement("queries");
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/queries/intent/action[@android:name='android.media.action.IMAGE_CAPTURE']", nsMgr).Count == 0) {
var action = CreateElement("action");
action.Attributes.Append(CreateAndroidAttribute("name", "android.media.action.IMAGE_CAPTURE"));
var intent = CreateElement("intent");
intent.AppendChild(action);
var queries = SelectSingleNode("/manifest/queries") as XmlElement;
queries.AppendChild(intent);
changed = true;
}
return changed;
}
internal bool AddGallery() {
bool changed = false;
// for api level 33
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_IMAGES']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_IMAGES"));
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_VIDEO']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_VIDEO"));
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_AUDIO']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_AUDIO"));
ManifestElement.AppendChild(elem);
changed = true;
}
// cf. https://developer.android.com/training/package-visibility/declaring
if (SelectNodes("/manifest/queries", nsMgr).Count == 0) {
var elem = CreateElement("queries");
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/queries/intent/action[@android:name='android.media.action.GET_CONTENT']", nsMgr).Count == 0) {
var action = CreateElement("action");
action.Attributes.Append(CreateAndroidAttribute("name", "android.media.action.GET_CONTENT"));
var intent = CreateElement("intent");
intent.AppendChild(action);
var queries = SelectSingleNode("/manifest/queries") as XmlElement;
queries.AppendChild(intent);
changed = true;
}
return changed;
}
internal bool AddMicrophone() {
bool changed = false;
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.MICROPHONE']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.MICROPHONE"));
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/uses-feature[@android:name='android.hardware.microphone']", nsMgr).Count == 0) {
var elem = CreateElement("uses-feature");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.hardware.microphone"));
ManifestElement.AppendChild(elem);
changed = true;
}
// cf. https://github.com/gree/unity-webview/issues/679
// cf. https://github.com/fluttercommunity/flutter_webview_plugin/issues/138#issuecomment-559307558
// cf. https://stackoverflow.com/questions/38917751/webview-webrtc-not-working/68024032#68024032
// cf. https://stackoverflow.com/questions/40236925/allowing-microphone-accesspermission-in-webview-android-studio-java/47410311#47410311
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.MODIFY_AUDIO_SETTINGS']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.MODIFY_AUDIO_SETTINGS"));
ManifestElement.AppendChild(elem);
changed = true;
}
if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.RECORD_AUDIO']", nsMgr).Count == 0) {
var elem = CreateElement("uses-permission");
elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.RECORD_AUDIO"));
ManifestElement.AppendChild(elem);
changed = true;
}
return changed;
}
}
#endif
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0b2f5f306eb6e4afcbc074e6efccc188
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,61 @@
#import <AdSupport/ASIdentifierManager.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h> // iOS 14及以上需要
#import <UIKit/UIKit.h>
extern "C" {
// 获取IDFA的函数
const char* _GetIDFA() {
// 检查iOS版本
if (@available(iOS 14, *)) {
// 检查当前追踪授权状态。注意:实际请求权限的弹窗应在合适时机主动调用,这里仅获取当前状态下的IDFA。
ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];
if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
// 用户已授权
NSString *idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
return strdup([idfaString UTF8String]);
} else {
// 用户未授权、拒绝或受限
NSLog(@"用户未授权广告追踪。状态: %ld", (long)status);
return strdup("");
}
} else {
// Fallback on earlier versions - iOS 14以下版本
if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
NSString *idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
return strdup([idfaString UTF8String]);
} else {
NSLog(@"用户限制了广告追踪。");
return strdup("");
}
}
}
// 请求追踪权限的函数 (应在C#端选择合适的时机调用,例如用户点击同意隐私协议后)
void _RequestTrackingPermission() {
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// 此回调在用户做出选择后执行
NSString *idfaString = @"";
if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
// 可以使用UnitySendMessage将结果异步回传给Unity
// UnitySendMessage("GameObjectName", "MethodName", [idfaString UTF8String]);
}];
} else {
// iOS 13或更低版本,无需请求权限,直接检查isAdvertisingTrackingEnabled
// 这里可以不做处理,或者也通过UnitySendMessage通知Unity
}
}
// 获取IDFV的函数
const char* _GetIDFV() {
NSString *idfvString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
if (idfvString) {
return strdup([idfvString UTF8String]);
} else {
return strdup("");
}
}
}
@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 6ca1a33377b43c4448729e3052dbb58a
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f6d1cb4664beff64595976ffb1f68ca0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: bf523cc64d194963aa7661e7d2944feb
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppAnalytics.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 601e8e1d2d2744929ede33676cbeccc0
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppApp.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: c9a5f5c47ed44459ae2c09b918d44344
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 33ee8d6580a8412d811e9c6eab8c2cb9
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppMessaging.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
+10
View File
@@ -0,0 +1,10 @@
// Copyright 2016 Google Inc. All Rights Reserved.
#import <GoogleMobileAds/GoogleMobileAds.h>
@protocol GADUAdNetworkExtras <NSObject>
- (nonnull id<GADAdNetworkExtras>)adNetworkExtrasWithDictionary:
(nonnull NSDictionary<NSString *, NSString *> *)extras;
@end
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 1c0d8a6c9b36440eaa4c01518670217f
labels:
- gvh
- gvh_version-10.6.0
- gvhp_exportpath-Plugins/iOS/GADUAdNetworkExtras.h
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 1
settings:
CPU: x86
Linux64:
enabled: 1
settings:
CPU: x86_64
LinuxUniversal:
enabled: 1
settings:
CPU: AnyCPU
OSXIntel:
enabled: 1
settings:
CPU: x86
OSXIntel64:
enabled: 1
settings:
CPU: x86_64
OSXUniversal:
enabled: 1
settings:
CPU: AnyCPU
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 1
settings:
CPU: x86
Win64:
enabled: 1
settings:
CPU: x86_64
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>AIzaSyC6MqaRopKFk6cMLg5ROvn6LIACWVVwJK8</string>
<key>GCM_SENDER_ID</key>
<string>958040121336</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.zoo.ZooMatchSolo</string>
<key>PROJECT_ID</key>
<string>merge-gang-rush</string>
<key>STORAGE_BUCKET</key>
<string>merge-gang-rush.firebasestorage.app</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:958040121336:ios:6bdaf68ceb37ee296d800d</string>
</dict>
</plist>
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 351f62a01922bce4b9553b33fe613c94
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 28c983f67bd71da4bbd4883eda7f2855
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GADTMediumTemplateView"/>
<view opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h2X-7h-r2O" customClass="GADTTemplateView">
<rect key="frame" x="0.0" y="0.0" width="355" height="402"/>
<subviews>
<view opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qZf-ej-Zxg">
<rect key="frame" x="10" y="199.66666666666663" width="335" height="202.33333333333337"/>
<subviews>
<button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ekc-Zs-FHH">
<rect key="frame" x="0.0" y="153.33333333333334" width="335" height="39"/>
<color key="backgroundColor" red="0.25882352939999997" green="0.52156862749999999" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="39" id="y8W-B6-JKk"/>
</constraints>
<state key="normal" title="Button">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JRU-6T-XIW">
<rect key="frame" x="0.0" y="0.0" width="335" height="51"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dtV-H5-CUV">
<rect key="frame" x="0.0" y="0.0" width="335" height="51"/>
<subviews>
<view contentMode="scaleToFill" horizontalCompressionResistancePriority="1" verticalCompressionResistancePriority="1" translatesAutoresizingMaskIntoConstraints="NO" id="IDQ-dK-aNl">
<rect key="frame" x="0.0" y="0.0" width="51" height="51"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1" verticalCompressionResistancePriority="1" translatesAutoresizingMaskIntoConstraints="NO" id="tcZ-gP-ynt">
<rect key="frame" x="0.0" y="0.0" width="51" height="51"/>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="tcZ-gP-ynt" firstAttribute="leading" secondItem="IDQ-dK-aNl" secondAttribute="leading" id="080-xf-xNS"/>
<constraint firstItem="tcZ-gP-ynt" firstAttribute="top" secondItem="IDQ-dK-aNl" secondAttribute="top" id="7ay-A1-lkK"/>
<constraint firstAttribute="trailing" secondItem="tcZ-gP-ynt" secondAttribute="trailing" id="D58-gg-wEz"/>
<constraint firstAttribute="width" secondItem="IDQ-dK-aNl" secondAttribute="height" multiplier="1:1" id="fy0-5g-4fT"/>
<constraint firstAttribute="bottom" secondItem="tcZ-gP-ynt" secondAttribute="bottom" id="mcB-Kl-8SB"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZMg-Gj-lfR">
<rect key="frame" x="51" y="0.0" width="284" height="51"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ad" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-cd-zxs">
<rect key="frame" x="10" y="30" width="28" height="21"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="5e5-3M-FF3"/>
<constraint firstAttribute="width" constant="28" id="L2a-Ko-fWP"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.2274509804" green="0.4039215686" blue="0.15686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NKU-cb-NgA">
<rect key="frame" x="10" y="0.0" width="266" height="25"/>
<constraints>
<constraint firstAttribute="height" constant="25" id="iVB-Nr-QJm"/>
</constraints>
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ic2-4I-EtF">
<rect key="frame" x="43" y="30" width="241" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nc5-4a-DC8">
<rect key="frame" x="43" y="29" width="241" height="20.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="PfZ-cd-zxs" firstAttribute="top" secondItem="NKU-cb-NgA" secondAttribute="bottom" constant="5" id="8CL-eR-AJN"/>
<constraint firstAttribute="trailing" secondItem="ic2-4I-EtF" secondAttribute="trailing" id="9Ig-ff-Xy9"/>
<constraint firstItem="ic2-4I-EtF" firstAttribute="leading" secondItem="PfZ-cd-zxs" secondAttribute="trailing" constant="5" id="BvN-q8-2tx"/>
<constraint firstItem="NKU-cb-NgA" firstAttribute="leading" secondItem="ZMg-Gj-lfR" secondAttribute="leading" constant="10" id="R0a-Yh-5hA"/>
<constraint firstAttribute="bottom" secondItem="ic2-4I-EtF" secondAttribute="bottom" id="RsF-hZ-dlg"/>
<constraint firstAttribute="trailing" secondItem="NKU-cb-NgA" secondAttribute="trailing" constant="8" id="Rur-KX-Eao"/>
<constraint firstItem="Nc5-4a-DC8" firstAttribute="top" secondItem="NKU-cb-NgA" secondAttribute="bottom" constant="4" id="Vd7-ge-1KD"/>
<constraint firstItem="PfZ-cd-zxs" firstAttribute="leading" secondItem="ZMg-Gj-lfR" secondAttribute="leading" constant="10" id="XOm-ic-qzo"/>
<constraint firstItem="NKU-cb-NgA" firstAttribute="top" secondItem="ZMg-Gj-lfR" secondAttribute="top" id="XXu-i3-Bb8"/>
<constraint firstAttribute="trailing" secondItem="Nc5-4a-DC8" secondAttribute="trailing" id="fr4-RB-zCl"/>
<constraint firstItem="ic2-4I-EtF" firstAttribute="leading" secondItem="PfZ-cd-zxs" secondAttribute="trailing" constant="5" id="hI7-l2-cCQ"/>
<constraint firstAttribute="bottom" secondItem="PfZ-cd-zxs" secondAttribute="bottom" id="s9K-uZ-2fK"/>
<constraint firstItem="Nc5-4a-DC8" firstAttribute="leading" secondItem="PfZ-cd-zxs" secondAttribute="trailing" constant="5" id="uDG-1E-LGP"/>
<constraint firstItem="ic2-4I-EtF" firstAttribute="top" secondItem="NKU-cb-NgA" secondAttribute="bottom" constant="5" id="zDa-Y8-eNv"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="IDQ-dK-aNl" secondAttribute="bottom" id="Pz3-Ne-UvS"/>
<constraint firstItem="IDQ-dK-aNl" firstAttribute="top" secondItem="dtV-H5-CUV" secondAttribute="top" id="Um4-Pc-PRn"/>
<constraint firstItem="IDQ-dK-aNl" firstAttribute="leading" secondItem="dtV-H5-CUV" secondAttribute="leading" id="ygw-iI-8p3"/>
</constraints>
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="dtV-H5-CUV" secondAttribute="bottom" id="JTS-sy-ZIx"/>
<constraint firstItem="dtV-H5-CUV" firstAttribute="leading" secondItem="JRU-6T-XIW" secondAttribute="leading" id="KnB-yd-LES"/>
<constraint firstAttribute="trailing" secondItem="dtV-H5-CUV" secondAttribute="trailing" id="c6Z-Wa-u8v"/>
<constraint firstItem="dtV-H5-CUV" firstAttribute="top" secondItem="JRU-6T-XIW" secondAttribute="top" id="hLc-rA-agZ"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="41W-IZ-S0S">
<rect key="frame" x="0.0" y="61.000000000000021" width="335" height="82.333333333333314"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20.329999999999998" id="NUh-RX-SnN"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EEy-n8-ZT9">
<rect key="frame" x="0.0" y="61.000000000000021" width="335" height="82.333333333333314"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" notEnabled="YES"/>
</accessibility>
<constraints>
<constraint firstItem="EEy-n8-ZT9" firstAttribute="top" secondItem="JRU-6T-XIW" secondAttribute="bottom" constant="10" id="07C-eK-e4L"/>
<constraint firstAttribute="trailing" secondItem="EEy-n8-ZT9" secondAttribute="trailing" id="0eV-cw-Vb0"/>
<constraint firstItem="JRU-6T-XIW" firstAttribute="top" secondItem="qZf-ej-Zxg" secondAttribute="top" id="7V3-bf-fEw"/>
<constraint firstItem="JRU-6T-XIW" firstAttribute="leading" secondItem="qZf-ej-Zxg" secondAttribute="leading" id="7q0-md-byq"/>
<constraint firstItem="EEy-n8-ZT9" firstAttribute="leading" secondItem="qZf-ej-Zxg" secondAttribute="leading" id="H9Y-Xr-Mvb"/>
<constraint firstItem="Ekc-Zs-FHH" firstAttribute="top" secondItem="41W-IZ-S0S" secondAttribute="bottom" constant="10" id="Haj-5X-7Jq"/>
<constraint firstItem="41W-IZ-S0S" firstAttribute="top" secondItem="JRU-6T-XIW" secondAttribute="bottom" constant="10" id="LUq-TO-4Ri"/>
<constraint firstItem="Ekc-Zs-FHH" firstAttribute="leading" secondItem="qZf-ej-Zxg" secondAttribute="leading" id="N0d-Ud-bcH"/>
<constraint firstAttribute="trailing" secondItem="Ekc-Zs-FHH" secondAttribute="trailing" id="QEk-Nl-LP0"/>
<constraint firstAttribute="bottom" secondItem="Ekc-Zs-FHH" secondAttribute="bottom" constant="10" id="fQb-8m-kWu"/>
<constraint firstAttribute="trailing" secondItem="JRU-6T-XIW" secondAttribute="trailing" id="fpH-cd-zrf"/>
<constraint firstAttribute="trailing" secondItem="41W-IZ-S0S" secondAttribute="trailing" id="rZu-Yd-6qa"/>
<constraint firstItem="Ekc-Zs-FHH" firstAttribute="top" secondItem="EEy-n8-ZT9" secondAttribute="bottom" constant="10" id="rx0-LH-lgr"/>
<constraint firstItem="41W-IZ-S0S" firstAttribute="leading" secondItem="qZf-ej-Zxg" secondAttribute="leading" id="w16-DI-Ydj"/>
</constraints>
</view>
<view clipsSubviews="YES" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1ne-Xk-CBH" customClass="GADMediaView">
<rect key="frame" x="0.0" y="0.0" width="355" height="199.66666666666666"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" secondItem="1ne-Xk-CBH" secondAttribute="height" multiplier="16:9" id="kTC-ip-nfX"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" notEnabled="YES"/>
</accessibility>
<constraints>
<constraint firstAttribute="trailing" secondItem="qZf-ej-Zxg" secondAttribute="trailing" constant="10" id="1Rv-ij-HDB"/>
<constraint firstItem="qZf-ej-Zxg" firstAttribute="leading" secondItem="h2X-7h-r2O" secondAttribute="leading" constant="10" id="OCX-hu-Rvd"/>
<constraint firstItem="qZf-ej-Zxg" firstAttribute="top" secondItem="1ne-Xk-CBH" secondAttribute="bottom" id="aHY-Ht-nDt"/>
<constraint firstItem="1ne-Xk-CBH" firstAttribute="leading" secondItem="h2X-7h-r2O" secondAttribute="leading" id="cj9-Mw-8MR"/>
<constraint firstAttribute="trailing" secondItem="1ne-Xk-CBH" secondAttribute="trailing" id="gLW-Sf-wcR"/>
<constraint firstItem="1ne-Xk-CBH" firstAttribute="top" secondItem="h2X-7h-r2O" secondAttribute="top" id="ipR-Fl-Mie"/>
<constraint firstAttribute="bottom" secondItem="qZf-ej-Zxg" secondAttribute="bottom" id="sWi-Jm-MXA"/>
</constraints>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<connections>
<outlet property="adBadge" destination="PfZ-cd-zxs" id="l4Z-NW-nRv"/>
<outlet property="advertiserView" destination="ic2-4I-EtF" id="l3s-ci-Wqi"/>
<outlet property="bodyView" destination="41W-IZ-S0S" id="Iwg-fc-zE1"/>
<outlet property="callToActionView" destination="Ekc-Zs-FHH" id="jEd-fy-AYv"/>
<outlet property="headlineView" destination="NKU-cb-NgA" id="rQk-ZH-WzT"/>
<outlet property="iconView" destination="tcZ-gP-ynt" id="v9E-Jd-ls7"/>
<outlet property="mediaView" destination="1ne-Xk-CBH" id="ym4-4P-qZ1"/>
<outlet property="starRatingView" destination="EEy-n8-ZT9" id="2zm-9R-j0T"/>
<outlet property="storeView" destination="Nc5-4a-DC8" id="hEJ-Yq-J1P"/>
</connections>
<point key="canvasLocation" x="-68.840579710144937" y="794.83695652173924"/>
</view>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
</objects>
</document>
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 766f36c9503c48e5915b2dbb1b312f64
labels:
- gvh
- gvh_version-10.6.0
- gvhp_exportpath-Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 1
settings:
CPU: x86
Linux64:
enabled: 1
settings:
CPU: x86_64
LinuxUniversal:
enabled: 1
settings:
CPU: AnyCPU
OSXIntel:
enabled: 1
settings:
CPU: x86
OSXIntel64:
enabled: 1
settings:
CPU: x86_64
OSXUniversal:
enabled: 1
settings:
CPU: AnyCPU
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 1
settings:
CPU: x86
Win64:
enabled: 1
settings:
CPU: x86_64
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GADTSmallTemplateView"/>
<view opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h2X-7h-r2O" customClass="GADTTemplateView">
<rect key="frame" x="0.0" y="0.0" width="403" height="101"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L39-RW-Fxr">
<rect key="frame" x="0.0" y="0.0" width="100.66666666666667" height="101"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6ux-FJ-pGo" customClass="GADMediaView">
<rect key="frame" x="0.0" y="0.0" width="100.66666666666667" height="101"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="6ux-FJ-pGo" firstAttribute="leading" secondItem="L39-RW-Fxr" secondAttribute="leading" id="27x-eI-Vv6"/>
<constraint firstItem="6ux-FJ-pGo" firstAttribute="top" secondItem="L39-RW-Fxr" secondAttribute="top" id="ags-Wp-AEy"/>
<constraint firstAttribute="bottom" secondItem="6ux-FJ-pGo" secondAttribute="bottom" id="dPo-Dh-hjm"/>
<constraint firstAttribute="width" secondItem="L39-RW-Fxr" secondAttribute="height" multiplier="1:1" id="evj-q8-mFJ"/>
<constraint firstAttribute="trailing" secondItem="6ux-FJ-pGo" secondAttribute="trailing" id="kq2-nx-atN"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9ag-e3-7oH">
<rect key="frame" x="110.66666666666666" y="60" width="282.33333333333337" height="31"/>
<color key="backgroundColor" red="0.25882352941176467" green="0.52156862745098043" blue="0.95686274509803915" alpha="1" colorSpace="calibratedRGB"/>
<state key="normal" title="Button">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lx5-Xt-1uw">
<rect key="frame" x="110.66666666666666" y="10" width="282.33333333333337" height="40"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Headline" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DKj-id-Sm4">
<rect key="frame" x="0.0" y="0.0" width="282.33333333333331" height="16"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zjv-ch-qcM">
<rect key="frame" x="29.999999999999986" y="21" width="252.33333333333331" height="19"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ad" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hl4-7y-gXg">
<rect key="frame" x="0.0" y="21" width="25" height="19"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="19" id="zKN-zg-1DK"/>
<constraint firstAttribute="width" constant="25" id="zzo-oJ-f7v"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.2274509804" green="0.4039215686" blue="0.15686274510000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pWT-IG-tgy">
<rect key="frame" x="29" y="18" width="245" height="24"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="hl4-7y-gXg" firstAttribute="top" secondItem="DKj-id-Sm4" secondAttribute="bottom" constant="5" id="0Tg-39-lC8"/>
<constraint firstAttribute="bottom" secondItem="Zjv-ch-qcM" secondAttribute="bottom" id="CjG-2q-n2F"/>
<constraint firstAttribute="trailing" secondItem="DKj-id-Sm4" secondAttribute="trailing" id="UoI-a1-i42"/>
<constraint firstItem="Zjv-ch-qcM" firstAttribute="leading" secondItem="hl4-7y-gXg" secondAttribute="trailing" constant="5" id="fU5-cu-7Xt"/>
<constraint firstItem="Zjv-ch-qcM" firstAttribute="top" secondItem="DKj-id-Sm4" secondAttribute="bottom" constant="5" id="rEn-LP-hhs"/>
<constraint firstItem="DKj-id-Sm4" firstAttribute="top" secondItem="Lx5-Xt-1uw" secondAttribute="top" id="sSI-Oo-ibp"/>
<constraint firstItem="DKj-id-Sm4" firstAttribute="leading" secondItem="Lx5-Xt-1uw" secondAttribute="leading" id="syr-GK-hqO"/>
<constraint firstAttribute="bottom" secondItem="hl4-7y-gXg" secondAttribute="bottom" id="x5d-wM-uYg"/>
<constraint firstItem="hl4-7y-gXg" firstAttribute="leading" secondItem="Lx5-Xt-1uw" secondAttribute="leading" id="xIO-Ue-ETa"/>
<constraint firstAttribute="trailing" secondItem="Zjv-ch-qcM" secondAttribute="trailing" id="ygc-FQ-5ah"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" notEnabled="YES"/>
<bool key="isElement" value="YES"/>
</accessibility>
<constraints>
<constraint firstAttribute="trailing" secondItem="9ag-e3-7oH" secondAttribute="trailing" constant="10" id="170-UP-YGV"/>
<constraint firstItem="Lx5-Xt-1uw" firstAttribute="top" secondItem="h2X-7h-r2O" secondAttribute="top" constant="10" id="3QL-ag-qrO"/>
<constraint firstItem="Lx5-Xt-1uw" firstAttribute="height" secondItem="9ag-e3-7oH" secondAttribute="height" multiplier="1.3" id="Hdt-VV-9Kw"/>
<constraint firstItem="L39-RW-Fxr" firstAttribute="leading" secondItem="h2X-7h-r2O" secondAttribute="leading" id="ISF-wz-Ozg"/>
<constraint firstItem="L39-RW-Fxr" firstAttribute="width" relation="lessThanOrEqual" secondItem="h2X-7h-r2O" secondAttribute="width" multiplier="0.25" id="ItS-CH-KDp"/>
<constraint firstItem="Lx5-Xt-1uw" firstAttribute="leading" secondItem="L39-RW-Fxr" secondAttribute="trailing" constant="10" id="Qgh-CR-lQY"/>
<constraint firstItem="9ag-e3-7oH" firstAttribute="top" secondItem="Lx5-Xt-1uw" secondAttribute="bottom" constant="10" id="RyV-eO-eP8"/>
<constraint firstAttribute="trailing" secondItem="Lx5-Xt-1uw" secondAttribute="trailing" constant="10" id="YId-cX-a5U"/>
<constraint firstItem="9ag-e3-7oH" firstAttribute="top" secondItem="Lx5-Xt-1uw" secondAttribute="bottom" constant="10" id="b2E-4c-sl4"/>
<constraint firstItem="L39-RW-Fxr" firstAttribute="centerY" secondItem="h2X-7h-r2O" secondAttribute="centerY" id="eXQ-jP-VfJ"/>
<constraint firstItem="9ag-e3-7oH" firstAttribute="leading" secondItem="L39-RW-Fxr" secondAttribute="trailing" constant="10" id="mXy-rL-NiY"/>
<constraint firstAttribute="bottom" secondItem="9ag-e3-7oH" secondAttribute="bottom" constant="10" id="ywj-Y9-XCT"/>
</constraints>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<connections>
<outlet property="adBadge" destination="hl4-7y-gXg" id="Bp7-FM-VVW"/>
<outlet property="advertiserView" destination="Zjv-ch-qcM" id="Ku9-M6-SEf"/>
<outlet property="callToActionView" destination="9ag-e3-7oH" id="Uh9-xd-ccJ"/>
<outlet property="headlineView" destination="DKj-id-Sm4" id="fwg-CO-DrR"/>
<outlet property="mediaView" destination="6ux-FJ-pGo" id="aCz-rd-9bD"/>
<outlet property="storeView" destination="pWT-IG-tgy" id="f3q-8l-We7"/>
</connections>
<point key="canvasLocation" x="-50.000000000000007" y="652.58152173913049"/>
</view>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
</objects>
</document>
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 6af78782470b4da9994fc4cf04f03183
labels:
- gvh
- gvh_version-10.6.0
- gvhp_exportpath-Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 1
settings:
CPU: x86
Linux64:
enabled: 1
settings:
CPU: x86_64
LinuxUniversal:
enabled: 1
settings:
CPU: AnyCPU
OSXIntel:
enabled: 1
settings:
CPU: x86
OSXIntel64:
enabled: 1
settings:
CPU: x86_64
OSXUniversal:
enabled: 1
settings:
CPU: AnyCPU
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 1
settings:
CPU: x86
Win64:
enabled: 1
settings:
CPU: x86_64
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
+33
View File
@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 2cabb4f60971742a28f3bd04e65de504
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: fc99cbfa2b53248b18d60e327b478581
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
iPhone: iOS
second:
enabled: 1
settings:
AddToEmbeddedBinaries: false
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 52c76a20e90b4b26b396c50aea983ab5
labels:
- gvh
- gvh_version-10.6.0
- gvhp_exportpath-Plugins/iOS/unity-plugin-library.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 1
settings:
CPU: x86
Linux64:
enabled: 1
settings:
CPU: x86_64
LinuxUniversal:
enabled: 1
settings:
CPU: AnyCPU
OSXIntel:
enabled: 1
settings:
CPU: x86
OSXIntel64:
enabled: 1
settings:
CPU: x86_64
OSXUniversal:
enabled: 1
settings:
CPU: AnyCPU
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 1
settings:
CPU: x86
Win64:
enabled: 1
settings:
CPU: x86_64
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e1f7b4425a2abd545a1d66bf92555b95
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 01fe1d6c88612d14b9f222d41ab2075b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 8aa59edc9bec4e45acabc30173a8beaa
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: 46cff64d2cc446bb8fb0137f39fbbf57
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppApp.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: b78f32d3909244bc819df359420806fb
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,81 @@
fileFormatVersion: 2
guid: ea0c43792a004d2b969890decb0dbc93
labels:
- gvh
- gvh_version-12.8.0
- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppMessaging.a
timeCreated: 1480838400
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: None
Linux64:
enabled: 0
settings:
CPU: None
LinuxUniversal:
enabled: 0
settings:
CPU: None
OSXIntel:
enabled: 0
settings:
CPU: None
OSXIntel64:
enabled: 0
settings:
CPU: None
OSXUniversal:
enabled: 0
settings:
CPU: None
Web:
enabled: 0
settings: {}
WebStreamed:
enabled: 0
settings: {}
Win:
enabled: 0
settings:
CPU: None
Win64:
enabled: 0
settings:
CPU: None
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
tvOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,31 @@
mergeInto(LibraryManager.library, {
_gree_unity_webview_init: function(name) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.init(stringify(name));
},
_gree_unity_webview_setMargins: function (name, left, top, right, bottom) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.setMargins(stringify(name), left, top, right, bottom);
},
_gree_unity_webview_setVisibility: function(name, visible) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.setVisibility(stringify(name), visible);
},
_gree_unity_webview_loadURL: function(name, url) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.loadURL(stringify(name), stringify(url));
},
_gree_unity_webview_evaluateJS: function(name, js) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.evaluateJS(stringify(name), stringify(js));
},
_gree_unity_webview_destroy: function(name) {
var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString;
unityWebView.destroy(stringify(name));
},
});
@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 1353be0798ab043d992cd72e4d92970b
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
WebGL: WebGL
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant: