马甲包框架NYSMC

logo.png

NYSMC

自动选择加载“壳应用”/“真应用”的简单框架。
Auto Choose Sheel/Application framework.

GitHub Address:https://github.com/niyongsheng/NYSMC

How to use:

  • Installation with CocoaPods:pod 'NYSMC','~>0.2.0'

  • Manual import:

    • Drag All files in the NYSMC folder to project

    • Import the main file:#import <NYSMC/NYSMC.h>

Application Instance by NYSMC:

1541468639645.jpg

Server API Pattern:

  • Step 1.Need Server API

/** 需要后端组的同学准备一个接口 */

// Method: POST

// Server: http://xxx.NYSMC.com:8080

// API: /api/getReviewData

// Parameters: PARM

/* JSON返回数据结构:*/

{

    "param": {},

    "error": null,

    "returnValue": {

        "gmtCreate": "2018-06-25 11:12:35",

        "gmtModify": null,

        "id": 1,

        "version": "1.0", //(审核中版本号)

        "reviewTime": 1534419240000, //(预计审核完成时间)

        "url": "github.com/niyongsheng", //(链接地址)

        "status": 0 //(马甲开关:0关闭  1开启)

    },

    "msg": null,

    "list": null,

    "unread": null,

    "type": null,

    "success": true

}

  • Step 2.AppDelegate.m

#import <NYSMC/NYSMC.h>

#import "tabViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // I.初始化NYSC

    [NYSCake initWithEstimatedAuditDays:2 PostURL:@"http://xxx.NYSMC.com:8080/api/getReviewData" ValidateParameters:PARM BootMethod:NYSCBootMethod_Cold];

    // II.选择分支

    [NYSCake chooseViewControllerWithPriorityType:NYSCPriorityType_Server_Status errorBootFromType:BootFrom_Sheel matchSheelBlock:^{

        // 马甲

        self.window.rootViewController = [[tabViewController alloc] init];

        [self.window makeKeyAndVisible];

    } ApplicationBlock:^{

        // 应用

        self.window.rootViewController = [[NYSWebViewController alloc] init];

        [self.window makeKeyAndVisible];

    }];



    // III.获取服务器中的配置参数(热启动不需要调用此方法)

    [NYSCake updataServerParameters];



    return YES;

}

NO Server API Pattern:

  • Step 1.Add Shell

    XCode->Product->Scheme->Edit Scheme->Build->Pre-actions->Add new shell(New run script action)


echo "In the build time script run."

infoplist="$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"

builddate=`date`

if [[ -n "$builddate" ]]; then

# if BuildDateString doesn't exist, add it

/usr/libexec/PlistBuddy -c "Add :BuildDate string $builddate" ${infoplist}

# and if BuildDateString already existed, update it

/usr/libexec/PlistBuddy -c "Set :BuildDate string $builddate" ${infoplist}

fi

  • Step 2.AppDelegate.m

#import <NYSMC/NYSMC.h>

#import "SheelViewController.h"

#import "ApplicationViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // I.初始化NYSC

    [NYSCake initWithEstimatedAuditDays:2 PostURL:nil ValidateParameters:nil BootMethod:NYSCBootMethod_Cold];

    // II.选择分支

    [NYSCake chooseViewControllerWithPriorityType:NYSCPriorityType_Server_Version errorBootFromType:BootFrom_Application matchSheelBlock:^{

    // 马甲

        self.window.rootViewController = [[SheelViewController alloc] init];

        [self.window makeKeyAndVisible];

    } ApplicationBlock:^{

    // 应用

        self.window.rootViewController = [[ApplicationViewController alloc] init];

        [self.window makeKeyAndVisible];

    }];



    return YES;

}

Remind

  • ARC
  • iOS >= 8.0
  • iPhone \ iPad screen anyway

Contact Me

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 今天下载了简书,想随便说点什么吧,就说说我大四的北漂之路吧,先写一篇流水文吧。 2017年8月11日晚 ...
    liu_ali阅读 538评论 7 6
  • 闺女出水痘已经四天了,一部分已经结痂,有痊愈的趋势,一部分还处于旺季,气势汹汹的顶着鼓鼓的水泡,大有压倒病人之势,...
    阳光_986c阅读 571评论 1 9