gpt4 book ai didi

ios - 为iOS编译时,如何让Unity自动添加“使用Apple登录”功能?

转载 作者:行者123 更新时间:2023-12-01 16:12:29 26 4
gpt4 key购买 nike

我已经使用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上,这是我使其工作的结果:

  • 从Unity官方网站下载XcodeAPI
    bitbucket repositry
  • 打开CapabilityManager.cs并添加以下代码
    /// <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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com