├── preview.gif
├── Core NFC Example.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── anon.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
├── xcuserdata
│ └── anon.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── project.pbxproj
├── Core NFC Example
├── Supporting Files
│ ├── Core NFC Example.entitlements
│ ├── main.m
│ └── Info.plist
├── Scenes
│ ├── ViewController.h
│ └── ViewController.m
├── AppDelegate.h
├── UI
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ └── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ └── Contents.json
└── AppDelegate.m
├── README.md
└── .gitignore
/preview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/x43x61x69/Core-NFC-Example/HEAD/preview.gif
--------------------------------------------------------------------------------
/Core NFC Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Core NFC Example.xcodeproj/project.xcworkspace/xcuserdata/anon.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/x43x61x69/Core-NFC-Example/HEAD/Core NFC Example.xcodeproj/project.xcworkspace/xcuserdata/anon.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Core NFC Example/Supporting Files/Core NFC Example.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.nfc.readersession.formats
6 |
7 | NDEF
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Core NFC Example.xcodeproj/xcuserdata/anon.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Core NFC Example.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Core NFC Example/Scenes/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Core NFC Example
4 | //
5 | // The MIT License (MIT)
6 | //
7 | // Copyright © 2017 Zhi-Wei Cai. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in all
17 | // copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | // SOFTWARE.
26 | //
27 |
28 | #import
29 |
30 | @interface ViewController : UIViewController
31 |
32 |
33 | @end
34 |
35 |
--------------------------------------------------------------------------------
/Core NFC Example/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Core NFC Example
4 | //
5 | // The MIT License (MIT)
6 | //
7 | // Copyright © 2017 Zhi-Wei Cai. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in all
17 | // copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | // SOFTWARE.
26 | //
27 |
28 | #import
29 |
30 | @interface AppDelegate : UIResponder
31 |
32 | @property (strong, nonatomic) UIWindow *window;
33 |
34 |
35 | @end
36 |
37 |
--------------------------------------------------------------------------------
/Core NFC Example/Supporting Files/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Core NFC Example
4 | //
5 | // The MIT License (MIT)
6 | //
7 | // Copyright © 2017 Zhi-Wei Cai. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in all
17 | // copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | // SOFTWARE.
26 | //
27 |
28 | #import
29 | #import "AppDelegate.h"
30 |
31 | int main(int argc, char * argv[]) {
32 | @autoreleasepool {
33 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Core NFC Example
2 |
3 | **Core NFC Example** is an example project which demonstrate the usage of iOS 11 Core NFC framework.
4 |
5 | 
6 |
7 | ## Features
8 |
9 | - Read NDEF compatiable NFC Tags.
10 |
11 | ## Requirements
12 |
13 | - Xcode 9.
14 | - iOS 11.
15 | - An iPhone 7 or iPhone 7 Plus.
16 | - An Apple Developer Account and enables NFC reading for your codesigning App ID.
17 |
18 | ### License
19 |
20 | ```
21 | The MIT License (MIT)
22 |
23 | Copyright © 2017 Zhi-Wei Cai. All rights reserved.
24 |
25 | Permission is hereby granted, free of charge, to any person obtaining a copy
26 | of this software and associated documentation files (the "Software"), to deal
27 | in the Software without restriction, including without limitation the rights
28 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
29 | copies of the Software, and to permit persons to whom the Software is
30 | furnished to do so, subject to the following conditions:
31 |
32 | The above copyright notice and this permission notice shall be included in all
33 | copies or substantial portions of the Software.
34 |
35 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
36 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
38 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
39 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
40 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
41 | SOFTWARE.
42 | ```
43 |
--------------------------------------------------------------------------------
/Core NFC Example/Supporting Files/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | NFCReaderUsageDescription
24 | Read NFC Tags.
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UIStatusBarStyle
34 | UIStatusBarStyleDefault
35 | UISupportedInterfaceOrientations
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationLandscapeLeft
39 | UIInterfaceOrientationLandscapeRight
40 |
41 | UISupportedInterfaceOrientations~ipad
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationPortraitUpsideDown
45 | UIInterfaceOrientationLandscapeLeft
46 | UIInterfaceOrientationLandscapeRight
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Core NFC Example/UI/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Core NFC Example/UI/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Core NFC Example/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // Core NFC Example
4 | //
5 | // The MIT License (MIT)
6 | //
7 | // Copyright © 2017 Zhi-Wei Cai. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in all
17 | // copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | // SOFTWARE.
26 | //
27 |
28 | #import "AppDelegate.h"
29 |
30 | @interface AppDelegate ()
31 |
32 | @end
33 |
34 | @implementation AppDelegate
35 |
36 |
37 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
38 | // Override point for customization after application launch.
39 | return YES;
40 | }
41 |
42 |
43 | - (void)applicationWillResignActive:(UIApplication *)application {
44 | // 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.
45 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
46 | }
47 |
48 |
49 | - (void)applicationDidEnterBackground:(UIApplication *)application {
50 | // 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.
51 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
52 | }
53 |
54 |
55 | - (void)applicationWillEnterForeground:(UIApplication *)application {
56 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
57 | }
58 |
59 |
60 | - (void)applicationDidBecomeActive:(UIApplication *)application {
61 | // 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.
62 | }
63 |
64 |
65 | - (void)applicationWillTerminate:(UIApplication *)application {
66 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
67 | }
68 |
69 |
70 | @end
71 |
--------------------------------------------------------------------------------
/Core NFC Example/Scenes/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // Core NFC Example
4 | //
5 | // The MIT License (MIT)
6 | //
7 | // Copyright © 2017 Zhi-Wei Cai. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in all
17 | // copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | // SOFTWARE.
26 | //
27 |
28 | #import "ViewController.h"
29 |
30 | @import CoreNFC;
31 |
32 | @interface ViewController ()
33 |
34 | @property (nonatomic, strong) NFCNDEFReaderSession *session;
35 | @property (nonatomic, strong) NFCNDEFReaderSession *alert;
36 |
37 | @property (nonatomic, weak) IBOutlet UIButton *scanButton;
38 | @property (nonatomic, weak) IBOutlet UITextView *logView;
39 |
40 | @end
41 |
42 | @implementation ViewController
43 |
44 | - (void)viewDidLoad
45 | {
46 | [super viewDidLoad];
47 |
48 | _scanButton.layer.cornerRadius = 4.f;
49 | _scanButton.layer.borderWidth = 1.f;
50 | _scanButton.layer.borderColor = _scanButton.currentTitleColor.CGColor;
51 | }
52 |
53 | - (void)viewDidAppear:(BOOL)animated
54 | {
55 | [super viewDidAppear:animated];
56 | }
57 |
58 | - (void)dealloc
59 | {
60 | [_session invalidateSession];
61 | }
62 |
63 | - (UIStatusBarStyle)preferredStatusBarStyle
64 | {
65 | return UIStatusBarStyleLightContent;
66 | }
67 |
68 | #pragma mark - NFCNDEFReaderSessionDelegate
69 |
70 | - (void)readerSession:(nonnull NFCNDEFReaderSession *)session didInvalidateWithError:(nonnull NSError *)error
71 | {
72 | NSLog(@"Error: %@", [error debugDescription]);
73 |
74 | if (error.code == NFCReaderSessionInvalidationErrorUserCanceled) {
75 | // User cancellation.
76 | return;
77 | }
78 |
79 | dispatch_async(dispatch_get_main_queue(), ^{
80 | _logView.text = [NSString stringWithFormat:@"[%@] Error: %@ (%ld)\n%@",
81 | [NSDate date],
82 | [error localizedDescription],
83 | error.code,
84 | _logView.text];
85 | });
86 | }
87 |
88 | - (void)readerSession:(nonnull NFCNDEFReaderSession *)session didDetectNDEFs:(nonnull NSArray *)messages
89 | {
90 | for (NFCNDEFMessage *message in messages) {
91 | for (NFCNDEFPayload *payload in message.records) {
92 | NSLog(@"Payload: %@", payload);
93 | const NSDate *date = [NSDate date];
94 | dispatch_async(dispatch_get_main_queue(), ^{
95 | _logView.text = [NSString stringWithFormat:
96 | @"[%@] Identifier: %@ (%@)\n"
97 | @"[%@] Type: %@ (%@)\n"
98 | @"[%@] Format: %d\n"
99 | @"[%@] Payload: %@ (%@)\n%@",
100 | date,
101 | payload.identifier,
102 | [[NSString alloc] initWithData:payload.identifier
103 | encoding:NSASCIIStringEncoding],
104 | date,
105 | payload.type,
106 | [[NSString alloc] initWithData:payload.type
107 | encoding:NSASCIIStringEncoding],
108 | date,
109 | payload.typeNameFormat,
110 | date,
111 | payload.payload,
112 | [[NSString alloc] initWithData:payload.payload
113 | encoding:NSASCIIStringEncoding],
114 | _logView.text];
115 | });
116 | }
117 | }
118 | }
119 |
120 | #pragma mark - Methods
121 |
122 | - (void)beginSession
123 | {
124 | _session
125 | = [[NFCNDEFReaderSession alloc] initWithDelegate:self
126 | queue:dispatch_queue_create(NULL,
127 | DISPATCH_QUEUE_CONCURRENT)
128 | invalidateAfterFirstRead:NO];
129 | [_session beginSession];
130 | }
131 |
132 | #pragma mark - IBActions
133 |
134 | - (IBAction)scan:(id)sender
135 | {
136 | [self beginSession];
137 | }
138 |
139 | - (IBAction)clear:(id)sender
140 | {
141 | _logView.text = @"";
142 | }
143 |
144 | @end
145 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #########################
2 | # .gitignore file for Xcode4 and Xcode5 Source projects
3 | #
4 | # Apple bugs, waiting for Apple to fix/respond:
5 | #
6 | # 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
7 | #
8 | # Version 2.6
9 | # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
10 | #
11 | # 2015 updates:
12 | # - Fixed typo in "xccheckout" line - thanks to @lyck for pointing it out!
13 | # - Fixed the .idea optional ignore. Thanks to @hashier for pointing this out
14 | # - Finally added "xccheckout" to the ignore. Apple still refuses to answer support requests about this, but in practice it seems you should ignore it.
15 | # - minor tweaks from Jona and Coeur (slightly more precise xc* filtering/names)
16 | # 2014 updates:
17 | # - appended non-standard items DISABLED by default (uncomment if you use those tools)
18 | # - removed the edit that an SO.com moderator made without bothering to ask me
19 | # - researched CocoaPods .lock more carefully, thanks to Gokhan Celiker
20 | # 2013 updates:
21 | # - fixed the broken "save personal Schemes"
22 | # - added line-by-line explanations for EVERYTHING (some were missing)
23 | #
24 | # NB: if you are storing "built" products, this WILL NOT WORK,
25 | # and you should use a different .gitignore (or none at all)
26 | # This file is for SOURCE projects, where there are many extra
27 | # files that we want to exclude
28 | #
29 | #########################
30 |
31 | #####
32 | # OS X temporary files that should never be committed
33 | #
34 | # c.f. http://www.westwind.com/reference/os-x/invisibles.html
35 |
36 | .DS_Store
37 |
38 | # c.f. http://www.westwind.com/reference/os-x/invisibles.html
39 |
40 | .Trashes
41 |
42 | # c.f. http://www.westwind.com/reference/os-x/invisibles.html
43 |
44 | *.swp
45 |
46 | #
47 | # *.lock - this is used and abused by many editors for many different things.
48 | # For the main ones I use (e.g. Eclipse), it should be excluded
49 | # from source-control, but YMMV.
50 | # (lock files are usually local-only file-synchronization on the local FS that should NOT go in git)
51 | # c.f. the "OPTIONAL" section at bottom though, for tool-specific variations!
52 | #
53 | # In particular, if you're using CocoaPods, you'll want to comment-out this line:
54 | *.lock
55 |
56 |
57 | #
58 | # profile - REMOVED temporarily (on double-checking, I can't find it in OS X docs?)
59 | #profile
60 |
61 |
62 | ####
63 | # Xcode temporary files that should never be committed
64 | #
65 | # NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
66 |
67 | *~.nib
68 |
69 |
70 | ####
71 | # Xcode build files -
72 | #
73 | # NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
74 |
75 | DerivedData/
76 |
77 | # NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
78 |
79 | build/
80 |
81 |
82 | #####
83 | # Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
84 | #
85 | # This is complicated:
86 | #
87 | # SOMETIMES you need to put this file in version control.
88 | # Apple designed it poorly - if you use "custom executables", they are
89 | # saved in this file.
90 | # 99% of projects do NOT use those, so they do NOT want to version control this file.
91 | # ..but if you're in the 1%, comment out the line "*.pbxuser"
92 |
93 | # .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
94 |
95 | *.pbxuser
96 |
97 | # .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
98 |
99 | *.mode1v3
100 |
101 | # .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
102 |
103 | *.mode2v3
104 |
105 | # .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
106 |
107 | *.perspectivev3
108 |
109 | # NB: also, whitelist the default ones, some projects need to use these
110 | !default.pbxuser
111 | !default.mode1v3
112 | !default.mode2v3
113 | !default.perspectivev3
114 |
115 |
116 | ####
117 | # Xcode 4 - semi-personal settings
118 | #
119 | # Apple Shared data that Apple put in the wrong folder
120 | # c.f. http://stackoverflow.com/a/19260712/153422
121 | # FROM ANSWER: Apple says "don't ignore it"
122 | # FROM COMMENTS: Apple is wrong; Apple code is too buggy to trust; there are no known negative side-effects to ignoring Apple's unofficial advice and instead doing the thing that actively fixes bugs in Xcode
123 | # Up to you, but ... current advice: ignore it.
124 | *.xccheckout
125 |
126 | #
127 | #
128 | # OPTION 1: ---------------------------------
129 | # throw away ALL personal settings (including custom schemes!
130 | # - unless they are "shared")
131 | # As per build/ and DerivedData/, this ought to have a trailing slash
132 | #
133 | # NB: this is exclusive with OPTION 2 below
134 | xcuserdata/
135 |
136 | # OPTION 2: ---------------------------------
137 | # get rid of ALL personal settings, but KEEP SOME OF THEM
138 | # - NB: you must manually uncomment the bits you want to keep
139 | #
140 | # NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
141 | # or manually install git over the top of the OS X version
142 | # NB: this is exclusive with OPTION 1 above
143 | #
144 | #xcuserdata/**/*
145 |
146 | # (requires option 2 above): Personal Schemes
147 | #
148 | #!xcuserdata/**/xcschemes/*
149 |
150 | ####
151 | # XCode 4 workspaces - more detailed
152 | #
153 | # Workspaces are important! They are a core feature of Xcode - don't exclude them :)
154 | #
155 | # Workspace layout is quite spammy. For reference:
156 | #
157 | # /(root)/
158 | # /(project-name).xcodeproj/
159 | # project.pbxproj
160 | # /project.xcworkspace/
161 | # contents.xcworkspacedata
162 | # /xcuserdata/
163 | # /(your name)/xcuserdatad/
164 | # UserInterfaceState.xcuserstate
165 | # /xcshareddata/
166 | # /xcschemes/
167 | # (shared scheme name).xcscheme
168 | # /xcuserdata/
169 | # /(your name)/xcuserdatad/
170 | # (private scheme).xcscheme
171 | # xcschememanagement.plist
172 | #
173 | #
174 |
175 | ####
176 | # Xcode 4 - Deprecated classes
177 | #
178 | # Allegedly, if you manually "deprecate" your classes, they get moved here.
179 | #
180 | # We're using source-control, so this is a "feature" that we do not want!
181 |
182 | *.moved-aside
183 |
184 | ####
185 | # OPTIONAL: Some well-known tools that people use side-by-side with Xcode / iOS development
186 | #
187 | # NB: I'd rather not include these here, but gitignore's design is weak and doesn't allow
188 | # modular gitignore: you have to put EVERYTHING in one file.
189 | #
190 | # COCOAPODS:
191 | #
192 | # c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock
193 | # c.f. http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
194 | #
195 | #!Podfile.lock
196 | #
197 | # RUBY:
198 | #
199 | # c.f. http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
200 | #
201 | #!Gemfile.lock
202 | #
203 | # IDEA:
204 | #
205 | # c.f. https://www.jetbrains.com/objc/help/managing-projects-under-version-control.html?search=workspace.xml
206 | #
207 | #.idea/workspace.xml
208 | #
209 | # TEXTMATE:
210 | #
211 | # -- UNVERIFIED: c.f. http://stackoverflow.com/a/50283/153422
212 | #
213 | #tm_build_errors
214 |
215 | ####
216 | # UNKNOWN: recommended by others, but I can't discover what these files are
217 | #
--------------------------------------------------------------------------------
/Core NFC Example/UI/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/Core NFC Example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 48;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 4201BE9A1EEFBEFD00C6CA0A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4201BE991EEFBEFD00C6CA0A /* AppDelegate.m */; };
11 | 4201BE9D1EEFBEFD00C6CA0A /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4201BE9C1EEFBEFD00C6CA0A /* ViewController.m */; };
12 | 4201BEA01EEFBEFD00C6CA0A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4201BE9E1EEFBEFD00C6CA0A /* Main.storyboard */; };
13 | 4201BEA21EEFBEFD00C6CA0A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4201BEA11EEFBEFD00C6CA0A /* Assets.xcassets */; };
14 | 4201BEA51EEFBEFD00C6CA0A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4201BEA31EEFBEFD00C6CA0A /* LaunchScreen.storyboard */; };
15 | 4201BEA81EEFBEFD00C6CA0A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4201BEA71EEFBEFD00C6CA0A /* main.m */; };
16 | 4201BEB41EEFC0D700C6CA0A /* CoreNFC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4201BEB31EEFC0C000C6CA0A /* CoreNFC.framework */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXFileReference section */
20 | 4201BE951EEFBEFD00C6CA0A /* Core NFC Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Core NFC Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
21 | 4201BE981EEFBEFD00C6CA0A /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
22 | 4201BE991EEFBEFD00C6CA0A /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
23 | 4201BE9B1EEFBEFD00C6CA0A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
24 | 4201BE9C1EEFBEFD00C6CA0A /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
25 | 4201BE9F1EEFBEFD00C6CA0A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
26 | 4201BEA11EEFBEFD00C6CA0A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
27 | 4201BEA41EEFBEFD00C6CA0A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
28 | 4201BEA61EEFBEFD00C6CA0A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
29 | 4201BEA71EEFBEFD00C6CA0A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
30 | 4201BEB11EEFC04100C6CA0A /* Core NFC Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Core NFC Example.entitlements"; sourceTree = ""; };
31 | 4201BEB31EEFC0C000C6CA0A /* CoreNFC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreNFC.framework; path = System/Library/Frameworks/CoreNFC.framework; sourceTree = SDKROOT; };
32 | 42274DA21EEFD619001D28D3 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
33 | /* End PBXFileReference section */
34 |
35 | /* Begin PBXFrameworksBuildPhase section */
36 | 4201BE921EEFBEFD00C6CA0A /* Frameworks */ = {
37 | isa = PBXFrameworksBuildPhase;
38 | buildActionMask = 2147483647;
39 | files = (
40 | 4201BEB41EEFC0D700C6CA0A /* CoreNFC.framework in Frameworks */,
41 | );
42 | runOnlyForDeploymentPostprocessing = 0;
43 | };
44 | /* End PBXFrameworksBuildPhase section */
45 |
46 | /* Begin PBXGroup section */
47 | 4201BE8C1EEFBEFD00C6CA0A = {
48 | isa = PBXGroup;
49 | children = (
50 | 42274DA21EEFD619001D28D3 /* README.md */,
51 | 4201BE971EEFBEFD00C6CA0A /* Core NFC Example */,
52 | 4201BE961EEFBEFD00C6CA0A /* Products */,
53 | 4201BEB21EEFC0BF00C6CA0A /* Frameworks */,
54 | );
55 | sourceTree = "";
56 | };
57 | 4201BE961EEFBEFD00C6CA0A /* Products */ = {
58 | isa = PBXGroup;
59 | children = (
60 | 4201BE951EEFBEFD00C6CA0A /* Core NFC Example.app */,
61 | );
62 | name = Products;
63 | sourceTree = "";
64 | };
65 | 4201BE971EEFBEFD00C6CA0A /* Core NFC Example */ = {
66 | isa = PBXGroup;
67 | children = (
68 | 4201BE981EEFBEFD00C6CA0A /* AppDelegate.h */,
69 | 4201BE991EEFBEFD00C6CA0A /* AppDelegate.m */,
70 | 4201BEB01EEFBF5500C6CA0A /* Scenes */,
71 | 4201BEAE1EEFBF1400C6CA0A /* UI */,
72 | 4201BEAF1EEFBF2100C6CA0A /* Supporting Files */,
73 | );
74 | path = "Core NFC Example";
75 | sourceTree = "";
76 | };
77 | 4201BEAE1EEFBF1400C6CA0A /* UI */ = {
78 | isa = PBXGroup;
79 | children = (
80 | 4201BEA11EEFBEFD00C6CA0A /* Assets.xcassets */,
81 | 4201BE9E1EEFBEFD00C6CA0A /* Main.storyboard */,
82 | 4201BEA31EEFBEFD00C6CA0A /* LaunchScreen.storyboard */,
83 | );
84 | path = UI;
85 | sourceTree = "";
86 | };
87 | 4201BEAF1EEFBF2100C6CA0A /* Supporting Files */ = {
88 | isa = PBXGroup;
89 | children = (
90 | 4201BEB11EEFC04100C6CA0A /* Core NFC Example.entitlements */,
91 | 4201BEA61EEFBEFD00C6CA0A /* Info.plist */,
92 | 4201BEA71EEFBEFD00C6CA0A /* main.m */,
93 | );
94 | path = "Supporting Files";
95 | sourceTree = "";
96 | };
97 | 4201BEB01EEFBF5500C6CA0A /* Scenes */ = {
98 | isa = PBXGroup;
99 | children = (
100 | 4201BE9B1EEFBEFD00C6CA0A /* ViewController.h */,
101 | 4201BE9C1EEFBEFD00C6CA0A /* ViewController.m */,
102 | );
103 | path = Scenes;
104 | sourceTree = "";
105 | };
106 | 4201BEB21EEFC0BF00C6CA0A /* Frameworks */ = {
107 | isa = PBXGroup;
108 | children = (
109 | 4201BEB31EEFC0C000C6CA0A /* CoreNFC.framework */,
110 | );
111 | name = Frameworks;
112 | sourceTree = "";
113 | };
114 | /* End PBXGroup section */
115 |
116 | /* Begin PBXNativeTarget section */
117 | 4201BE941EEFBEFD00C6CA0A /* Core NFC Example */ = {
118 | isa = PBXNativeTarget;
119 | buildConfigurationList = 4201BEAB1EEFBEFD00C6CA0A /* Build configuration list for PBXNativeTarget "Core NFC Example" */;
120 | buildPhases = (
121 | 4201BE911EEFBEFD00C6CA0A /* Sources */,
122 | 4201BE921EEFBEFD00C6CA0A /* Frameworks */,
123 | 4201BE931EEFBEFD00C6CA0A /* Resources */,
124 | );
125 | buildRules = (
126 | );
127 | dependencies = (
128 | );
129 | name = "Core NFC Example";
130 | productName = "Core NFC Example";
131 | productReference = 4201BE951EEFBEFD00C6CA0A /* Core NFC Example.app */;
132 | productType = "com.apple.product-type.application";
133 | };
134 | /* End PBXNativeTarget section */
135 |
136 | /* Begin PBXProject section */
137 | 4201BE8D1EEFBEFD00C6CA0A /* Project object */ = {
138 | isa = PBXProject;
139 | attributes = {
140 | LastUpgradeCheck = 0900;
141 | ORGANIZATIONNAME = "Zhi-Wei Cai";
142 | TargetAttributes = {
143 | 4201BE941EEFBEFD00C6CA0A = {
144 | CreatedOnToolsVersion = 9.0;
145 | SystemCapabilities = {
146 | com.apple.Push = {
147 | enabled = 0;
148 | };
149 | com.apple.Siri = {
150 | enabled = 0;
151 | };
152 | };
153 | };
154 | };
155 | };
156 | buildConfigurationList = 4201BE901EEFBEFD00C6CA0A /* Build configuration list for PBXProject "Core NFC Example" */;
157 | compatibilityVersion = "Xcode 8.0";
158 | developmentRegion = en;
159 | hasScannedForEncodings = 0;
160 | knownRegions = (
161 | en,
162 | Base,
163 | );
164 | mainGroup = 4201BE8C1EEFBEFD00C6CA0A;
165 | productRefGroup = 4201BE961EEFBEFD00C6CA0A /* Products */;
166 | projectDirPath = "";
167 | projectRoot = "";
168 | targets = (
169 | 4201BE941EEFBEFD00C6CA0A /* Core NFC Example */,
170 | );
171 | };
172 | /* End PBXProject section */
173 |
174 | /* Begin PBXResourcesBuildPhase section */
175 | 4201BE931EEFBEFD00C6CA0A /* Resources */ = {
176 | isa = PBXResourcesBuildPhase;
177 | buildActionMask = 2147483647;
178 | files = (
179 | 4201BEA51EEFBEFD00C6CA0A /* LaunchScreen.storyboard in Resources */,
180 | 4201BEA21EEFBEFD00C6CA0A /* Assets.xcassets in Resources */,
181 | 4201BEA01EEFBEFD00C6CA0A /* Main.storyboard in Resources */,
182 | );
183 | runOnlyForDeploymentPostprocessing = 0;
184 | };
185 | /* End PBXResourcesBuildPhase section */
186 |
187 | /* Begin PBXSourcesBuildPhase section */
188 | 4201BE911EEFBEFD00C6CA0A /* Sources */ = {
189 | isa = PBXSourcesBuildPhase;
190 | buildActionMask = 2147483647;
191 | files = (
192 | 4201BE9D1EEFBEFD00C6CA0A /* ViewController.m in Sources */,
193 | 4201BEA81EEFBEFD00C6CA0A /* main.m in Sources */,
194 | 4201BE9A1EEFBEFD00C6CA0A /* AppDelegate.m in Sources */,
195 | );
196 | runOnlyForDeploymentPostprocessing = 0;
197 | };
198 | /* End PBXSourcesBuildPhase section */
199 |
200 | /* Begin PBXVariantGroup section */
201 | 4201BE9E1EEFBEFD00C6CA0A /* Main.storyboard */ = {
202 | isa = PBXVariantGroup;
203 | children = (
204 | 4201BE9F1EEFBEFD00C6CA0A /* Base */,
205 | );
206 | name = Main.storyboard;
207 | sourceTree = "";
208 | };
209 | 4201BEA31EEFBEFD00C6CA0A /* LaunchScreen.storyboard */ = {
210 | isa = PBXVariantGroup;
211 | children = (
212 | 4201BEA41EEFBEFD00C6CA0A /* Base */,
213 | );
214 | name = LaunchScreen.storyboard;
215 | sourceTree = "";
216 | };
217 | /* End PBXVariantGroup section */
218 |
219 | /* Begin XCBuildConfiguration section */
220 | 4201BEA91EEFBEFD00C6CA0A /* Debug */ = {
221 | isa = XCBuildConfiguration;
222 | buildSettings = {
223 | ALWAYS_SEARCH_USER_PATHS = NO;
224 | CLANG_ANALYZER_NONNULL = YES;
225 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
226 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
227 | CLANG_CXX_LIBRARY = "libc++";
228 | CLANG_ENABLE_MODULES = YES;
229 | CLANG_ENABLE_OBJC_ARC = YES;
230 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
231 | CLANG_WARN_BOOL_CONVERSION = YES;
232 | CLANG_WARN_COMMA = YES;
233 | CLANG_WARN_CONSTANT_CONVERSION = YES;
234 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
235 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
236 | CLANG_WARN_EMPTY_BODY = YES;
237 | CLANG_WARN_ENUM_CONVERSION = YES;
238 | CLANG_WARN_INFINITE_RECURSION = YES;
239 | CLANG_WARN_INT_CONVERSION = YES;
240 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
241 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
242 | CLANG_WARN_STRICT_PROTOTYPES = YES;
243 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
244 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
245 | CLANG_WARN_UNREACHABLE_CODE = YES;
246 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
247 | CODE_SIGN_IDENTITY = "iPhone Developer";
248 | COPY_PHASE_STRIP = NO;
249 | DEBUG_INFORMATION_FORMAT = dwarf;
250 | ENABLE_STRICT_OBJC_MSGSEND = YES;
251 | ENABLE_TESTABILITY = YES;
252 | GCC_C_LANGUAGE_STANDARD = gnu11;
253 | GCC_DYNAMIC_NO_PIC = NO;
254 | GCC_NO_COMMON_BLOCKS = YES;
255 | GCC_OPTIMIZATION_LEVEL = 0;
256 | GCC_PREPROCESSOR_DEFINITIONS = (
257 | "DEBUG=1",
258 | "$(inherited)",
259 | );
260 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
261 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
262 | GCC_WARN_UNDECLARED_SELECTOR = YES;
263 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
264 | GCC_WARN_UNUSED_FUNCTION = YES;
265 | GCC_WARN_UNUSED_VARIABLE = YES;
266 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
267 | MTL_ENABLE_DEBUG_INFO = YES;
268 | ONLY_ACTIVE_ARCH = YES;
269 | SDKROOT = iphoneos;
270 | };
271 | name = Debug;
272 | };
273 | 4201BEAA1EEFBEFD00C6CA0A /* Release */ = {
274 | isa = XCBuildConfiguration;
275 | buildSettings = {
276 | ALWAYS_SEARCH_USER_PATHS = NO;
277 | CLANG_ANALYZER_NONNULL = YES;
278 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
279 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
280 | CLANG_CXX_LIBRARY = "libc++";
281 | CLANG_ENABLE_MODULES = YES;
282 | CLANG_ENABLE_OBJC_ARC = YES;
283 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
284 | CLANG_WARN_BOOL_CONVERSION = YES;
285 | CLANG_WARN_COMMA = YES;
286 | CLANG_WARN_CONSTANT_CONVERSION = YES;
287 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
288 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
289 | CLANG_WARN_EMPTY_BODY = YES;
290 | CLANG_WARN_ENUM_CONVERSION = YES;
291 | CLANG_WARN_INFINITE_RECURSION = YES;
292 | CLANG_WARN_INT_CONVERSION = YES;
293 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
294 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
295 | CLANG_WARN_STRICT_PROTOTYPES = YES;
296 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
297 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
298 | CLANG_WARN_UNREACHABLE_CODE = YES;
299 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
300 | CODE_SIGN_IDENTITY = "iPhone Developer";
301 | COPY_PHASE_STRIP = NO;
302 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
303 | ENABLE_NS_ASSERTIONS = NO;
304 | ENABLE_STRICT_OBJC_MSGSEND = YES;
305 | GCC_C_LANGUAGE_STANDARD = gnu11;
306 | GCC_NO_COMMON_BLOCKS = YES;
307 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
308 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
309 | GCC_WARN_UNDECLARED_SELECTOR = YES;
310 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
311 | GCC_WARN_UNUSED_FUNCTION = YES;
312 | GCC_WARN_UNUSED_VARIABLE = YES;
313 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
314 | MTL_ENABLE_DEBUG_INFO = NO;
315 | SDKROOT = iphoneos;
316 | VALIDATE_PRODUCT = YES;
317 | };
318 | name = Release;
319 | };
320 | 4201BEAC1EEFBEFD00C6CA0A /* Debug */ = {
321 | isa = XCBuildConfiguration;
322 | buildSettings = {
323 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
324 | CODE_SIGN_ENTITLEMENTS = "Core NFC Example/Supporting Files/Core NFC Example.entitlements";
325 | CODE_SIGN_IDENTITY = "iPhone Developer";
326 | DEVELOPMENT_TEAM = 928652TY3Y;
327 | INFOPLIST_FILE = "$(SRCROOT)/Core NFC Example/Supporting Files/Info.plist";
328 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
329 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
330 | PRODUCT_BUNDLE_IDENTIFIER = "vg.vox.Core-NFC-Example";
331 | PRODUCT_NAME = "$(TARGET_NAME)";
332 | TARGETED_DEVICE_FAMILY = "1,2";
333 | };
334 | name = Debug;
335 | };
336 | 4201BEAD1EEFBEFD00C6CA0A /* Release */ = {
337 | isa = XCBuildConfiguration;
338 | buildSettings = {
339 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
340 | CODE_SIGN_ENTITLEMENTS = "Core NFC Example/Supporting Files/Core NFC Example.entitlements";
341 | CODE_SIGN_IDENTITY = "iPhone Developer";
342 | DEVELOPMENT_TEAM = 928652TY3Y;
343 | INFOPLIST_FILE = "$(SRCROOT)/Core NFC Example/Supporting Files/Info.plist";
344 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
345 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
346 | PRODUCT_BUNDLE_IDENTIFIER = "vg.vox.Core-NFC-Example";
347 | PRODUCT_NAME = "$(TARGET_NAME)";
348 | TARGETED_DEVICE_FAMILY = "1,2";
349 | };
350 | name = Release;
351 | };
352 | /* End XCBuildConfiguration section */
353 |
354 | /* Begin XCConfigurationList section */
355 | 4201BE901EEFBEFD00C6CA0A /* Build configuration list for PBXProject "Core NFC Example" */ = {
356 | isa = XCConfigurationList;
357 | buildConfigurations = (
358 | 4201BEA91EEFBEFD00C6CA0A /* Debug */,
359 | 4201BEAA1EEFBEFD00C6CA0A /* Release */,
360 | );
361 | defaultConfigurationIsVisible = 0;
362 | defaultConfigurationName = Release;
363 | };
364 | 4201BEAB1EEFBEFD00C6CA0A /* Build configuration list for PBXNativeTarget "Core NFC Example" */ = {
365 | isa = XCConfigurationList;
366 | buildConfigurations = (
367 | 4201BEAC1EEFBEFD00C6CA0A /* Debug */,
368 | 4201BEAD1EEFBEFD00C6CA0A /* Release */,
369 | );
370 | defaultConfigurationIsVisible = 0;
371 | defaultConfigurationName = Release;
372 | };
373 | /* End XCConfigurationList section */
374 | };
375 | rootObject = 4201BE8D1EEFBEFD00C6CA0A /* Project object */;
376 | }
377 |
--------------------------------------------------------------------------------