cocoaout 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGES.md +5 -0
- data/cocoaout.gemspec +1 -1
- data/lib/cocoaout/command.rb +4 -3
- data/spec/projects/COMacApp/COMacApp.xcodeproj/project.pbxproj +480 -0
- data/spec/projects/COMacApp/COMacApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/projects/COMacApp/COMacApp.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/spec/projects/COMacApp/COMacApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/COMacApp.xcscheme +96 -0
- data/spec/projects/COMacApp/COMacApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
- data/spec/projects/COMacApp/COMacApp/Base.lproj/MainMenu.xib +467 -0
- data/spec/projects/COMacApp/COMacApp/COMacApp-Info.plist +34 -0
- data/spec/projects/COMacApp/COMacApp/COMacApp-Prefix.pch +9 -0
- data/spec/projects/COMacApp/COMacApp/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
- data/spec/projects/COMacApp/COMacApp/MXAppDelegate.h +15 -0
- data/spec/projects/COMacApp/COMacApp/MXAppDelegate.m +18 -0
- data/spec/projects/COMacApp/COMacApp/en.lproj/Credits.rtf +29 -0
- data/spec/projects/COMacApp/COMacApp/en.lproj/InfoPlist.strings +2 -0
- data/spec/projects/COMacApp/COMacApp/main.m +14 -0
- data/spec/projects/COMacApp/COMacAppTests/COMacAppTests-Info.plist +22 -0
- data/spec/projects/COMacApp/COMacAppTests/COMacAppTests.m +34 -0
- data/spec/projects/COMacApp/COMacAppTests/en.lproj/InfoPlist.strings +2 -0
- data/spec/projects/COMacApp/Cocoaoutfile +15 -0
- data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.pbxproj +496 -0
- data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/spec/projects/COiOSApp/COiOSApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/COiOSApp.xcscheme +96 -0
- data/spec/projects/COiOSApp/COiOSApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
- data/spec/projects/COiOSApp/COiOSApp/Base.lproj/Main_iPad.storyboard +135 -0
- data/spec/projects/COiOSApp/COiOSApp/Base.lproj/Main_iPhone.storyboard +104 -0
- data/spec/projects/COiOSApp/COiOSApp/COiOSApp-Info.plist +59 -0
- data/spec/projects/COiOSApp/COiOSApp/COiOSApp-Prefix.pch +16 -0
- data/spec/projects/COiOSApp/COiOSApp/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
- data/spec/projects/COiOSApp/COiOSApp/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
- data/spec/projects/COiOSApp/COiOSApp/MXAppDelegate.h +15 -0
- data/spec/projects/COiOSApp/COiOSApp/MXAppDelegate.m +51 -0
- data/spec/projects/COiOSApp/COiOSApp/MXDetailViewController.h +16 -0
- data/spec/projects/COiOSApp/COiOSApp/MXDetailViewController.m +72 -0
- data/spec/projects/COiOSApp/COiOSApp/MXMasterViewController.h +17 -0
- data/spec/projects/COiOSApp/COiOSApp/MXMasterViewController.m +126 -0
- data/spec/projects/COiOSApp/COiOSApp/en.lproj/InfoPlist.strings +2 -0
- data/spec/projects/COiOSApp/COiOSApp/main.m +18 -0
- data/spec/projects/COiOSApp/COiOSAppTests/COiOSAppTests-Info.plist +22 -0
- data/spec/projects/COiOSApp/COiOSAppTests/COiOSAppTests.m +34 -0
- data/spec/projects/COiOSApp/COiOSAppTests/en.lproj/InfoPlist.strings +2 -0
- data/spec/projects/bg.png +0 -0
- metadata +84 -2
@@ -0,0 +1,53 @@
|
|
1
|
+
{
|
2
|
+
"images" : [
|
3
|
+
{
|
4
|
+
"idiom" : "iphone",
|
5
|
+
"size" : "29x29",
|
6
|
+
"scale" : "2x"
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"idiom" : "iphone",
|
10
|
+
"size" : "40x40",
|
11
|
+
"scale" : "2x"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"idiom" : "iphone",
|
15
|
+
"size" : "60x60",
|
16
|
+
"scale" : "2x"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"idiom" : "ipad",
|
20
|
+
"size" : "29x29",
|
21
|
+
"scale" : "1x"
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"idiom" : "ipad",
|
25
|
+
"size" : "29x29",
|
26
|
+
"scale" : "2x"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"idiom" : "ipad",
|
30
|
+
"size" : "40x40",
|
31
|
+
"scale" : "1x"
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"idiom" : "ipad",
|
35
|
+
"size" : "40x40",
|
36
|
+
"scale" : "2x"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"idiom" : "ipad",
|
40
|
+
"size" : "76x76",
|
41
|
+
"scale" : "1x"
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"idiom" : "ipad",
|
45
|
+
"size" : "76x76",
|
46
|
+
"scale" : "2x"
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"info" : {
|
50
|
+
"version" : 1,
|
51
|
+
"author" : "xcode"
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
{
|
2
|
+
"images" : [
|
3
|
+
{
|
4
|
+
"orientation" : "portrait",
|
5
|
+
"idiom" : "iphone",
|
6
|
+
"extent" : "full-screen",
|
7
|
+
"minimum-system-version" : "7.0",
|
8
|
+
"scale" : "2x"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"orientation" : "portrait",
|
12
|
+
"idiom" : "iphone",
|
13
|
+
"subtype" : "retina4",
|
14
|
+
"extent" : "full-screen",
|
15
|
+
"minimum-system-version" : "7.0",
|
16
|
+
"scale" : "2x"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"orientation" : "portrait",
|
20
|
+
"idiom" : "ipad",
|
21
|
+
"extent" : "full-screen",
|
22
|
+
"minimum-system-version" : "7.0",
|
23
|
+
"scale" : "1x"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"orientation" : "landscape",
|
27
|
+
"idiom" : "ipad",
|
28
|
+
"extent" : "full-screen",
|
29
|
+
"minimum-system-version" : "7.0",
|
30
|
+
"scale" : "1x"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"orientation" : "portrait",
|
34
|
+
"idiom" : "ipad",
|
35
|
+
"extent" : "full-screen",
|
36
|
+
"minimum-system-version" : "7.0",
|
37
|
+
"scale" : "2x"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"orientation" : "landscape",
|
41
|
+
"idiom" : "ipad",
|
42
|
+
"extent" : "full-screen",
|
43
|
+
"minimum-system-version" : "7.0",
|
44
|
+
"scale" : "2x"
|
45
|
+
}
|
46
|
+
],
|
47
|
+
"info" : {
|
48
|
+
"version" : 1,
|
49
|
+
"author" : "xcode"
|
50
|
+
}
|
51
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
//
|
2
|
+
// MXAppDelegate.h
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <UIKit/UIKit.h>
|
10
|
+
|
11
|
+
@interface MXAppDelegate : UIResponder <UIApplicationDelegate>
|
12
|
+
|
13
|
+
@property (strong, nonatomic) UIWindow *window;
|
14
|
+
|
15
|
+
@end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
//
|
2
|
+
// MXAppDelegate.m
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "MXAppDelegate.h"
|
10
|
+
|
11
|
+
@implementation MXAppDelegate
|
12
|
+
|
13
|
+
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
14
|
+
{
|
15
|
+
// Override point for customization after application launch.
|
16
|
+
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
|
17
|
+
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
|
18
|
+
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
|
19
|
+
splitViewController.delegate = (id)navigationController.topViewController;
|
20
|
+
}
|
21
|
+
return YES;
|
22
|
+
}
|
23
|
+
|
24
|
+
- (void)applicationWillResignActive:(UIApplication *)application
|
25
|
+
{
|
26
|
+
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
27
|
+
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
28
|
+
}
|
29
|
+
|
30
|
+
- (void)applicationDidEnterBackground:(UIApplication *)application
|
31
|
+
{
|
32
|
+
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
33
|
+
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
34
|
+
}
|
35
|
+
|
36
|
+
- (void)applicationWillEnterForeground:(UIApplication *)application
|
37
|
+
{
|
38
|
+
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
|
39
|
+
}
|
40
|
+
|
41
|
+
- (void)applicationDidBecomeActive:(UIApplication *)application
|
42
|
+
{
|
43
|
+
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
44
|
+
}
|
45
|
+
|
46
|
+
- (void)applicationWillTerminate:(UIApplication *)application
|
47
|
+
{
|
48
|
+
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
49
|
+
}
|
50
|
+
|
51
|
+
@end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
//
|
2
|
+
// MXDetailViewController.h
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <UIKit/UIKit.h>
|
10
|
+
|
11
|
+
@interface MXDetailViewController : UIViewController <UISplitViewControllerDelegate>
|
12
|
+
|
13
|
+
@property (strong, nonatomic) id detailItem;
|
14
|
+
|
15
|
+
@property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
|
16
|
+
@end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
//
|
2
|
+
// MXDetailViewController.m
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "MXDetailViewController.h"
|
10
|
+
|
11
|
+
@interface MXDetailViewController ()
|
12
|
+
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
|
13
|
+
- (void)configureView;
|
14
|
+
@end
|
15
|
+
|
16
|
+
@implementation MXDetailViewController
|
17
|
+
|
18
|
+
#pragma mark - Managing the detail item
|
19
|
+
|
20
|
+
- (void)setDetailItem:(id)newDetailItem
|
21
|
+
{
|
22
|
+
if (_detailItem != newDetailItem) {
|
23
|
+
_detailItem = newDetailItem;
|
24
|
+
|
25
|
+
// Update the view.
|
26
|
+
[self configureView];
|
27
|
+
}
|
28
|
+
|
29
|
+
if (self.masterPopoverController != nil) {
|
30
|
+
[self.masterPopoverController dismissPopoverAnimated:YES];
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
- (void)configureView
|
35
|
+
{
|
36
|
+
// Update the user interface for the detail item.
|
37
|
+
|
38
|
+
if (self.detailItem) {
|
39
|
+
self.detailDescriptionLabel.text = [self.detailItem description];
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
- (void)viewDidLoad
|
44
|
+
{
|
45
|
+
[super viewDidLoad];
|
46
|
+
// Do any additional setup after loading the view, typically from a nib.
|
47
|
+
[self configureView];
|
48
|
+
}
|
49
|
+
|
50
|
+
- (void)didReceiveMemoryWarning
|
51
|
+
{
|
52
|
+
[super didReceiveMemoryWarning];
|
53
|
+
// Dispose of any resources that can be recreated.
|
54
|
+
}
|
55
|
+
|
56
|
+
#pragma mark - Split view
|
57
|
+
|
58
|
+
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
|
59
|
+
{
|
60
|
+
barButtonItem.title = NSLocalizedString(@"Master", @"Master");
|
61
|
+
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
|
62
|
+
self.masterPopoverController = popoverController;
|
63
|
+
}
|
64
|
+
|
65
|
+
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
|
66
|
+
{
|
67
|
+
// Called when the view is shown again in the split view, invalidating the button and popover controller.
|
68
|
+
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
|
69
|
+
self.masterPopoverController = nil;
|
70
|
+
}
|
71
|
+
|
72
|
+
@end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
//
|
2
|
+
// MXMasterViewController.h
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <UIKit/UIKit.h>
|
10
|
+
|
11
|
+
@class MXDetailViewController;
|
12
|
+
|
13
|
+
@interface MXMasterViewController : UITableViewController
|
14
|
+
|
15
|
+
@property (strong, nonatomic) MXDetailViewController *detailViewController;
|
16
|
+
|
17
|
+
@end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
//
|
2
|
+
// MXMasterViewController.m
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "MXMasterViewController.h"
|
10
|
+
|
11
|
+
#import "MXDetailViewController.h"
|
12
|
+
|
13
|
+
@interface MXMasterViewController () {
|
14
|
+
NSMutableArray *_objects;
|
15
|
+
}
|
16
|
+
@end
|
17
|
+
|
18
|
+
@implementation MXMasterViewController
|
19
|
+
|
20
|
+
- (void)awakeFromNib
|
21
|
+
{
|
22
|
+
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
|
23
|
+
self.clearsSelectionOnViewWillAppear = NO;
|
24
|
+
self.preferredContentSize = CGSizeMake(320.0, 600.0);
|
25
|
+
}
|
26
|
+
[super awakeFromNib];
|
27
|
+
}
|
28
|
+
|
29
|
+
- (void)viewDidLoad
|
30
|
+
{
|
31
|
+
[super viewDidLoad];
|
32
|
+
// Do any additional setup after loading the view, typically from a nib.
|
33
|
+
self.navigationItem.leftBarButtonItem = self.editButtonItem;
|
34
|
+
|
35
|
+
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
|
36
|
+
self.navigationItem.rightBarButtonItem = addButton;
|
37
|
+
self.detailViewController = (MXDetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
|
38
|
+
}
|
39
|
+
|
40
|
+
- (void)didReceiveMemoryWarning
|
41
|
+
{
|
42
|
+
[super didReceiveMemoryWarning];
|
43
|
+
// Dispose of any resources that can be recreated.
|
44
|
+
}
|
45
|
+
|
46
|
+
- (void)insertNewObject:(id)sender
|
47
|
+
{
|
48
|
+
if (!_objects) {
|
49
|
+
_objects = [[NSMutableArray alloc] init];
|
50
|
+
}
|
51
|
+
[_objects insertObject:[NSDate date] atIndex:0];
|
52
|
+
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
|
53
|
+
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
|
54
|
+
}
|
55
|
+
|
56
|
+
#pragma mark - Table View
|
57
|
+
|
58
|
+
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
59
|
+
{
|
60
|
+
return 1;
|
61
|
+
}
|
62
|
+
|
63
|
+
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
64
|
+
{
|
65
|
+
return _objects.count;
|
66
|
+
}
|
67
|
+
|
68
|
+
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
69
|
+
{
|
70
|
+
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
|
71
|
+
|
72
|
+
NSDate *object = _objects[indexPath.row];
|
73
|
+
cell.textLabel.text = [object description];
|
74
|
+
return cell;
|
75
|
+
}
|
76
|
+
|
77
|
+
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
|
78
|
+
{
|
79
|
+
// Return NO if you do not want the specified item to be editable.
|
80
|
+
return YES;
|
81
|
+
}
|
82
|
+
|
83
|
+
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
|
84
|
+
{
|
85
|
+
if (editingStyle == UITableViewCellEditingStyleDelete) {
|
86
|
+
[_objects removeObjectAtIndex:indexPath.row];
|
87
|
+
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
88
|
+
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
|
89
|
+
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
/*
|
94
|
+
// Override to support rearranging the table view.
|
95
|
+
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
|
96
|
+
{
|
97
|
+
}
|
98
|
+
*/
|
99
|
+
|
100
|
+
/*
|
101
|
+
// Override to support conditional rearranging of the table view.
|
102
|
+
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
|
103
|
+
{
|
104
|
+
// Return NO if you do not want the item to be re-orderable.
|
105
|
+
return YES;
|
106
|
+
}
|
107
|
+
*/
|
108
|
+
|
109
|
+
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
110
|
+
{
|
111
|
+
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
|
112
|
+
NSDate *object = _objects[indexPath.row];
|
113
|
+
self.detailViewController.detailItem = object;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
|
118
|
+
{
|
119
|
+
if ([[segue identifier] isEqualToString:@"showDetail"]) {
|
120
|
+
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
|
121
|
+
NSDate *object = _objects[indexPath.row];
|
122
|
+
[[segue destinationViewController] setDetailItem:object];
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
@end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//
|
2
|
+
// main.m
|
3
|
+
// COiOSApp
|
4
|
+
//
|
5
|
+
// Created by Jason Lee on 13-10-17.
|
6
|
+
// Copyright (c) 2013年 taobao. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <UIKit/UIKit.h>
|
10
|
+
|
11
|
+
#import "MXAppDelegate.h"
|
12
|
+
|
13
|
+
int main(int argc, char * argv[])
|
14
|
+
{
|
15
|
+
@autoreleasepool {
|
16
|
+
return UIApplicationMain(argc, argv, nil, NSStringFromClass([MXAppDelegate class]));
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>en</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>${EXECUTABLE_NAME}</string>
|
9
|
+
<key>CFBundleIdentifier</key>
|
10
|
+
<string>com.taobao.${PRODUCT_NAME:rfc1034identifier}</string>
|
11
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
12
|
+
<string>6.0</string>
|
13
|
+
<key>CFBundlePackageType</key>
|
14
|
+
<string>BNDL</string>
|
15
|
+
<key>CFBundleShortVersionString</key>
|
16
|
+
<string>1.0</string>
|
17
|
+
<key>CFBundleSignature</key>
|
18
|
+
<string>????</string>
|
19
|
+
<key>CFBundleVersion</key>
|
20
|
+
<string>1</string>
|
21
|
+
</dict>
|
22
|
+
</plist>
|