Post

Replies

Boosts

Views

Activity

Reply to UITabBar ignores font in iOS 26.2
Hi Albert, thanks for the response. The Avenir Next font is included in iOS since forever (iOS 6?), so no need to declare it using the UIAppFonts key. I tried configureWithOpaqueBackground, it didn't make a difference. I've file FB21291879 and have attached a small demo project and screenshots there. It's pretty simple: use a default UITabBar and in viewDidLoad, change the appearance: self.tabBar.standardAppearance.compactInlineLayoutAppearance.normal.titleTextAttributes = [ .font: UIFont(name: "AvenirNext-DemiBold", size: 28.0)! ] Run it on iOS 26.0. or 26.1 and the tab bar renders with a large font. Run it on iOS 26.2 and the font is a small San Francisco.
Topic: UI Frameworks SubTopic: UIKit Tags:
5d
Reply to Selecting an output language with Foundation Models
I've tested The user's locale is de. as the first sentence, but this was completely ignored and the output was in English. By contrast, The output must be in German. worked. I've filed FB18970592 to ask for an API that allows to set the output locale. I guess we're not the only ones that want an output in a different language, and avoiding prompt engineering is the exact point why @Generable exists. In the same spirit, hopefully there's going to be an API to reliably set the output language.
Jul ’25
Reply to Prevent Xcode from injecting UIRequiredDeviceCapabilities
Okay, this is… not fun. I've stripped the key out, and now App Store Connect doesn't even allow the upload any more. Invalid Bundle. Your binary, 'foo.bar', has a 64-bit architecture slice, so you must include the "arm64" value for the UIRequiredDeviceCapabilities key in your Xcode project. Learn more (https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3) So I must include it, but I also may not include it. How do I resolve this?
Jan ’25
Reply to Fix the problem
Without a clear description what your problem is, and what you've tried, nobody is going to be able to help you. Your question is equivalent to "my car doesn't run". It could be an empty starter battery, empty gas, faulty electric, or a host of other problems. So please be more detailed in your problem description.
Topic: Community SubTopic: Apple Developers Tags:
Nov ’24
Reply to Why is the latest Xcode so bloated? At every release it’s getting bigger and bigger.
Neither VS Code nor IntelliJ come with full SDKs for macOS and iOS (and in the case of Xcode 11.5, also tvOS and watchOS), nor do they come with simulators, or even basic (let alone full) development toolchains at all. You have to install those separately with VS Code and IntelliJ. You "only" get an IDE. When looking at Xcode 13.4, for example, with a tool like DaisyDisk, you see the bulk is the iOS simulator: it alone weighs in at over 8GB and the bulk of that is the iOS runtime (the "operating system", if you will). Of the remaining about 5GB of Xcode, a lot of that are the toolchains (compilers, linkers, various other tools) that you would not count with VS Code or IntelliJ as you have to install them separately. Xcode is not just an IDE. It's a whole bundle of tools and resources you might need to develop for all of Apple's ecosystems. It has the upside of having a lot of tools and functionality you might not even have heard of yet out of the box, and they're tuned to work together. The downside is the size requirement.
Jul ’23
Reply to Xcode 15 has problem of generated Swift NSObject headers: Property type 'NSInteger' (aka 'long') is incompatible with type 'NSUInteger' (aka 'unsigned long') inherited from 'NSObject'
We're running into the exact same issue in one of our products, and are unable to produce a demo project. The error does not trigger in the demo project, even though the type for hash is NSInteger in the header generated by Swift as well. I've tried to find out how to disable this error by having a look at the clang source code, but it doesn't seem to be tied to a warning flag. Created another radar as well: FB12485128
Jun ’23
Reply to New 60s timer when instantiating PacketTunnelProvider
That 60 second timer is potentially a problem for our VPN app as well. The documentation for startTunnelWithOptions:completionHandler: says to call the completion handler "when the tunnel is fully established, or when the tunnel cannot be started due to an error". But establishing the tunnel may involve asking the user for credentials, possibly multiple times (first username + password, and then optionally an OTP) which may take the user some time. (We do this by posting a user notification from the Network Extension; user is supposed to tap it, which then shows a credentials dialog in the app, and then sends a provider message to the Network Extension with the answer.) The 60 seconds can be hit if the user is slow to respond. What's the preferred way to handle a scenario like this? Does calling the completion handler early have any negative side-effects?
Jun ’23
Reply to Embed Widget in Network Extension
I just tried calling WidgetCenter.shared.reloadAllTimelines() from our Network Extension on iOS 15.7 and iOS 16, and it works as expected on both. So as long as the NE is stopped gracefully (as opposed to crashes or getting killed by the system), we're now able to tell our widgets that a connection is running or has stopped, and reload the the widgets.
Topic: App & System Services SubTopic: General Tags:
Sep ’22