±àÕß°´£º´ÓÈ¥Ä꿪ʼ£¬¹ØÓÚiOS×é¼þ»¯µÄÌÖÂۺͷÖÏí·Ç³£¶à£¬Ò²ÐγÉÁ˼¸ÖֱȽϳÉÊìµÄ·½°¸¡£×é¼þ¶àÁË£¬ËüÃǵÄÒÀÀµ¹ØÏµ¡¢°æ±¾µÈµÄ¹ÜÀí³ÉΪÎÊÌ⣬µ«Õâ·½ÃæµÄ·ÖÏíºÜÉÙ¡£¾©¶«iOS²»µ«ÊµÊ©ÁË×é¼þ»¯£¬»¹×¨ÃÅ¿ª·¢ÁËÒ»Ì××é¼þ¹ÜÀíϵͳ¡£Ï£Íû¾©¶«µÄʵ¼ù¿ÉÒÔ¸ø´ó¼ÒһЩ²Î¿¼Ë¼Â·¡£
ǰÑÔ
ÏÈ´ó¸Å½»´úϱ³¾°£º¾©¶«µÄiOS¿Í»§¶Ë´Ó2011Äê2Ô·¢²¼ÖÁ½ñÒÑÀú¾6Äê+µÄʱ¼ä£¬Ñз¢ÍŶÓÒ²´Ó×îÖյöÈ˱ä³ÉÁËN¶àÈË£¬ÒµÎñµÄ¸´ÔÓ¶ÈÔçÒѲ»¿ÉÏëÏó¡£
ÎÒ¸öÈËÈÏΪһ¸ö³¬¹ýÁË10È˵ÄÍŶÓ×ö×é¼þ»¯ÊǺÏÊʵģ¬Ò²ÓбØÒª¡£µ±È»ÉÙÓÚ10¸öÈËÒ²Ó¦¸Ãȥ˼¿¼Ò»ÏÂÓ¦Óÿò¼Ü¸ÃÈçºÎÑݱ䣬×éÖ¯µÄÕâ¼þÊ¡£
Ä¿±ê
¶ÔÓÚÿ¼ÒÓ¦Óû¹µÃ½áºÏʵ¼ÊÒµÎñÀ´¿¼ÂÇ£¬±Ï¾¹¼¼Êõ×îÖÕÒ²ÊÇΪÁËÒµÎñ¶ø·þÎñ¡£¾©¶«iOS×é¼þ»¯µÄÄ¿µÄ´ÓÒµÎñ²ãÃæÀ´½²Ö÷ÒªÊÇΪÁ˽â¾ö£º¶àÒµÎñµÄ²¢Ðм¯³É£¬¶à²¿ÃŵÄÒµÎñÊä³ö¡£
´Ó¼¼Êõ²ãÃæÀ´½²ÎÒÃÇ×ö×é¼þ»¯µÄÄ¿±êÊÇΪÁË¿ÉÒÔ×öµ½¼õ»º´úÂ븯»¯¹ý³Ì£¬¼Ó¿ì±àÒëʱ¼ä£¬Ä£¿é·ÖȨ¹ÜÀí£¬´úÂë¹æ·¶£¬bug¼õÉÙ£¬¶ÀÁ¢¿ª·¢¡¢µ÷ÊÔ¡¢×Ô¶¯»¯±àÒ룬¼¯³ÉµÈµÈ¹¤×÷£¨ºÃÏñºÜÀ÷º¦µÄÑù×Ó£©¡£¸ü½üÒ»²½µÄ½²£¬ÎÒÃÇÐèÒªÒ»Ì××Ô¶¯»¯µÄϵͳÀ´°ïÖúÎÒÃÇÍê³ÉËùÓеÄ×é¼þ¹ÜÀí¹¤×÷£¬Èÿª·¢ÈËÔ±ÄܸüרעÓÚ´úÂë²ãÃæ£¬ÎÞÐè¹ØÐÄÓ¦ÓÃÅäÖã¬ÇþµÀ£¬ÒÔ¼°ÈçºÎ¼¯³ÉµÈÎÊÌâ¡£
×é¼þ¹ÜÀíÑݽøÖ®Â·
ÈκÎÊÂÎï¶¼ÓÐÒ»¸öÑݽøµÄ¹ý³Ì£¬¾ÍÏñÂÞÂí²»ÊÇÒ»Ì콨³ÉµÄÒ»Ñù¡£iOSÕâЩÄê¸÷ÖÖ¼¼Êõ£¬»¨Ñù²ã³ö²»ÇºÃ¶à¹«Ë¾£¬ºÃ¶à´óÅ£ÔÚiOS×é¼þ»¯·½Ãæ·ÖÏí³öÁ˺ö౦¹óµÄ¾Ñ飬ҲÈÃÎÒÃÇÉÙ×ßÁËÐí¶àÍä·¡£¹ØÓÚiOS×é¼þ»¯µÄ×ö·¨Ã¿¼Ò¹«Ë¾¶¼´óͬСÒì£¬ÕæÕýÐèÒªÎÒÃÇÈ¥ÉîÍÚµÄÓ¦¸ÃÊÇÔõô°Ñ×é¼þÓÐÐòµÄ¹ÜÀíÆðÀ´£¬ÕâÒ²ÊÇÎÒÃÇÏëºÍ´ó¼Ò̽ÌÖµÄÄÚÈÝ£¬ÔÚÌÖÂÛ×é¼þ¹ÜÀíÄÚÈÝ֮ǰÎÒÃÇÏȼòµ¥ËµÃ÷ÏÂ×é¼þ»¯ÊµÏֵĴó¸Å˼·¡£
´úÂë½âñî
Cocoapods¹ÜÀí s
´úÂë½âñî
Ê×ÏÈÈëÊֵŤ×÷¾ÍÊÇ´úÂëµÄ½âñÕâÀïÆäʵûÓÐÌ«¶àµÄ¼¼Êõº¬Á¿£¬Ö»Òªµ¨´óÐÄϸ£¬Óмƻ®£¬Ò»¸ö¹¤³Ì×ÜÄܱ»²ð³ÉÒ»¸ö¸ö¶ÀÁ¢µÄÄ£¿é¡£ÎÒÃǰÑÿһ¸ö¶ÀÁ¢µÄÄ£¿é¾Í³ÆÖ®Îª×é¼þ£¬Ï໥֮¼ä²»ÄÜͨ¹ýÓ²±àÂëÒýÓõķ½Ê½½øÐе÷Óá£Í¨ÐÅͨ¹ý×Ô¶¨ÒåµÄÐÒé½øÐС£
×é¼þÔÔò
×é¼þ±»¶¨ÒåΪÁ½ÖÖÀàÐ͵Ä×é¼þ£º»ù´¡×é¼þ£¬ÒµÎñ×é¼þ¡£
»ù´¡×é¼þ¿ÉÒÔ±»ÒµÎñ×é¼þÒÀÀµ£¬»ù´¡×é¼þ²»¿ÉÒÀÀµÒµÎñ×é¼þ¡£
ÒµÎñ×é¼þ²»¿ÉÒÀÀµÒµÎñ×é¼þ¡£
×Ô¶¨ÒåÐÒé
×é¼þÖ®¼äͨÐÅ×ñÑÒ»Ì××Ô¶¨ÒåµÄÐÒéͨÐÅ£¬ÊµÏֵķ½Ê½ÍøÉÏÓÐЩ¿ªÔ´µÄÏîÄ¿£¬ÎÒÃÇ×ۺϸ÷¼ÒʵÏÖ¿¼ÂÇ£¬×îºó¶¨³öµÄÒ»¸ö·½°¸£º×é¼þ¼äµÄͨÐÅÓ¦¸ÃÊÇÇáÁ¿¼¶µÄ£¬µ÷ÓÃÍê¾Í×ߣ¬²»ÁôºÛ¼££¬²»ÐèҪά»¤Í¨ÐÅÊý¾Ý¡£
´óÖÂʵÏÖÈçÏ£º

ÎÒÃÇʵÏÖÒ»¸öJDRouterµÄ×é¼þ£¬ÓÃÀ´ÊµÏÖ×é¼þÓë×é¼þÖ®¼äµÄͨÐÅ¡£Ö»±©Â¶Ò»¸öÍ·Îļþ£¬Á½¸ö·½·¨£ºÊäÈ룬Êä³ö£¨ºê¹æ·¶£©¡£
ÊäÈ루Aµ÷ÓÃB£©
router://JDBClass/getString?name=Steven |
Êä³ö£¨B±»Aµ÷Óã©
+(id)getDataWithString:(NSString
*)name {
NSString *str = [NSString stringWithFormat:@"HI,
%@", name];
return str;
} |
ÊäÈë˵Ã÷
ͨ¹ýJDRouterµ÷Óã¬ÀàËÆÓÚÓÐÕâÑùÒ»¸ö·½·¨£¬Íê³Éaµ½bµÄͨÐÅ
id g = [JDRouter
openURL: @"router://JDBClass/getString?name=
steven" arg:nil error:nil completion:nil]; |
Êä³öͳһ
ÊäÈëµÄ·½·¨Í³Ò»ÁË£¬Êä³öÒ²µÃͳһ£¬Ã»ÓÐ¹æ¾Ø²»³É·½Ô²£¬µ«ÓÖ²»ÄÜͨ¹ý˵½ÌµÄ·½Ê½ÒªÇó´ó¼ÒÈ¥ÌṩÊä³ö·½·¨¡£Èç¹ûÓÐÒ»¸öͳһµÄ°ì·¨¿ÉÒÔ²»ÐèÒªÐÒé×¢²á£¬ÐÒé¹ÜÀíµÄ»úÖÆ£¬Ö±½Óдһ¸öÀà·½·¨¿ÉÒÔÈÃJDRouterͨ¹ýURIÀïµÄÄÚÈÝ¿ÉÒÔÓ³Éä¹ýÈ¥¾ÍºÃ°ìÁË£¬ÎÒÃÇʹÓúêÌæ»»£¬ÔÚJDRouterÀïÌṩһ¸öÊä³öµÄ¹æ·¶£¬ÀàËÆÕâÑù£º
#define JDROUTER_EXTERN_METHOD(m,i,p,c)
+ (id) routerHandle_##m##_##i:(NSDictionary*)arg
callback:(Completion)callback |
Êä³ö¹æ·¶Í³Ò»£¬½«ÉÏÃæµÄÀà·½·¨±äΪºêÌæ»»Êä³ö£º
JDROUTER_EXTERN_METHOD
(JDBClass, eat, getString, callback) {
NSString *str = [NSString stringWithFormat:@"HI,
%@", name];
return str;
} |
AppDelegateÈë¿Ú½âñî
Ò³ÃæÈÝÆ÷£¬µÚÈý·½SDK³õʼ»¯¹¤×÷ÐèÒªÔÚÆô¶¯Ê±Íê³É£¬ÎÒÃÇͨ¹ýhook AppDelegate£¬½«Èë¿ÚËù×öµÄ¹¤×÷½»¸øÒ»¸ö×é¼þÍê³É£¬ÔÚ¸Ã×é¼þÖÐ×¢²áÆäËüÐèÒªÔÚÆô¶¯Ê±µ÷ÓÃAppDelegate·½·¨µÄ×é¼þ£¬ÈÃÿ¸ö×é¼þ¶¼¿ÉÒÔÓµÓÐÒ»ÀàËÆdidFinishLaunchingWithOptions·½·¨¡£
AppDelegateModule×é¼þʵÏÖhook AppDelegate
Èë¿Ú×é¼þ
+ (void) load
{
NSArray *modules = @[@"MainModule"];
NSString *url = @"router: //AppDelegateModule/setDidFinishLaunchingModules";
[JDRouter openURL:url arg: modules error:nil completion:nil];
//
NSString *urlrun = @"router://AppDelegateModule/run";
[JDRouter openURL: urlrun arg:nil error:nil
completion:nil];
} |
ÔÚMainModuleÖÐʵÏÖAppDelegateµÄ·½·¨
static UIWindow
*gWindow = nil;
static UIViewController *gTempViewController =
nil;
+ (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
gWindow = [[UIWindow alloc] initWithFrame:[[UIScreen
mainScreen] bounds]];
[[[UIApplication sharedApplication] delegate]
setWindow:gWindow];
gTempViewController = [[UIViewController alloc]
init];
gTempViewController.view.backgroundColor = [UIColor
redColor];
gWindow.rootViewController = gTempViewController;
[gWindow makeKeyAndVisible];
return YES;
} |
°ÑʵÀý·½·¨¸ÄΪÀà·½·¨
½«ÐèÒªµ÷ÓÃappdelegate·½·¨µÄ×é¼þ£¬ÔÚMainModuleÖÐ×¢²á£¬ÕâÀïµÄmodulesÊǸöÊý¾Ý£¬¿É½â¾öµ÷ÓÃdelegate·½·¨µÄ˳ÐòÎÊÌâ¡£
NSArray *modules = @[@"MainModule", @"ÐèÒªµ÷ÓõÄ×é¼þ"];
Cocoapods¹ÜÀí
´úÂë½âñîºÜ¼òµ¥£¬Ö»Òª×ñѼ¸¸öÔÔò¼´¿É£¬×î¸ù±¾µÄÎÊÌâ¾ÍÊÇÒµÎñÓëÒµÎñÖ®¼ä²»ÄÜÓÐñîºÏ£¬²»È»×é¼þ»¯Õâ¼þʾÍûÓÐÒâÒå¡£ÎÒÃÇͨ¹ýCocoapods°Ñÿһ¸ö×é¼þ¶¼²ð³É¶ÀÁ¢µÄpod¿â¡£´úÂë¿â¹ÜÀíÑ¡Ôñgitlab(¿ªÔ´£¬ÌṩAPI£¬¿É¶þ´Î¿ª·¢)£¬ºóÐøÐèÒª¶Ôÿһ¸ö×é¼þ½øÐÐȨÏÞ¹ÜÀí£¬±ÈÈçÓÐÒ»Ð©Éæ¼°µ½°²È«µÄ×é¼þÖ»Óа²È«×éµÄ¿ª·¢ÈËÔ±¾ßÌåÔ´ÂëȨÏÞ£¬ÆäËûÈËÖ»ÄÜÄõ½¶þ½øÖÆ£¬ÔÙ±ÈÈç×é¼þÐèÒª¾ßÓÐmasterµÄȨÏ޲ſÉÒÔ½øÐз¢²¼£¬¼¯³ÉµÈ¹¤×÷¡£
¹ØÓÚCocoapods£¬ruby£¬gitlab»·¾³´ó¼ÒÍøÉÏËÑË÷һϡ£
×¼±¸¹¤×÷
ͨ¹ýCocoapods´î½¨Ë½Óп⣬´´½¨ÏàÓ¦µÄÄ£°æ¡£
²»ÍƼöCocoapods±àÒë¶þ½øÖÆÎļþ£¬×Ô¼ºÐ´½Å±¾±àÆðÀ´¸üÁé»î¡£
×Ô¶¨Òågem£¬Íê³ÉpodspecÔ´Âë¶þ½øÖÆÇл»¡£
¶þ½øÖÆÎļþ£¨×é¼þ±àÒëΪ¾²Ì¬°ü£©´æ´¢µ½ÄÚ²¿ÔÆ¡£
ʹÓù¤¾ß£¯½Å±¾¹ÜÀípodfile¡£
ϵͳ¹ÜÀípod¿â¡£
¹¤³Ì½á¹¹
ͨ¹ýCocoapods´îµÄ×Ô¶¨Òå¿â£¬×Ô¶¨ÒåÄ£°æ¡£
ÿ¸öͬѧÄõ½µÄ×é¼þ¶¼ÊÇÒ»¸öÏàͬ½á¹¹µÄ¹¤³Ì£¬ËùÐèÒª×öµÄ¹¤×÷¾ÍÊÇÔÚÏàÓ¦µÄPods/Developemnt
Pods/×é¼þ/ClassesϱàÂ룬×é¼þÊä³öÀàͨ¹ýÄ£°æ´´½¨£¬¿ÉÔÚÏàÓ¦µÄÀàÀïʹÓÃJDROUTER_EXTERN_METHODÌṩ½Ó¿Ú¡£
iBiu×é¼þ¹ÜÀíϵͳ
ÒÔÉÏÊÇÐÐÒµÖжÔiOS×é¼þ»¯µÄÒ»¸ö´óÌå˼·¡£Èç¹ûÎÒÃÇÍêÈ«ÊÖ¶¯×öÕâЩ¹¤×÷µÄ»°£¬³É±¾»áºÜ´ó£¬CocoapodsÅäÖÃ˵Ã÷²éѯ£¬×é¼þ°æ±¾ÒÀÀµ£¬Í³Ò»¼¯³ÉµÈµÈ¡£ÎªÁ˽â¾öÕâЩÈËΪ¸ÉÔ¤ËùÒý·¢µÄ¸÷ÖÖÎÊÌ⣬ÎÒÃÇÑз¢ÁË×é¼þ¹ÜÀíϵͳiBiu¡£
Ö÷App½âñ×÷ºÍϵͳÉè¼ÆÊÇͬʱ½øÐеģ¬ËùÒÔ×î³õϵͳֻÊÇΪ¾©¶«iOSÖ÷AppËùÉè¼Æ£¬ÔÚ¶ÀÁ¢³öһЩ×é¼þºó£¬ÎÒÃǾÍÔÚ˼¿¼Ò»¼þÊ£¬ÈÃϵͳ¿É¹ÜÀí¾©¶«ÆäËüµÄApp¡£
È¥Ó¦Óû¯
Èç¹û¹«Ë¾µÄËùÓÐÓ¦ÓÃÈ«²¿¶¼×é¼þ»¯£¬²¢ÇÒ×é¼þ¼äͳһÐÒéͨÐÅ£¬ÄÇôӦÓÃ×îÖÕµÄÊä³ö·½Ê½Ó¦¸Ã¾ÍÏñ¹¤³§¼Ó¹¤Ò»Ñù£¬¼Ó¹¤¹ý³Ì¾ÍÊÇ×é¼þ×éºÏ¹ý³Ì£¬³ö³§Ê±ÌùÉϱêÇ©¡£ÌýÆðÀ´ºÜÀíÏ룬ÊÂʵÉÏÊÇ¿ÉÒÔ×öµ½µÄ£¬´ÓiBiuϵͳÉÏÏßµ½Ä¿Ç°Ò»¸öÔÂʱ¼äÎÒÃǽÓÈë¹ÜÀí×ÅÈý¸öÓ¦ÓðüÀ¨Ö÷App£¬³¬¹ý100¸ö×é¼þ¡£
×é¼þÅäÖñí
×é¼þÈçºÎ×éºÏ±»³éÏó³öÒ»¸ö×é¼þÅäÖÃ±í£¬¼Ç¼Á˲»Í¬Ó¦ÓõÄ×é¼þÅäÖ㬶ÔÓ¦µ½¾ßÌåµÄ×é¼þÔðÈÎÈË£¬°æ±¾£¬¶Ô½Ó²úÆ·£¬²âÊÔÒÔ¼°¿ª·¢£¬Í¨¹ý¹¤¾ßÒ»¼üÍê³É×é¼þµÄ·¢²¼Ó뼯³ÉµÈ¹¤×÷¡£

ÉÏͼ½âÊÍÆðÀ´¾ÍÊÇ£¬¼ÙÈçÓÐÒ»¸öÐéÄâµÄApp-A£¬ÔÚËüϱßÓаüº¬ÁËһϵÁеÄ×é¼þ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý¡°×é¼þÅäÖÃ±í¡±(ÅäÖñíÀï¼Ç¼ÁË×é¼þµÄ°æ±¾£¬ÊÇ·ñΪ¶þ½øÖÆ£¬ÒÀÀµµÈ)¶Ô×é¼þ½øÐÐ×éºÏ£¬×îÖÕÊä³öÎÒÃÇÏëÒªµÄApp¡£
ÔÙ½«ÉϱߵÄÉè¼ÆÉý¼¶Ò»Ï£º

ÈÃÓ¦ÓÿÉÒÔ°üº¬Ó¦Óã¨ÕâÀïËù˵µÄÓ¦ÓÃÊÇÒ»¸öÐéÄâµÄÓ¦Ó㬻òÕß½Ð×öCollection¸üºÏÊÊ£©¡£Collection¿ÉÒÔÈÎÒâ°üº¬ÁíÍâµÄCollection£¬Í¬Ê±¿ÉÒÔÄõ½CollectionϵÄ×é¼þ£¬ÈçÉÏͼ£¬App-AÕâ¸öCollection×îÖÕÊÇÓÐÁíÍâÈý¸öCollectionϵÄ×é¼þËù×éºÏ¶ø³É¡£
ϵͳÉè¼Æ
Ö÷ÒªÓÉÈý´ó¿éÄÚÈݹ¹³É£º
½Å±¾£¨Ìṩ¿ª·¢»·¾³£¬Èç¹ûpod¹ÜÀí£¬git¹ÜÀí£¬Îļþ¹ÜÀíµÈ£©
iBiu¹¤¾ß£¨¿ÉÊÓ»¯£©
iBiu Server£¨ºǫ́¹ÜÀí£¬API£© 
ÎÒÃÇÏ£Íû»¯·±Îª¼ò£¬×îÖÕ¿ª·¢Í¬Ñ§Ö»ÐèÒª°²×°Ò»¸ö¿ÉÊÓ»¯µÄ¹¤¾ß¾Í¿ÉÒÔ×öµ½£º×é¼þ×¢²á£¬×éºÏ£¬·¢²¼£¬¼¯³ÉµÈ¹¤×÷£¬µ«»ù´¡¹¤×÷»¹µÃÒ»²½²½µÄÀ´¡£
µÚÒ»²½£º
ͨ¹ýpodÃüÁî´´½¨ÏàÓ¦µÄ×é¼þ¶ÔÓ¦¿â
pod lib create
$lib_name --template-url=${TEMPLATE_URL} |
µÚ¶þ²½£º
½«´´½¨×é¼þµÄ½Å±¾·â×°£¬ÎÒÃÇÏ£Íû°Ñ½Å±¾·Åµ½iBiu ServerÕą̂»úÆ÷ÉÏ£¬ÈÃÕâ¸ö¹ý³Ì³ÉΪ:¿ª·¢Õß×¢²á->ÉóºË->×Ô¶¯Éú³É×é¼þ->´úÂëÌá½»Gitlab->֪ͨ¿ª·¢Õß¡£
ÎÊÌâÒ»¸ö½ÓÒ»¸öµÄ³öÏÖÁË£º
¿Ó£ºÓÉÓÚ¹«Ë¾ÍøÂçÔÒò£¬²»Í¬Íø¶ÎͬѧÎÞ·¨·ÃÎÊһ̨¹¤×÷ÍøÂç»·¾³ÖеĻúÆ÷¡£
¿Ó£º½Å±¾´´½¨×é¼þÕâ¸ö¹ý³ÌÒÀÀµXcode»·¾³¡£
Ò²¾ÍÊÇ˵ÎÒÃÇÎÞ·¨ÓÃÒ»¸öMac»úÆ÷³äµ±·þÎñÆ÷£¬µ«ÓÖ±ØÐëÒªXcode»·¾³¡£µÚÒ»Ïë·¨¾ÍÊǰÑiBiu Server²¿µ½ÏßÉÏ»·¾³£¬ÕÒһ̨Mac»úÆ÷°Ñ½Å±¾·ÅÉÏÈ¥£¬ÈÃiBiu
Server·ÃÎÊÕą̂Mac£¬µ«ÏßÉÏ»·¾³ÊÇÍêÈ«·µÏò²»»ØÀ´¹¤×÷ÍøÂçµÄ¡£
¿Ó£º»»ÏßÏ»·¾³£¬²¿ÊðiBiu Server£¬»¹ÊÇ·ÃÎʲ»Á˹¤×÷ÍøÂçÖеÄÕą̂Mac¡£
×îºóÖ»ÄÜÔÚiBiu ServerÕą̂»úÆ÷Éϲ¿ÁËÌ×Jenkins£¬Éú³É×é¼þµÄ½Å±¾²¿ÔÚMacÕą̂½ÚµãÉÏ£¬ÎÊÌâ½â¾ö¡££¨Õâ¿éÒ»Ö±ÊǸö²»Ì«ÀíÏëµÄ×ö·¨£¬ÎªÁ˽â¾öÎÊÌâÒ²Ö»ÄÜÕâô×öÁË£©
µÚÈý²½£º
ͳһÓû§Ìåϵ£¬ERPÕ˺ÅÓëiBiu¡¢Gitlab´òͨ¡£
µÚËIJ½£º
ÐÞ¸ÄPodfile
Èç¹ûÊÇÊÖ¶¯ÒýÈë×é¼þµÄ»°£¬Ã¿Ò»¸ö×é¼þ¶ÔÓ¦µÄPodfile¿ÉÄÜ»áÊÇÏÂͼÕâÑù£¬¸Ã×é¼þËùÓеĿª·¢Õߣ¬¶Ô¸Ã×é¼þÒýÈëÐ޸ͼÓпÉÄÜÔì³É³åÍ»¡£

Èç¹û¿ÉÒÔͨ¹ýPodfile¶ÁÈ¡µ½¡°×é¼þÅäÖÃ±í¡±£¬¶øÅäÖñíÓÖ¿ÉÒÔͬ²½µÄ»°£¬Äܽâ¾öµÄÎÊÌâ¾Í²»Ö»ÊdzåÍ»µÄÎÊÌâÁË¡£
ÎÒÃÇ´´½¨ÁËÒ»¸öbiu gem£¬ÓÃÀ´È¥´¦ÀíÅäÖñí½âÎöµÄ¹¤×÷£¬Podfile×îÖÕ±ä³ÉÏÂͼµÄÑù×Ó£¬¿ª·¢ÕßÎÞÐèÊÖ¶¯ÐÞ¸ÄËü¡£

ËùÓй¤×÷¶¼Í¨¹ýmekeup_podsÕâ¸ö·½·¨Íê³É¡£
µÚÎå²½£º
ÎÒÃÇÐèÒª°Ñÿ¸ö×é¼þÔÚ·¢²¼Ê±¶¼¶ÔÓ¦¶þ½øÖÆÎļþÊä³ö£¬ÓйØxcodebuild´ò°ü¶þ½øÖƵĽű¾¾Í²»ÔÚÕâÀïÃèÊöÁË¡£
½«¶þ½øÖÆÍ³Ò»Êä³öΪһ¸öxxxx.framework£¬Ò²·½±ã²é¿´

½Å±¾»á°Ñÿ´Î±àÒëµÄ¸ºÔðÈËÐÅϢдµ½xxxx-umbrella.hÎļþÖУ¬·½±ãÎÊÌâ¸ú×Ù¡£

µÚÁù²½£º
½«ËùÓÐshell½Å±¾Í¨¹ýPackages´ò°ü£¬Ìṩ¸øËùÓпª·¢Õß¿ÉÒÔÖ±½ÓʹÓá£
µÚÆß²½£º
iBiu¿ÉÊÓ»¯¹¤¾ßiBiu Server¶Ë¿ª·¢£¬¹¤¾ßÖ÷Ì幦ÄܵĿª·¢Ê±¼ä²¢Ã»Óл¨ÁËÌ«¶àµÄʱ¼ä£¬Ö÷Ҫʱ¼ä»¹ÊÇ»¨ÔÚÁËÊáÀíÕû¸ö¹ÜÀíÁ÷³ÌÉÏ¡£
µÚ°Ë²½£º
ºÏ²¢iBiu½Å±¾£¬¿ÉÊÓ»¯¹¤¾ß£¬Packages´ò°ü¡£

×é¼þ¹ÜÀíʵ¼ù
ϵͳ¼°¿ÉÊÓ»¯¹¤¾ß
ͨ¹ý¹¤¾ßÉêÇë×é¼þ

¿ª·¢ÕßÑ¡Ôñ¶ÔÓ¦µÄApp£¬ÊäÈëÏàÓ¦µÄ×é¼þÃûµÈÐÅÏ¢£¬½«×¢²áÐÅÏ¢Ìá½»¸øiBiu Server£¬ÏµÍ³¹ÜÀíÔ±»áÊÕµ½×¢²áÓʼþ£¬ÔÚºǫ́Íê³ÉÉóºË¡£Í¬Ê±»áϵͳÓʼþ·¢¸øÏàÓ¦µÄ¿ª·¢Õß¡£
ÉóºË¹ý³Ìͨ¹ýÇ°ÃæÌáµ½µÄ£¬ÏµÍ³»á×Ô¶¯Íê³É´´½¨pod¿â£¬git¿â£¬¿ª·¢ÕßȨÏÞ·ÖÅäµÈ²Ù×÷¡£
×é¼þÉêÇëÈ˼´ÊǸÃ×é¼þµÄ¸ºÔðÈË£¬ÓµÓÿª·¢ÕßȨÏÞ·ÖÅ䣬×é¼þ·¢²¼£¬¼¯³É£¬ÐÒé¹ÜÀíµÈȨÏÞ¡£
ºǫ́¹ÜÀí¿ª·¢ÕßȨÏÞ·ÖÅ䣺

¿ª·¢µ÷ÊÔ×éºÏ°²×°
¿ª·¢ÕßÊÕµ½×é¼þÉóºËÓʼþºó£¬¸ù¾ÝgitµØÖ·ÀÈ¡´úÂ룬ͨ¹ýiBiu¿ÉÊÓ»¯¹¤¾ß´ò¿ª×é¼þ¹¤³Ì£¬¹´Ñ¡Òª×éºÏµÄ×é¼þ½øÐа²×°¡£
Ëù¹´Ñ¡µÄ×é¼þ¿ÉÒÔ¸ù¾Ýµ±Ç°Óû§µÄȨÏÞ·ÖÔ´ÂëÓë¶þ½øÖÆÁ½ÖÖ·½Ê½£¬ÊÇ·ñÒÀÀµ¡£
Èç¹ûijÓû§Ëù×éºÏµÄij¸ö×é¼þÐèÒªµ÷ÊÔ£¬µ«Ã»ÓÐÔ´ÂëȨÏÞ£¬¿ÉÕÒ¸Ã×é¼þµÄ¸ºÔðÈËÒªÇó¿ªÍ¨È¨ÏÞ¡£

Éú³É×é¼þÅäÖñí

¸ù¾ÝËù¹´Ñ¡µÄ×é¼þ£¬Éú³ÉÒ»ÕÅ×é¼þÅäÖÃ±í£¬ÕâʱËù×éºÏ°²×°Éú³ÉµÄApp¼´ÊÇÒ»¸ö¸ù¾ÝÅäÖñíÉú³ÉµÄ¹¤³Ì¡£
¿Ó£ºÅäÖñíÊÇÍÑÀë×é¼þ¹¤³Ì¶ÀÁ¢´æÔÚµÄÒ»¸öJSONÃèÊöÎļþ£¬ÒòΪÿ¸ö¿ª·¢Õß¶Ôÿһ¸ö×é¼þËùÓµÓеÄȨÏÞ²»Ò»Ñù£¬Èç¹û°ÑÅäÖñíËæ¹¤³Ì´úÂëÒ»²¢Ìá½»£¬ºÜ¿ÉÄÜÔì³É±í³åÍ»£¬°²×°²»ÁË×é¼þ¡£½â¾ö°ì·¨¾ÍÊÇʹӵÓÃmasterȨÏÞµÄÓû§¿ÉÒÔ½«±íÄÚÈÝͬ²½ÖÁ·þÎñ¶Ë£¬×é¼þ²ÎÓëÕßÏÂÔØÍ¬²½±í¡£È»ºóÔÚ¼¸¸ö¹Ø¼üµãÑéÖ¤±íÖÐ×é¼þ¶ÔӦȨÏÞ£¬Ã»ÓÐÔ´ÂëȨÏÞµÄÌáʾÓû§×Ô¶¯ÇÐΪ¶þ½øÖÆ·½Ê½¡£
×é¼þ°²×°¹ý³Ì

ÅäÖð汾×éºÏ°²×°
ÓµÓÐ×é¼þmasterȨÏÞµÄÓû§¿ÉÒÔ½«ÏàÓ¦×é¼þ·¢²¼£¬¼¯³Éµ½Ä³¸öÓ¦ÓÃϵÄij¸ö°æ±¾¡£
ÎÒÃǵÄÓ¦Óõü´úÖÜÆÚÒ»°ãΪһ¸öÔÂ×óÓÒ£¬¶ÔÓ¦µ½²»Í¬µÄÏîÄ¿£¬²»Í¬µÄ²úÆ·£¬Ñз¢¼°²âÊÔ¡£Í¨¹ýiBiuϵͳ¿ÉÒÔ×öµ½²¢ÐаæÒÔ±¾¿ª·¢£¬²âÊÔ£¬¼¯³É¡£
×é¼þµÄ·¢²¼£¬¼¯³É²»ÊÜÏîÄ¿µÄʱ¼äÏÞÖÆ£¬ËæÊ±¿ÉÒÔ·¢²¼¡£
AppÕûÌ弯³É£¬×é¼þµÄ¼¯³ÉÐèÒª°´ÏîÄ¿Á÷³Ì½øÐУ¬×é¼þÐèÒªÔÚApp»Ø¹é²âÊÔʱǰÁ½Ì켯³É¡£µã»÷iBiu¿ÉÊÓ»¯¹¤¾ßÓÒÉϽǼ¯³É°´Å¤£¬Ñ¡Ôñ×é¼þ°æ±¾£¬¼¯³Éµ½Ä³¸öÓ¦ÓõÄij¸ö°æ±¾ÖС£
ÿ¸öÓ¦ÓõÄÿ¸ö°æ±¾£¬ÔÚ×é¼þ¼¯³É½×¶ÎÉú³ÉÏàÓ¦µÄ×é¼þÅäÖÃ±í£¬³¬¹ýÕâ¸öʱ¼ä£¬Ó¦ÓÃ°æ±¾Ëø¶¨£¬×é¼þ½«ÎÞ·¨ÔÙ¼¯³Éµ½¸ÃÓ¦Óð汾ÖС£
ÀýÈçÓ¦Óá°¾©¶«¡±µ±Ç°Òª·¢²¼AppStoreµÄ°æ±¾Îª6.1.3£¬·¢²¼Ê±¼ä7ÔÂ19£¬µ¹ÍÆÊ±¼ä£¬»Ò¶È1ÖÜ£¬¼¯³É²âÊÔΪ1ÖÜ£¬ÄÇôËùÓиð汾µÄ×é¼þ±ØÐëÔÚÁ½ÖÜǰÁ½ÌìÍê³É¼¯³É¡£¹ýÆÚ²»ºò£¬Ö»Äܰ´×é¼þÉÏÒ»¸öÎȶ¨°æ±¾¼¯³É£¬Èç¹ûÓÐÌØÊâÇé¿öÐèÌØÊâ¶Ô´ý¡£
JDRouterÐÒé¹ÜÀí
ÿ¸öÒµÎñ×é¼þ¶¼Ó¦¸ÃÌṩJDRouter½Ó¿Ú£¬Í¨¹ýºǫ́¹ÜÀíÕâЩ½Ó¿Ú£¬·½±ãËùÓпª·¢Õß²éѯ¡£

³ÖÐø¼¯³É¸ÄÔì
Ó¦ÓÃÒÔǰÊÇ¿ÉÒÔ³ÖÐø¼¯³ÉµÄ£¬iBiuϵͳ×é¼þ¹ÜÀíºóÐèÒª¶Ô³ÖÐø¼¯³Éϵͳ×öһЩ¸ÄÔì¡£ÔÚÏàÓ¦µÄ½Úµã»úÆ÷Éϰ²×°iBiu°²×°°ü£¬ÔËÐкó×Ô¶¯°²×°»·¾³¡£
CIͨ¹ýiBiu ServerËùÌṩµÄAPI£¬½Å±¾¼ì²â´´½¨XXXXAppModule£¨¿Õ×é¼þ£©£¬»ñȡij¸öÓ¦ÓõÄij¸ö°æ±¾µÄ×é¼þÅäÖÃ±í°²×°×é¼þ£¬Íê³É´ò°ü¹¤×÷¡£
ͳһÅäÖÃ
×é¼þ»¯´øÀ´µÄÒ»¸öÎÊÌ⣬ÿ¸ö×é¼þ¶ÀÁ¢´æÔÚ£¬¹¤³Ì½á¹¹ÀàËÆÓÚÕâÑù£º

Example for XXXXÊǵ±Ç°×é¼þÔÚ¿ª·¢¹ý³ÌÖÐËùÓÃÀ´²âÊÔ£¬ÑéÖ¤µÄdemo´úÂë¡£
PodsΪ×îÖÕ×é¼þÊä³öʵ¼Ê¹¤³ÌÇøÓò¡£
±àÒë×éºÏµÄ×é¼þ£¬Êä³ö×îÖÕµÄApp£¬Èç¹ûÔÚij¸ö°æ±¾ÐèÒª¸üÐÂicon»òÆô¶¯Í¼Ôõô°ì£¿×ܲ»¿ÉÄÜÈÃÿ¸ö×é¼þÔÚExampleÖÐÐÞ¸ÄÕâЩ×ÊÔ´»òÊý¾Ý¡£
ÓÐûÓпÉÒÔͳһÕâЩÅäÖõİ취£¬¶øÓÖû±ØÒªÈÿª·¢ÕßÈËΪµÄÌæ»»¹ÜÀí£¿
´ð°¸Êǿ϶¨µÄ£¬ÎÒÃÇÔÚiBiu¿ÉÊÓ»¯¹¤¾ßÖмÓÈëÁËÓ¦Óð汾µÄÅäÖÃÀÈ¡½Å±¾¹¦ÄÜ¡£¼òµ¥µã½²¾ÍÊǰ²×°×éºÏʱִÐÐÔ¶³Ì½Å±¾¡£ÔÚiBiuºǫ́Õë¶ÔÓ¦Óð汾ÅäÖÃÏàÓ¦µÄ½Å±¾£¬¿ÉÒÔÐ޸Ť³ÌÈÎÒâÅäÖá£

ÕâÊÇÒ»¶Î¼ì²âÌæ»»iconµÄ½Å±¾£¬Í¨¹ý°²×°×é¼þʱ¿ÉÖ´ÐÐÔ¶³Ì½Å±¾£¬ÄÜ×öµÄÊÂÇé²»½öÏÞÓÚÌæ»»¸öͼƬÕâô¼òµ¥£¬ÓÉÓÚ¿ÉÖ´ÐÐÔ¶³Ì½Å±¾È¨ÏÞÌ«´ó£¬¸Ã¹¦ÄÜʹÓû¹ÊÇÐèÒª½÷É÷¡£
×îºó
¸ÃÎÄÕÂÖ÷ÒªÃèÊö¾©¶«iOS×é¼þ¹ÜÀíµÄ½â¾ö˼·£¬ÓÉÓÚÄÚÈݹý¶à£¬ÎÞ·¨Õ¹¿ªÏ¸½²Ã¿¸ö»·½Ú£¬¶ÁÕßÅóÓÑÈç¹û¶ÔijЩϸ½Ú¸ÐÐËȤ¿ÉÒÔÁôÑÔ£¬ÎÒÃÇÓÐÕë¶ÔÐÔµÄÁí¿ª×¨Ìâ¡£ |