「Unity/画像共有/SocialConnector」の版間の差分
(ページの作成:「==SocialConnectorとは== unityから共有できるライブラリ ==公式== https://github.com/anchan828/social-connector ==組み込み方法== #SocialConnector.uni...」) |
(→SocialConnectorの削除) |
||
(同じ利用者による、間の38版が非表示) | |||
行1: | 行1: | ||
==SocialConnectorとは== | ==SocialConnectorとは== | ||
unityから共有できるライブラリ | unityから共有できるライブラリ | ||
+ | |||
+ | ただし、 以下のほうがおすすめ | ||
+ | |||
+ | [[unity/画像共有/NatShare]] [ショートカット] | ||
==公式== | ==公式== | ||
https://github.com/anchan828/social-connector | https://github.com/anchan828/social-connector | ||
+ | |||
+ | ==追加される権限== | ||
+ | BuildSetting/PlayerSettings/Android/OtherSetttings/Write Permissionがinternalの場合は権限追加なし、External(SDCard)の時は以下が追加される。SDCardの場合は、立ち上げ時に許可ダイアログが出る。 | ||
+ | |||
+ | androidの場合(External選択の場合) | ||
+ | android.permission.WRITE_EXTERNAL_STORAGE | ||
+ | iosの場合 | ||
+ | プライバシーアクセス(NSPhotoLibraryUsageDescription) | ||
==組み込み方法== | ==組み込み方法== | ||
− | #SocialConnector.unitypackage をAssets/Import/ | + | #SocialConnector.unitypackage をAssets/Import/CustomImportを選択して、以下ファイルを入れる。 |
− | #SocialConnector/Plugins/Android/AndroidManifest.xmlをPlugins/ | + | Plugins |
− | #SocialConnector/Plugins/Android/resをPlugins/ | + | Android |
+ | res | ||
+ | xml | ||
+ | filepaths.xml | ||
+ | SocialConnector | ||
+ | Editor | ||
+ | SocialConnectorPostProcess.cs | ||
+ | Plugins | ||
+ | Android | ||
+ | AndroidManifest.xml | ||
+ | support-core-utils-25.3.1.aar | ||
+ | SocialConnector.mm | ||
+ | Sample | ||
+ | Sample.cs | ||
+ | Sample.unity | ||
+ | SocialConnector.cs | ||
+ | |||
+ | #SocialConnector/Plugins/Android/AndroidManifest.xmlをPlugins/Android/AndroidManifest.xmlへ移動 | ||
+ | #SocialConnector/Plugins/Android/resをPlugins/Android/resへ移動 | ||
+ | #以下のように呼び出し。 | ||
+ | |||
+ | string imagePath = Application.persistentDataPath + "/image.png"; | ||
+ | ScreenCapture.CaptureScreenshot("image.png"); | ||
+ | SocialConnector.SocialConnector.Share(message, "https://github.com/anchan828/social-connector", imagePath); | ||
+ | |||
+ | android,iosともにテキストのshereができた。画像キャプチャのshareもできた。 | ||
==androidx対応== | ==androidx対応== | ||
+ | #support-core-utils-25.3.1.aarを削除 | ||
+ | #core.aarがアプリに設定されてなければ、https://mvnrepository.com/artifact/androidx.core/core/1.2.0 からaarをダウンロードして同じ場所に設置。(dependencyエラーが起こった場合はaarは不要なので削除しよう) | ||
+ | #以下ファイルのandroid.support.v4.content.fileproviderからandroidx.core.content.FileProviderへ置換 | ||
+ | |||
AndroidManifest.xml | AndroidManifest.xml | ||
<pre> | <pre> | ||
行30: | 行71: | ||
</manifest> | </manifest> | ||
</pre> | </pre> | ||
+ | |||
+ | SocialConnector/SocialConnector.cs | ||
+ | - var fileProvider = new AndroidJavaClass("android.support.v4.content.FileProvider"); | ||
+ | + var fileProvider = new AndroidJavaClass("androidx.core.content.FileProvider"); | ||
+ | |||
+ | ===以下エラーが出る場合=== | ||
+ | content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider" | ||
+ | 上の項目にあるcore.aarが足りないのでcore.aarを入れる。詳しくは上の項目を確認 | ||
==ios対応== | ==ios対応== | ||
+ | SocialConnector/Plugins/SocialConnector.mmこれは、そのままの場所で良い。 | ||
+ | |||
+ | ===autoreleaseは使用できませんと出るとき=== | ||
以下エラーが出る場合 | 以下エラーが出る場合 | ||
'autorelease' is unavailable: not available in automatic reference counting mode | 'autorelease' is unavailable: not available in automatic reference counting mode | ||
− | Build Phases/Compile SourcesのSocialConnector.mmをダブルクリックして -fno-objc-arc | + | xcode側/target(UnityiPhone)/Build Phases/Compile SourcesのSocialConnector.mmをダブルクリックして 以下文字列 を追加 |
+ | -fno-objc-arc | ||
+ | |||
+ | xcode側/target(UnityFramework)/Build Phases/Compile SourcesのSocialConnector.mについても以下を追加 | ||
+ | -fno-objc-arc | ||
+ | |||
+ | まだ直らない場合は | ||
+ | BuildSettingのObjecctive-C Automatic Refarence CountingをYesからNoへ | ||
+ | |||
+ | iosのFile/BuildSettingsのCompressionMethodをDefaultからLZ4にした時に設定が必要になった。 | ||
+ | |||
+ | ===SocialConnector.mmがコピーされてると出るとき=== | ||
+ | 以下エラーが出る場合 | ||
+ | <pre> | ||
+ | Plugin 'SocialConnector.mm' is used from several locations: | ||
+ | Assets/Plugins/iOS/SocialConnector/SocialConnector.mm would be copied to | ||
+ | </pre> | ||
+ | Assets/Plugins/iOS/SocialConnector/SocialConnector.mm とAssets/SocialConnector/SocialConnector.mm が両方存在するとき | ||
+ | どちらか一方消すとうまくいくと思う。自分は、Assets/Plugins/iOS/SocialConnector/SocialConnector.mm側を消すとうまくいった。 | ||
+ | ==SocialConnectorの削除== | ||
+ | <pre> | ||
+ | rm -fr Assets/Plugins/Android/res/xml | ||
+ | rm -fr Assets/Plugins/Android/res/xml.meta | ||
+ | rm -fr Assets/SocialConnector | ||
+ | rm -fr Assets/SocialConnector.meta | ||
+ | rm -fr Assets/Plugins/Android/res.meta # resの下にxmlしかない場合 | ||
+ | </pre> | ||
+ | Assets/Plugins/Android/AndroidManifest.xml の以下を削除 | ||
+ | <pre> | ||
+ | <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:enabled="true" android:exported="false" android:grantUriPermissions="true"> | ||
+ | <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> | ||
+ | </provider> | ||
+ | </pre> | ||
==参考== | ==参考== |
2022年6月14日 (火) 18:30時点における最新版
目次
SocialConnectorとは
unityから共有できるライブラリ
ただし、 以下のほうがおすすめ
unity/画像共有/NatShare [ショートカット]
公式
https://github.com/anchan828/social-connector
追加される権限
BuildSetting/PlayerSettings/Android/OtherSetttings/Write Permissionがinternalの場合は権限追加なし、External(SDCard)の時は以下が追加される。SDCardの場合は、立ち上げ時に許可ダイアログが出る。
androidの場合(External選択の場合)
android.permission.WRITE_EXTERNAL_STORAGE
iosの場合
プライバシーアクセス(NSPhotoLibraryUsageDescription)
組み込み方法
- SocialConnector.unitypackage をAssets/Import/CustomImportを選択して、以下ファイルを入れる。
Plugins Android res xml filepaths.xml SocialConnector Editor SocialConnectorPostProcess.cs Plugins Android AndroidManifest.xml support-core-utils-25.3.1.aar SocialConnector.mm Sample Sample.cs Sample.unity SocialConnector.cs
- SocialConnector/Plugins/Android/AndroidManifest.xmlをPlugins/Android/AndroidManifest.xmlへ移動
- SocialConnector/Plugins/Android/resをPlugins/Android/resへ移動
- 以下のように呼び出し。
string imagePath = Application.persistentDataPath + "/image.png"; ScreenCapture.CaptureScreenshot("image.png"); SocialConnector.SocialConnector.Share(message, "https://github.com/anchan828/social-connector", imagePath);
android,iosともにテキストのshereができた。画像キャプチャのshareもできた。
androidx対応
- support-core-utils-25.3.1.aarを削除
- core.aarがアプリに設定されてなければ、https://mvnrepository.com/artifact/androidx.core/core/1.2.0 からaarをダウンロードして同じ場所に設置。(dependencyエラーが起こった場合はaarは不要なので削除しよう)
- 以下ファイルのandroid.support.v4.content.fileproviderからandroidx.core.content.FileProviderへ置換
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:theme="@style/UnityThemeSelector" android:icon="@drawable/app_icon" android:label="@string/app_name"> <activity android:label="@string/app_name" android:name="com.unity3d.player.UnityPlayerActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:enabled="true" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider> </application> </manifest>
SocialConnector/SocialConnector.cs
- var fileProvider = new AndroidJavaClass("android.support.v4.content.FileProvider"); + var fileProvider = new AndroidJavaClass("androidx.core.content.FileProvider");
以下エラーが出る場合
content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider"
上の項目にあるcore.aarが足りないのでcore.aarを入れる。詳しくは上の項目を確認
ios対応
SocialConnector/Plugins/SocialConnector.mmこれは、そのままの場所で良い。
autoreleaseは使用できませんと出るとき
以下エラーが出る場合
'autorelease' is unavailable: not available in automatic reference counting mode
xcode側/target(UnityiPhone)/Build Phases/Compile SourcesのSocialConnector.mmをダブルクリックして 以下文字列 を追加
-fno-objc-arc
xcode側/target(UnityFramework)/Build Phases/Compile SourcesのSocialConnector.mについても以下を追加
-fno-objc-arc
まだ直らない場合は BuildSettingのObjecctive-C Automatic Refarence CountingをYesからNoへ
iosのFile/BuildSettingsのCompressionMethodをDefaultからLZ4にした時に設定が必要になった。
SocialConnector.mmがコピーされてると出るとき
以下エラーが出る場合
Plugin 'SocialConnector.mm' is used from several locations: Assets/Plugins/iOS/SocialConnector/SocialConnector.mm would be copied to
Assets/Plugins/iOS/SocialConnector/SocialConnector.mm とAssets/SocialConnector/SocialConnector.mm が両方存在するとき どちらか一方消すとうまくいくと思う。自分は、Assets/Plugins/iOS/SocialConnector/SocialConnector.mm側を消すとうまくいった。
SocialConnectorの削除
rm -fr Assets/Plugins/Android/res/xml rm -fr Assets/Plugins/Android/res/xml.meta rm -fr Assets/SocialConnector rm -fr Assets/SocialConnector.meta rm -fr Assets/Plugins/Android/res.meta # resの下にxmlしかない場合
Assets/Plugins/Android/AndroidManifest.xml の以下を削除
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:enabled="true" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider>
参考
http://nn-hokuson.hatenablog.com/entry/2018/05/16/195527