更新了Xcode, 报错:'system' is unavailable: not available on iOS

来源:互联网 发布:ubuntu 14.04卸载内核 编辑:程序博客网 时间:2024/05/22 03:49
针对iOS11废除了system之后,报错:'system' is unavailable: not available on iOS的一些修改如下:
1.修改了CCFileUtils.cpp文件
  参考:https://github.com/cocos2d/cocos2d-x/pull/17921/files 


2.修改了AssetsManager.cpp文件
  参考:http://www.cocoachina.com/bbs/read.php?tid=1725915&page=1&toread=1#tpc 


3.cocos2d_lua/external/lua/Ioslib.c文件还有报错,原因是system方法在iOS11中已经被移除了,
  修改:
  1.添加了:
    #include <ftw.h>
    和
    int unlink_cb(const char *fpath, const struct stat *sb, int typeflag, struct FTW     *ftwbuf)
    {
            int rv = remove(fpath);
    
            if (rv)
            perror(fpath);
    
            return rv;
    }
  2.替换
       lua_pushinteger(L, system(luaL_optstring(L, 1, NULL)));
    为
       lua_pushinteger(L, nftw(luaL_optstring(L, 1, NULL), unlink_cb, 64, FTW_DEPTH | FTW_PHYS)); 
阅读全文
1 0