使用MOAI在沙盒化的Mac应用程序中正确设置文档路径

我们有一个 Mac 桌面 Moai 应用程序,我们正在 SFML 上下文中加载它。该应用程序本身已经正确沙箱化,因为我们主机中的 ~/Library/Containers 返回路径:

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

然而,当我们打印出 MoaiEnvironment.documentDirectory 时,它仍然返回路径 ~/Documents。查看 Moai lib,它看起来是使用完全相同的代码设置路径:

environment.SetValue ( MOAI_ENV_documentDirectory,  [[ NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory, NSUserDomainMask, YES ) objectAtIndex:0 ] UTF8String ]);

我们如何确保 Moai 二进制文件也设置为返回沙箱路径呢?

点赞
用户53653
用户53653

我最终创建了一个简单的 AKU 扩展,类似于 moaiext-ios,moaiext-osx:

// aku/AKU-macosx.h

#ifndef AKU_MACOSX_H
#define AKU_MACOSX_H

#import <Foundation/Foundation.h>

void AKUMacOSXInit ();

#endif

// aku/AKU-macosx.mm

#import <aku/AKU-macosx.h>

#include <moaicore/moaicore.h>

void AKUMacOSXInit () {

    MOAIEnvironment& environment = MOAIEnvironment::Get ();

    environment.SetValue (MOAI_ENV_cacheDirectory, [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] UTF8String]);
    environment.SetValue (MOAI_ENV_documentDirectory, [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] UTF8String]);

}

现在我们只需要在主机中导入这个头文件并调用 AKUMacOSXInit() 即可。

2013-12-20 17:26:10