我有一个Unity3D iOS项目,在那里我使用Game Center和In-App Purchases(通过第三方插件),但是当我将Unity3D项目构建到xCode中时,在功能部分Game Center和In-App Purchases被禁用。我需要在PostProcessBuild方法中启用它们。我尝试通过以下代码使用xCodeApi:
string projPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
PBXProject proj = new PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
string target = proj.TargetGuidByName("Unity-iPhone");
proj.AddCapability (target, PBXCapabilityType.GameCenter);
proj.AddCapability (target, PBXCapabilityType.InAppPurchase);
File.WriteAllText(projPath, proj.ToString());
字符串
但是在此之后,xCode无法打开创建的项目(它只是立即崩溃)。我如何添加这两个功能,而无需在xCode中手动设置它们?
4条答案
按热度按时间bxgwgixi1#
这里有一个新的方法,这是可以实现的:
字符串
hpxqektj2#
所以问题是无效的projPath,我没有启用iCloud.这段代码的工作原理:
字符串
现在我有麻烦,只有设置iCloud标志键值存储和CloudKit为真.据我所知,它需要一些权利文件,我不知道在哪里可以找到.如果你知道如何帮助,我会很感激一些意见.
tnkciper3#
您可以使用
ProjectCapabilityManager
添加iCloud
功能,并带有key-value
存储标志字符串
XcodeUnity
更名为namespace,您可以从这里获取xcode API https://bitbucket.org/Unity-Technologies/xcodeapi/srcsshcrbum4#
截至2023年11月21日,这里正确标记的答案已被弃用。Unity像往常一样破坏了自己的API。例如,以下内容将适用于Game Center(GameKit框架):
字符串