「Unity/GoogleMobileSDK/ライブラリ自動読み込み」の版間の差分
(→build.gradleへの出力) |
(→androidの場合) |
||
行97: | 行97: | ||
証拠として、Google.JarResolver_v1.2.111.0はPlugin内にsdkがDLされない。v1.2.64と最新のv1.2.130はDKされた。(後で調べる用) | 証拠として、Google.JarResolver_v1.2.111.0はPlugin内にsdkがDLされない。v1.2.64と最新のv1.2.130はDKされた。(後で調べる用) | ||
+ | |||
+ | ===gradlewの実行=== | ||
+ | ./Temp/PlayServicesResolverGradle/gradlew | ||
==iosの場合== | ==iosの場合== |
2019年11月28日 (木) 18:50時点における版
目次
[非表示]準備
https://github.com/googlesamples/unity-jar-resolver
play-services-resolver-1.2.89.0.unitypackageをDL
play-services-resolver-1.2.89.0.unitypackageをAssets/ImortPackage/CustomPackageからインストールする
インストールに失敗する場合
unity/GoogleMobileAds/基本 [ショートカット]
play-services-resolverがこのライブラリに付属してるので、それをインストールする
自動読み込み
androidでのmavenやiosでのcocoapodsなどでライブラリを呼びたい場合などに使用。
公式:https://github.com/googlesamples/unity-jar-resolver#version-handler-usage
MyPlugin/Editor/MyPluginDependencies.xml に以下のようにandroidであればpackageurlを変更し、iosであればbundleやライブラリ名を変更すれば適用できる。
注意:ファイル名にDependencies.xmlが含まれていないと使えないっぽい。
PlayServicesResolver/Editorの下にxmlを作っても使えるが、公式はMyPluginなど別dirで記載されてるので、分けたほうが良いっぽい。
<dependencies> <androidPackages> <androidPackage spec="com.google.android.gms:play-services-games:9.8.0"> <androidSdkPackageIds> <androidSdkPackageId>extra-google-m2repository</androidSdkPackageId> </androidSdkPackageIds> <repositories> <repository>https://maven.google.com</repository> </repositories> </androidPackage> </androidPackages> <iosPods> <iosPod name="Google-Mobile-Ads-SDK" version="~> 7.0" bitcodeEnabled="true" minTargetSdk="6.0"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> </iosPod> </iosPods> </dependencies>
カスタムで自動読込したい場合
okhttp3を入れる例 (できなかったので、未完成)
<dependencies> <!-- Android --> <androidPackages> <androidPackage spec="com.squareup.okhttp3:3.7.0"> <androidSdkPackageIds> <androidSdkPackageId>okhttp</androidSdkPackageId> </androidSdkPackageIds> <repositories> <repository>https://mvnrepository.com/artifact</repository> </repositories> </androidPackage> </androidPackages> <!-- iOS --> <iosPods> <iosPod name="Google-Mobile-Ads-SDK" version="~> 7.0" bitcodeEnabled="true" minTargetSdk="6.0"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> </iosPod> </iosPods> </dependencies>
以下にあるjarがAssets/Plugins/Androidの下にされる https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/3.7.0 https://mvnrepository.com/artifact/com.squareup.okio/okio/1.12.0
androidの場合
androidのgradleのライブラリ読み込み
unityバージョン2019からbuild-systemがgradleだけになった。 gradleの場合はAssets/Plugins/AndroidにDLされることはなく、以下ファイルあたりにDLされてるはず。
ls ~/.gradle/caches/modules-2/files-2.1/ ls ~/.gradle/caches/transforms-1/files-1.1/ ls ~/.gradle/caches/modules-2/metadata-2.69/descriptors/
build.gradleへの出力
Assets/PlayService/Android Resolve/Force Resolveすると build-systemがgradleの場合 Assets/Plugins/Android/mainTemplate.gradleへ出力される
↑
mainTemplate.gradleへ出力されずにPlugins/Androidの下にDLされるパターンもあった・・・。
証拠として、Google.JarResolver_v1.2.111.0はPlugin内にsdkがDLされない。v1.2.64と最新のv1.2.130はDKされた。(後で調べる用)
gradlewの実行
./Temp/PlayServicesResolverGradle/gradlew
iosの場合
iosPodの属性
<iosPod name="Google-Mobile-Ads-SDK" version="~> 7.0" bitcodeEnabled="true" minTargetSdk="6.0"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> <iosPod>
iosプロジェクトのPodfileのファイルにフォーマットを変えて出力される
source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/CocoaPods/Specs' platform :ios, '9.0' target 'Unity-iPhone' do pod 'Google-Mobile-Ads-SDK', '~> 7.0' end
処理csは以下の通り、 https://github.com/googlesamples/unity-jar-resolver/blob/master/source/IOSResolver/src/IOSResolver.cs
sdkmanager周りのエラーが出る
Unable to determine which Android packages are installed. Library/Android/sdk/tools/bin/sdkmanager --list --verbose
java9以上ではだめで、java8でないとならないようす。