Guard: iOS は仮 package 名を警告のみ(非ブロック)に変更

- 判定 ContainsDefaultNativeSharePackageName とメッセージ生成を分離
- Android はビルド停止、iOS は Debug.LogWarning で促すだけ
- README の iOS 説明を更新

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 13:04:36 +09:00
parent cf146940c1
commit 27a5fea2b8
2 changed files with 39 additions and 27 deletions

View File

@@ -16,14 +16,21 @@ public class NativeSharePackageNameGuard : IPreprocessBuildWithReport
if (platform == BuildTarget.Android) if (platform == BuildTarget.Android)
{ {
// Android はこの package 名が機能に直結するためビルドを停止する。
CheckUnityAndroidPackageName(); CheckUnityAndroidPackageName();
CheckNativeSharePackageName();
if (ContainsDefaultNativeSharePackageName())
{
throw new BuildFailedException(BuildPackageNameMessage());
}
} }
else if (platform == BuildTarget.iOS) else if (platform == BuildTarget.iOS)
{ {
// iOS 自体は jp.yourname を使わないが、テンプレートの仮名のまま // iOS 自体は jp.yourname を使わないので、止めずに警告でリネームを促す。
// 公開されないよう、リネームを促す。 if (ContainsDefaultNativeSharePackageName())
CheckNativeSharePackageName(); {
Debug.LogWarning("[NativeShare] " + BuildPackageNameMessage());
}
} }
} }
@@ -61,7 +68,7 @@ public class NativeSharePackageNameGuard : IPreprocessBuildWithReport
} }
} }
private void CheckNativeSharePackageName() private bool ContainsDefaultNativeSharePackageName()
{ {
string assetsPath = Application.dataPath; string assetsPath = Application.dataPath;
@@ -80,11 +87,18 @@ public class NativeSharePackageNameGuard : IPreprocessBuildWithReport
continue; continue;
} }
string text = File.ReadAllText(filePath); if (File.ReadAllText(filePath).Contains(DefaultNativeSharePackageName))
if (text.Contains(DefaultNativeSharePackageName))
{ {
throw new BuildFailedException( return true;
}
}
return false;
}
private string BuildPackageNameMessage()
{
return
"NativeShare の Java package 名が初期値(テンプレートの仮名)のままです。\n\n" + "NativeShare の Java package 名が初期値(テンプレートの仮名)のままです。\n\n" +
"公開・配布の前に、次の仮パッケージ名を自分のものへ変更してください。\n\n" + "公開・配布の前に、次の仮パッケージ名を自分のものへ変更してください。\n\n" +
" " + DefaultNativeSharePackageName + "\n\n" + " " + DefaultNativeSharePackageName + "\n\n" +
@@ -101,9 +115,6 @@ public class NativeSharePackageNameGuard : IPreprocessBuildWithReport
"・この package 名は Android のネイティブ実装で使われます。\n" + "・この package 名は Android のネイティブ実装で使われます。\n" +
" iOS のビルド自体には必須ではありませんが、公開前のリネームを推奨します。\n" + " iOS のビルド自体には必須ではありませんが、公開前のリネームを推奨します。\n" +
"・アプリの Package Name(Player Settings)と、NativeShare の Java\n" + "・アプリの Package Name(Player Settings)と、NativeShare の Java\n" +
" package 名は、同じである必要はありません。" " package 名は、同じである必要はありません。";
);
}
}
} }
} }

View File

@@ -52,6 +52,7 @@
- 写真保存に必要な `NSPhotoLibraryAddUsageDescription` は、ビルド後処理(`NativeSharePostProcessBuild.cs`)で Info.plist に自動追加されます。文言を変えたい場合はそのスクリプトを編集してください。 - 写真保存に必要な `NSPhotoLibraryAddUsageDescription` は、ビルド後処理(`NativeSharePostProcessBuild.cs`)で Info.plist に自動追加されます。文言を変えたい場合はそのスクリプトを編集してください。
- カメラ用途の説明(`NSCameraUsageDescription`)は Player Settings の「Camera Usage Description」で設定してください。 - カメラ用途の説明(`NSCameraUsageDescription`)は Player Settings の「Camera Usage Description」で設定してください。
- iOS は `jp.yourname.unity.nativeshare` を実際には使いませんが、テンプレートの仮名のまま残っていると**ビルド時に警告(非ブロック)**でリネームを促します(`NativeSharePackageNameGuard`)。Android はビルドを停止します。
## ライセンス ## ライセンス