Quickstart
Software Versions
Date | iOS | WatchOS | OSX | Swift | AppCode | XCode |
---|---|---|---|---|---|---|
202010 | 14.1 14.2 | 7.0.1 7.1 | 10.15.5 - 7 | 5.3 | 11.6 will deploy to 13.6 but not 14.1- use XCode 12.1-12.1 | |
202012 | 14.3 | 7.2 | 10. | 5.3 | 12.3 | |
Jiras
- BIOMETRIC-15Getting issue details... STATUS
Adding a new iPhone to XCode
if you get the standard "no signing certificate found" when trying to build against a new iPhone target - restart xcode completely after attaching the device and watch for the following "Device X isn't registered in your developer account
Submitting iOS apps to the Apple App Store
https://developer.apple.com/programs/
https://developer.apple.com/app-store/submitting/
https://developer.apple.com/ios/submit/
Optimize | ||
https://developer.apple.com/go/?id=xcode-universal | ||
ObjectiveC to Swift | ||
Testing | All-screen | |
Test Flight | ||
submit | Guidelines | |
Review | https://developer.apple.com/app-store/review/ | |
XCode 12.2 and IPhone 12 Pro 2020 on OSX 10.15.7
XCode 12.3 on OSX 11 on A1 Mac 2020
https://developer.apple.com/support/universal-purchase/
XCode 10.3 on a new MacBook Pro 2019 i9-9980 based 32G or 2019 i-9980 based 64G machine
When initially building a new project - select the target device (mine is currently IPhone X - or you will get the following error when building
https://www.apple.com/ca/education/k12/teaching-code/
XCode 11.0 Oct 2019 - Development
Upgraded from XCode 10.3 to 11.0 to be able to target the new iWatchOS 5.0 for the Series 5 watch - turns out I need the latest XCode 11.0 - upgrade was OK without an upgrade to OSX 10.15 from 10.14.6 yet. When attempting to rebuild and push my biometric capture app Biometric Dual Heart Rate Streaming from Mobile Devices to the iPhone X - received the following error and stacktrace - I added 2 new plist entries and watched the dialog come up on the device - all is good.
2019-10-03 06:32:27.490354-0400 Biometric[995:530667] This app has attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain both “NSLocationAlwaysAndWhenInUseUsageDescription” and “NSLocationWhenInUseUsageDescription” keys with string values explaining to the user how the app uses this data 2019-10-03 06:32:27.498975-0400 Biometric[995:530667] Pref: 201505 2019-10-03 06:32:27.569096-0400 Biometric[995:530909] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSBluetoothAlwaysUsageDescription key with a string value explaining to the user how the app uses this data.
ObjectiveC Development
Swift Development
Swift UI
https://developer.apple.com/xcode/swiftui/
https://developer.apple.com/tutorials/swiftui/
Macbook Pro 2018 to 2016 Development Prep
Adjustments to the Macbook Pro 2018 to 2016 - disabling the touch bar to aide debugging
Macbook 2018 Improvements
The 2018 i9-9990 has 32G of ram (since 2017) and up to a 4TB NVMe drive (I am using a 2TB). The 8 core 9990 runs slower per core but because of the 16 thread count will run through my collatz benchmark in 18 sec instead of the previous 27 sec at the optimal 32thread forkjoin sweet spot. For reference my older but still powerfull i7-5820K running 64G and overclocked to 4.3GHz will run at 11 sec overclocked and 17 sec at stock 3.3GHz (and this is for a 6 core 12 thread CPU). So the effective performance of the 2018 macbook is on par with a 2014 era 6 core non-overclocked 3.3GHz XEON class CPU - which is good.
The CPU fan will run all the time if you use over 2 cores of the available 8. The machine gets hot under normal development as expected and drops to throttled speed.
There is an improvement in the keyboard (it is still very inferior to the 2014 model) but it is a lot quieter than my 2016 model - and I have no stuck/repeated keys yet.
The touch bar remains effectively useless as you must disable it so as not to accidentally touch any of the soft keys - I enable only the FN keys for applications like Eclipse, IntelliJ, Xcode or VScode.
Macbook 2019 Issues
The 2019 macbook has the same issues as all the models back to 2016 - the keyboard quality, the touchbar and excessive heat throttling.
Macbook 2016 Improvements
The 2016 i7-6920HZ CPU runs 23% faster than the my late 2013 i7-4960 (12% of this is due to a clock speed jump from 2.6 to 2.9 GHz)
The GPU is faster - although this is hard to measure because I went from an NVidia 750GT to an ATI 460
Macbook 2016 Issues
The keyboard is lower quality than the 2015 model
The GPU is ATI instead of NVidia - which locks us out of must CUDA based libraries like TensorFlow leaving us with OpenCL
The touchbar causes multiple issues - the biggest one is launching siri or changing sound/screen inadvertently by accidentally touching the bar above the number row.
Minimize Macbook Pro 2016 Touchbar effects
The first thing you will notice when using the 2016 macbook will be how the touchbar causes issues north of the delete key when your fingers slide off the northbound part of the key.
The goal is to disable the touchbar for most apps leaving just the escape key.
For development apps that require function keys like the F3/F4 (navigation)and F5/F6/F7/F8 (debug) functions in Eclipse - enable just the function key view.
Here in eclipse we frequently need F3 to load a class and F4 to get the inheritance hierarchy
During a debug session we use F5 to enter, F6 to run, F7 to skip and F8 to resume
CPU and GPU performance
On average GPU speed for the 2016 macbook pro (top model) is 12x the cpu speed (all 4 cores)
Surprisingly the embedded GPU in the CPU runs slower than the embedded Iris GPU in my old 2013 macbook pro.
OpenCL
Connectors
I'll get into theUSB-C connectors shortly
Cases
Get the Thule case for your Macbook Pro 15 https://www.thule.com/en-us/ca/computer-phone-cases/laptop-cases/thule-gauntlet-30-macbook-pro-sleeve-15-_-tl_85854234856
Noise
The new keyboard is louder - try to type quieter in an office setting
Objective C
I really liked Objective C because of its Smalltalk and Object Oriented C roots from the late 80's and early 90s - I used Smalltalk V from 92 to 94 at Carleton. Anyway my first iPhone app was written in Objective C starting in 2012
My first hello world in Objective C using iOS 5 at the time.
#import #include int main(int argc, const char * argv[]) { @autoreleasepool { int64_t current = 0; int64_t maxValue = 0; int maxPath = 0; int path = 0; int64_t max; // 64 bit signed integer, like Java's long for (int64_t i=27; i<(1 << 30); i+=2) { current = i; path = 0; while (current > 1) { if (current % 2 == 0) { current = current >> 1; } else { current = 1 + current + (current << 1); } path++; if(max < current) { max = current; } } bool maxSet = false; if(maxValue < max) { maxValue = max; maxSet = true; } if(maxPath < path) { maxPath = path; maxSet = true; } if(maxSet) { NSLog(@"%lld: %lld: %i",i, max, path); } } } return 0; }
JetBrains AppCode
https://www.jetbrains.com/objc/download/
Issue | Fix |
---|---|
Signing for "BiometricSwiftAC" requires a development team. Select a development team in the Signing & Capabilities editor. |
|
Download Developer Profiles for XCode 12.2 update on iWatch Series 6
Wireless Development
Running XCode deployment against an Apple TV Generation 4 4K see 7 min in on https://developer.apple.com/videos/play/wwdc2017/404/
Access XCode menu "Devices and Simulators" - select the checkbox (after unlocking the device) - "Connect via network"
Apple TV
Links
https://eclipsejpa.blogspot.com/2012/01/ios-5-development.html
https://www.apple.com/covid19/contacttracing