10 private const bool ENABLED =
true;
12 private const string PHOTO_LIBRARY_USAGE_DESCRIPTION =
"Save media to Photos";
13 private const bool MINIMUM_TARGET_8_OR_ABOVE =
false;
16#pragma warning disable 0162
18 public static void OnPostprocessBuild( BuildTarget target,
string buildPath )
23 if( target == BuildTarget.iOS )
25 string pbxProjectPath = PBXProject.GetPBXProjectPath( buildPath );
26 string plistPath = Path.Combine( buildPath,
"Info.plist" );
28 PBXProject pbxProject =
new PBXProject();
29 pbxProject.ReadFromFile( pbxProjectPath );
31#if UNITY_2019_3_OR_NEWER
32 string targetGUID = pbxProject.GetUnityFrameworkTargetGuid();
34 string targetGUID = pbxProject.TargetGuidByName( PBXProject.GetUnityTargetName() );
38#if !UNITY_2018_1_OR_NEWER
39 if( MINIMUM_TARGET_8_OR_ABOVE )
42 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework Photos" );
43 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework MobileCoreServices" );
44 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework ImageIO" );
45#if !UNITY_2018_1_OR_NEWER
49 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-weak_framework Photos" );
50 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework AssetsLibrary" );
51 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework MobileCoreServices" );
52 pbxProject.AddBuildProperty( targetGUID,
"OTHER_LDFLAGS",
"-framework ImageIO" );
56 pbxProject.RemoveFrameworkFromProject( targetGUID,
"Photos.framework" );
58 File.WriteAllText( pbxProjectPath, pbxProject.WriteToString() );
60 PlistDocument plist =
new PlistDocument();
61 plist.ReadFromString( File.ReadAllText( plistPath ) );
63 PlistElementDict rootDict = plist.root;
64 rootDict.SetString(
"NSPhotoLibraryUsageDescription", PHOTO_LIBRARY_USAGE_DESCRIPTION );
65 rootDict.SetString(
"NSPhotoLibraryAddUsageDescription", PHOTO_LIBRARY_USAGE_DESCRIPTION );
67 File.WriteAllText( plistPath, plist.WriteToString() );
70#pragma warning restore 0162