facebook twitter hatena line email

「Unity/画像共有/NatShare」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(テキストと画像共有)
(Androidビルド時にcore-1.6.0とjetified-core-1.0.0-rc02が競合するとき)
行76: 行76:
  
 
参考:https://marumaro7.hatenablog.com/entry/natshareerror
 
参考:https://marumaro7.hatenablog.com/entry/natshareerror
 +
 +
==iosでシェアの画像を保存ボタンを押すとクラッシュする問題==
 +
エラー詳細
 +
<pre>
 +
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
 +
</pre>
 +
NSPhotoLibraryUsageDescriptionの権限がないため。

2023年4月23日 (日) 00:29時点における版

NatShareとは

画像共有プラグイン

androidはversion7.0以上のみ対応

参考:https://nobushiueshi.com/unitysns%E5%85%B1%E6%9C%89%E3%81%AFnatshare%E3%81%8C%E3%81%8A%E3%81%99%E3%81%99%E3%82%81/

DL&Import

NatShare(github):https://github.com/natmlx/NatShare

githubのcodeからNatSuite-mainをDLし、Assets以下に設置。

x NatShare(UnityAssets):https://assetstore.unity.com/packages/tools/integration/natshare-mobile-sharing-api-117705

UnityAssetsでのインストールは、coreが競合する恐れがあるので、やめておく。詳しくは下の競合項目を。

テキストと画像共有

using UnityEngine;
using UnityEngine.UI;
using NatSuite.Sharing;

public class SampleScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("TextButton").GetComponent<Button>().onClick.AddListener(ShareText);
        GameObject.Find("ImageButton").GetComponent<Button>().onClick.AddListener(ShareCaptureImage);
        GameObject.Find("TextImageButton").GetComponent<Button>().onClick.AddListener(ShareTextCaptureImage);
    }
    // テキスト共有
    void ShareText()
    {
        var payload = new SharePayload();
        payload.AddText("ここに共有したいテキストを入力");
        payload.Commit();
    }
    // キャプチャ画像共有
    void ShareCaptureImage()
    {
        var screenshot = ScreenCapture.CaptureScreenshotAsTexture();
        var payload = new SharePayload();
        payload.AddImage(screenshot);
        payload.Commit();
    }
    // テキスト&キャプチャ画像共有
    void ShareTextCaptureImage()
    {
        var screenshot = ScreenCapture.CaptureScreenshotAsTexture();
        var payload = new SharePayload();
        payload.AddText("ここに共有したいテキストを入力");
        payload.AddImage(screenshot);
        payload.Commit();
    }
    // 通常画像共有
    void ShareImage()
    {
        Texture2D texture = image.texture;
        var payload = new SharePayload();
        payload.AddImage(screetexturenshot);
        payload.Commit();
    }
    void 
    CanvasImage.texture
}

Androidビルド時にcore-1.6.0とjetified-core-1.0.0-rc02が競合するとき

エラー詳細

java.lang.RuntimeException: Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.6.0-runtime.jar (androidx.core:core:1.6.0) and jetified-core-1.0.0-rc02-runtime.jar (:core-1.0.0-rc02:)

AdMobプラグインが、core-1.6.0を使ってるぽい。

対応方法

  1. NatShareプラグインをUnityAssetsからDLしてる場合は、githubからDLするように
  2. NatShare-main/Plugins/Android/core-1.0.0-rc02.aarを削除

参考:https://marumaro7.hatenablog.com/entry/natshareerror

iosでシェアの画像を保存ボタンを押すとクラッシュする問題

エラー詳細

[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.

NSPhotoLibraryUsageDescriptionの権限がないため。