Unity3d iOS iCloud Key-Value Storage Plugin and Native Alert Dialog.
调用 iCloud Key-Value Store 相关方法之前,需要做好以下准备:
- 确保构建时使用的描述文件 (.mobileprovision) 已启用了 iCloud Capabilities
- 确保主要的 Xcodeproj 中包含 iCloud Entitlement 文件 (.entitlements)
- 在 Xcode 工程中,选择对应的 xcodeproj (Unity-iPhone),导航到 Signing & Capabilities 标签页
- 点击左上角的
+Capability
,选择 iCloud,并启用 Key-Value storage
在 Unity 中使用构建后处理自动添加:
[PostProcessBuild(1)]
public static void CapabilityEntitlementsAdder(BuildTarget target, string pathToBuiltProject)
{
if (target == BuildTarget.iOS)
{
string pbxPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
var capManager = new ProjectCapabilityManager(pbxPath, "Unity-iPhone.entitlements", "Unity-iPhone");
capManager.AddiCloud(true, false, false, false, new string[]{});
capManager.WriteToFile();
}
}
完成上述步骤后,工程中会多出一个名为 Unity-iPhone.entitlements
的文件:
<?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.icloud-container-identifiers</key>
<array/>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
</dict>
</plist>
iOSPlugin.ShowAlert("Hello", "World");
iOSPlugin.ShowAlertConfirmation("Basic Alert Confirmation", "Hello this is a basic confirmation !", "CallBack");
iOSPlugin.ShareMessage("Welcome To iOS Bridge Essentials", "https://github.com/georgehuan1994/Unity-iOS-iCloud-Plugin");
iOSPlugin.GetBatteryLevel()
bool success = iOSPlugin.iCloudSaveStringValue("MyStringKey", valueToSave);
string savedValue = iOSPlugin.iCloudGetStringValue("MyStringKey");
bool success = iOSPlugin.iCloudSaveIntValue("MyIntgKey", valueToSave);
int savedValue = iOSPlugin.iCloudGetIntValue("MyIntgKey");
bool success = iOSPlugin.iCloudSaveBoolValue("MyBoolgKey", valueToSave);
bool savedValue = iOSPlugin.iCloudGetBoolValue("MyBoolgKey");