• 实习离职

    今天终于实习离职了,从5月8日到11月28日,在网易游戏实习了接近7个月。今天离职信里终结了下,在UniSDK,完整的东西大概做了下面这些,然后零零索索的给游戏处理各种iOS疑难杂症。

    + NtUniSdkFramework
    	+ 91
    	+ PP
    	+ Tongbu
    	+ DownJoy
    	+ iTools
    	+ KuaiYong
    	+ NetEase
    	+ YiXin
    	+ Line
    
    + NtShareSdkFramework
    	+ YiXin
    	+ WeiXin
    	+ Weibo
    
    + NtUniSdk Xcode Plugin
    
    + U3D C# Wrapper for both Android and iOS NtUniSdk
    
    + Flash ANE for both Android and iOS NtUniSdk
    

    Read on →

  • 推荐一个系列视频《Extra Credits》

    最近中午的午休时间都在看《Extra Credits》,挺赞的,是一个讨论游戏行业相关话题的系列视频。在此推荐一下。

    Extra Credits

    Read on →

  • 黑魔法之Xcode Plugin开发

    Xcode 插件的黑科技

    ##1. 取得项目路径

    先贴段代码:

    NSString *workspacePath = @"";
    
    // to find current project path
    NSArray *workspaceWindowControllers = [NSClassFromString(@"IDEWorkspaceWindowController") valueForKey:@"workspaceWindowControllers"];
    id workSpace;
    for (id controller in workspaceWindowControllers) {
        if ([[controller valueForKey:@"window"] isEqual:[NSApp keyWindow]]) {
            workSpace = [controller valueForKey:@"_workspace"];
        }
    }
    
    if (workSpace) {
        workspacePath = [[workSpace valueForKey:@"representingFilePath"] valueForKey:@"_pathString"];
    }
    

    这段代码位于 BMPlugin.m 中,作用是取得当前 workspace,并读取其文件路径。

    Read on →

  • 关于AppStore IAP的新旧Receipt

    iOS7.0后,SKPayment的property transactionReceipt变成了DEPRECATED。

    建议使用新接口来实现receipt的获取。

     [[[NSBundle mainBundle] appStoreReceiptURL] dataWithContentsOfURL:receiptURL];
    

    如果使用了IAP,Apple官方的建议是使用下列代码来处理:

    NSData *receipt = nil;
    
    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
        // Load resources for iOS 6.1 or earlier
        receipt = transaction.transactionReceipt;
    
    } else {
        NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
        receipt = [NSData dataWithContentsOfURL:receiptURL];
    }
    

    上面的代码很容易以为,新旧接口取得的receipt格式是一致的。其实不然。

    Read on →

  • U3D iOS SDK Wrapper

    很多游戏使用U3D引擎,比如《忍者必须死》、《影之刃》… 所以,iOS NtUniSDK需要一个U3D的wrapper。

    U3D的C#可以调用外部C接口,故需要为NtUniSDK包装一个C语言层,下面给出简化的项目示例代码。

    Read on →