我已经使用Google搜索了几个小时,并尝试了该代码的所有变体,但我一直无法自动添加“使用Apple登录”功能。
我已经尝试过这个Github项目的示例:
https://github.com/lupidan/apple-signin-unity/blob/master/AppleAuth/Editor/ProjectCapabilityManagerExtension.cs
我一直在关注这些帖子:
https://forum.unity.com/threads/how-to-put-ios-entitlements-file-in-a-unity-project.442277/
https://answers.unity.com/questions/1224123/enable-push-notification-in-xcode-project-by-defau.html
没有此功能的授权文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
具有此功能的一个看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
我试图用下面的代码来评价:
proj.AddBuildProperty(target, "SystemCapabilities", "{com.apple.developer.applesignin = [Default];}");
proj.AddCapability(target, PBXCapabilityType.SignInWithApple, relativeDestination, true);
但是这些都没有修改权利文件或添加功能。
我为此使用了ProjectCapabilityManager:
ProjectCapabilityManager capabilityManager = new ProjectCapabilityManager(buildPath, filename, targetName);
capabilityManager.AddSignInWithApple();
capabilityManager.WriteToFile();
但是我在控制台中收到一条错误消息,指出对buildPath的访问被拒绝(由OnPostProcessBuild()提供)
我真的可以使用一些帮助。
最佳答案
我在Unity3D 5.6.7f上,这是我使其工作的结果:
bitbucket repositry
/// <summary>
/// Add Sign In With Apple capability to the project.
/// </summary>
public void AddSignInWithApple()
{
var arr = (GetOrCreateEntitlementDoc().root[SignInWithAppleEntitlements.Key] = new PlistElementArray()) as PlistElementArray;
arr.values.Add(new PlistElementString("Default"));
}
还有这个
internal class SignInWithAppleEntitlements
{
internal static readonly string Key = "com.apple.developer.applesignin";
}
现在,您可以使用类似这样的后期处理功能添加“使用Apple登录”功能
ProjectCapabilityManager projCapManager = new ProjectCapabilityManager(projectPath,"YouAppName.entitlements","Unity-iPhone");
projCapManager.AddSignInWithApple();
关于ios - 为iOS编译时,如何让Unity自动添加“使用Apple登录”功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61310717/