With the most recent update to the Apple Developer Forums, it’s become pretty much impossible to update this collected wisdom in any regular way. This is why there hasn’t been an update to the archive in a while.
The main issues are:
- Apple staff no longer have individual accounts.
- The collective “Apple” accounts are not searchable.
How I used to update the archive was just to look at Quinn’s profile page, and I could see new posts, updates, and solutions he provided. Now he is listed as “DTS Engineer”. This might not necessarily be too bad, but those collective accounts don’t have profile pages at all. There is no easy way to see the posts that fall under that user name.
If you try to search for that username, it doesn’t really do what you expect either. It just searches for that string in posts, not for posts by that user.
Searching for “user: DTS Engineer Quinn” does a fairly decent job of finding results, but they are all over the place now. You can only see 15 of them at a time on the new forums as well.
Without the easy and concise way to just see the updates, it is now very, very time-consuming to track down new nuggets of wisdom.
Maybe I’ll give it another shot in a while, but for now, we are on hold.
Informative DevForum posts from everyone's favorite DTS member. Share and Enjoy®
The quick way to see updates is to follow the bouncing balls.
- New Posts 🟢
- Updated Posts 🟡
- Deprecated Posts 🔴
While the New and Updated flags will change with each update, the Deprecated flag is forever. Luckily for us, deprecated posts have been replaced by official documentation.
For a comprehensive list of updates, see the CHANGELOG
Lists and links of Apple resources that The Eskimo finds useful.
- App Sandbox Resources | (PDF) 🟡
- Background Tasks Resources | (PDF)
- Code Signing Resources | (PDF) 🟡
- Debugging Resources | (PDF)
- Files and Storage Resources | (PDF) 🟡
- Network Extension Resources | (PDF) 🟡
- Networking Resources | (PDF) 🟡
- Networking Resources (Old) | (PDF)
- Notarisation Resources | (PDF)
- Security Resources | (PDF)
- Service Management Resources | (PDF)
- TabularData Resources | (PDF)
- Trusted Execution Resources | (PDF) 🟡
- XPC Resources | (PDF) 🟡
Everybody loves code signing!
- A Peek Behind the Code Signing Curtain | (PDF)
- Certificate Signing Requests Explained | (PDF)
- Creating Distribution-Signed Code for Mac | (PDF)
--deep
Considered Harmful | (PDF)- Fixing an untrusted code signing certificate | (PDF)
- Isolating Code Signing Problems from Build Problems | (PDF)
- KEXT Code Signing Problems | (PDF)
- Manual Code Signing Example | (PDF)
- Resolving Code Signing Crashes on Launch | (PDF)
- Resolving errSecInternalComponent errors during code signing | (PDF)
- Signing a Mac Product For Distribution | (PDF)
- Signing code for older versions of macOS on Apple Silicon | (PDF)
App Store, Provisioning Profiles, Developer ID, and Notarization.
- App Translocation Notes | (PDF)
- Background items showing up with the wrong name | (PDF)
- Don’t Run App Store Distribution-Signed Code | (PDF)
- Embedding a Command-Line Tool in a Sandboxed App | (PDF) 🔴
- Error 1048 When Notarising | (PDF)
- Exporting a Developer ID Network Extension | (PDF) 🟢
- Finding a Capability’s Distribution Restrictions | (PDF)
- Identifying a Cloud Managed Signing Certificate | (PDF)
- Notarisation Fundamentals | (PDF)
- Notarisation and the macOS 10.9 SDK | (PDF)
- Notarising an Installer Package Containing a KEXT | (PDF)
- Packaging a Daemon with a Provisioning Profile | (PDF) 🔴
- Packaging Mac Software for Distribution | (PDF)
- TestFlight, Provisioning Profiles, and the Mac App Store | (PDF) 🟡
- The Care and Feeding of Developer ID | (PDF) 🟡
- The Pros and Cons of Stapling | (PDF)
- Resolving Gatekeeper Problems | (PDF)
- Resolving Gatekeeper Problems Caused by Dangling Load Command Paths | (PDF)
- Sandboxed Helper Tool Crashing in
libsystem_secinit
| (PDF) - Testing a Notarised Product | (PDF)
- What exactly is a provisioning profile? | (PDF) 🔴
Bits on disk.
- Create a Zip Archive With This One Weird Trick | (PDF)
- Extended Attributes and Zip Archive | (PDF)
- On File System Permissions | (PDF) 🟡
- Unpacking Apple Archives | (PDF)
- Whither FileHandle? | (PDF)
Y U KILL MAH PROCESS?
- iOS Background Execution Limits | (PDF)
- Testing Background Session Code | (PDF)
- UIApplication Background Task Notes | (PDF)
Shhh… it's a secret.
- App Groups: macOS vs iOS: Fight! | (PDF)
- BSD Privilege Escalation on macOS | (PDF)
- Calling Security Framework from Swift | (PDF)
- Data Vault Info | (PDF)
- Defining An App Group Shared Between macOS and iOS | (PDF)
- Error -34018 errSecMissingEntitlement | (PDF)
- Importing Cryptographic Keys | (PDF)
- Intermittent -34018 errors from users in the field | (PDF)
- On Cryptographic Key Formats | (PDF)
- Remote Debugging for Authorization Plugins | (PDF)
- Resolving App Sandbox Inheritance Problems | (PDF)
- Resolving Hardened Runtime Incompatibilities | (PDF)
- App ID Prefix Change and Keychain Access | (PDF)
- Keychain sharing | (PDF)
- On Mac Keychains | (PDF) 🔴
- SecItem attributes for keys | (PDF)
- SecItem: Fundamentals | (PDF) 🟡
- SecItem: Pitfalls and Best Practices | (PDF) 🟡
- Troubleshooting -34018 Keychain Errors | (PDF)
Tell me about what happened.
- Implementing Your Own Crash Reporter | (PDF)
- Fetching the Notary Log | (PDF)
- On Log Noise | (PDF)
- Parsing Dates Without Times | (PDF)
- Recording Private Data in the System Log | (PDF)
- Unified Logging from the Kernel | (PDF)
- Using a Sysdiagnose Log to Debug a Hard-to-Reproduce Problem | (PDF 🟢
- Viewing Sandbox Violation Reports | (PDF) 🔴
- Your Friend the System Log | (PDF) 🟡
Get down in the guts.
- Availability of Low-Level APIs | (PDF) 🟢
- Avoid Dispatch Global Concurrent Queues | (PDF)
- Running a Child Process with Standard Input and Output | (PDF)
- Swift 3 and BSD Sockets | (PDF)
- WWDC 2010 Session 207 Run Loops Section | (PDF)
- Accessing Global Variables on Apple Silicon | (PDF)
- Language Exception from RCTFatal | (PDF)
- Using a Link Map to Track Down a Symbol’s Origin | PDF
- An Apple Library Primer | (PDF) 🟡
- Async Signal Safe Functions vs Dyld Lazy Binding | (PDF)
- Dynamic Library Full Path Alternative | (PDF) 🟢
- Dynamic Library Identification | (PDF) 🟢
- Dynamic Library Standard Setup for Apps | (PDF) 🟢
- Resolving Library Loading Problems | (PDF)
- Handling
shouldFreeInfo
Parameters | (PDF) - Objective-C Memory Management for Swift Programmers | (PDF)
- On Free Memory | (PDF)
- Standard Memory Debugging Tools | (PDF)
- The Peril of the Ampersand | (PDF)
- Testing and Debugging XPC Code With an Anonymous Listener | (PDF)
- XPC and App-to-App Communication | (PDF)
Making this talk to that.
- Calling BSD Sockets from Swift | (PDF)
- QSocket: Addresses | (PDF)
- QSocket: DNS | (PDF)
- QSocket: Interfaces | (PDF)
- QSocket: System Additions | (PDF)
- QSocket: I/O | (PDF)
- QSocket: Socket Options | (PDF)
- Extra-ordinary Networking | (PDF) 🟡
- The iOS Wi-Fi Lifecycle | (PDF 🟡
- Network Interface Concepts | (PDF)
- Network Interface Techniques | (PDF)
- Network Interface APIs | (PDF)
- Running an HTTP Request over WWAN | (PDF)
- Showing Connection Information in an iOS Server | (PDF)
- Don’t Try to Get the Device’s IP Address | (PDF)
- Working with a Wi-Fi Accessory | (PDF) 🟡
- Debugging a Network Extension Provider | (PDF)
- Debugging HTTP Proxies and Certificate Transparency | (PDF) 🟢
- Debugging HTTP Server-Side Errors | (PDF)
- Investigating Network Latency Problems | (PDF)
- Network Debugging articles | (PDF)
- Network Debugging in the Field | (PDF)
- Using mitmproxy to Analyse HTTP[S] Requests | (PDF)
- A Peek Behind the NECP Curtain | (PDF)
- NEHotspotHelper pseudo API | (PDF)
- Network Extension and VPN Glossary | (PDF) 🟢
- Network Extension Framework Entitlements | (PDF)
- Network Extension Provider Memory Strategy | (PDF)
- Networking in a Short-Lived Extension | (PDF) 🟡
- Five Reasons Why Synchronous Networking Is Bad | (PDF)
- iOS Network Signal Strength | (PDF)
- Maintaining a TCP Connection in the Background | (PDF)
- Moving to Fewer, Larger Transfers | (PDF) 🟡
- NSURLCache and Byte Ranges | (PDF)
- On FTP | (PDF)
- Using the Multicast Networking Additional Capability | (PDF) 🔴
- Wi-Fi Fundamentals | (PDF)
- IPv6 and App Review | (PDF)
- IPv6 Address Synthesis on Older Systems | (PDF)
- Supporting IPv6-only Networks | (PDF)
- Getting Started with Bonjour | (PDF) 🟢
- Triggering the Local Network Privacy Alert | (PDF)
- Local Network Privacy FAQ | (PDF) 🟡
- FAQ-1: What is a local network? | (PDF)
- FAQ-2: What operations require local network access? | (PDF)
- FAQ-3: What operations require the multicast entitlement? | (PDF)
- FAQ-4: Do I need the multicast entitlement? | (PDF)
- FAQ-5: I’ve been granted the multicast entitlement; how do I enable it? | (PDF)
- FAQ-6: Can App Clips access the local network? | (PDF)
- FAQ-7: How does local network privacy work with app extensions? | (PDF)
- FAQ-8: How do I explicitly trigger the local network privacy alert? | (PDF)
- FAQ-9: How do I tell whether I’ve been granted local network access? | (PDF)
- FAQ-10: How do I use the unsatisfied reason property? | (PDF)
- FAQ-11: Do I need a local network usage description property? | (PDF)
- FAQ-12: Can I test on the simulator? | (PDF)
- FAQ-13: Once my app has displayed the local network privacy alert, how can I reset its state so that it shows again? | (PDF)
- FAQ-14: How do I map my Multipeer Connectivity service type to an entry in the Bonjour services property? | (PDF)
- FAQ-15: My app presents the local network privacy alert unexpectedly. Is there a way to track down the cause? | (PDF)
- FAQ-16: On a small fraction of devices my app fails to present the local network privacy alert. What’s going on? | (PDF) 🟢
- FAQ-17: Why does local network privacy get confused when I install two variants of my app? | (PDF) 🟢
- App Transport Security | (PDF)
- Customising TLS Server Trust Evaluation Considered Harmful | (PDF)
- Implementing Secure Transport I/O Functions | (PDF)- TLS for App Developers | (PDF)
- TLS For Accessory Developers | (PDF)
General info and some puzzles.
- Bug Reporting: How and Why? | (PDF)
- Investigating Third-Party IDE Integration Problems | (PDF) 🟢
- KWN & ESK’s Puzzle Page: Mutation Madness | (PDF)
- Posting a Crash Report | (PDF)
- What is an exception? | (PDF)
- Quinn’s Top Ten DevForums Tips | (PDF)
All of this content is subject to the license of the Apple Developer Forums. I make no claims to any of it. This page provides PDF files as an archival format, but the live links to the articles are the preferred access method.