Posts

Post marked as solved
2 Replies
305 Views
I've got this LSUIElement app (no menu bar/dock icon). It puts up a window in certain circumstances to give the user control, but otherwise just runs in the background. Today I noticed that with its window frontmost, you can type Command-Q and it will quit. Is there a way to suppress that? I have explicit controls for quitting the app, but normally the user wants it to run in the background always, and I don't want it to be so easy to accidentally quit.
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
280 Views
I spent some time cleaning up my TCC data. During that I learned that some TCC info is cached in “Mac OS X Detached Code Signature” files. Is there a way to dump their contents suitable for human consumption? The codesign tool doesn’t seem to do it (or I can’t figure out how to invoke it).
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
364 Views
Is there a way to play a specific rectangular region of interest of a video in an arbitrarily-sized view? Let's say I have a 1080p video but I'm only interested in a sub-region of the full frame. Is there a way to specify a source rect to be displayed in an arbitrary view (SwiftUI view, ideally), and have it play that in real time, without having to pre-render the cropped region? Update: I may have found a solution here: img DOT ly/blog/trim-and-crop-video-in-swift/ (Apple won't allow that URL for some dumb reason)
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
1 Replies
289 Views
My app (AppKit, not SwiftUI) displays a small utility window. I can place it over the menu bar, or in the area beside the notch on my MacBook Pro (when it is a secondary screen), but if the screen goes to sleep and I wake it, macOS has moved the window off the menu bar or down out of the notch area. Is there any way to indicate a window should never be moved by the OS?
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
431 Views
I have a regular app and an app with LSUIElement=YES. Both have Swift app lifecycle main entry points. Both have an app group ".com.company.app". Both can read and write prefs and see each other's values. But I can't for the life of me get changes from one app to notify the other. At first I tried NotificationCenter, but then learned (thanks to this thread) that you have to use KVO or Combine. I tried both. Both get the initial value, but never see subsequent changes. Combine seems to just wrap KVO, looking at the stack trace. I'm subscribing to updates like this: let defaults = UserDefaults(suiteName: "<TEAMID>.com.company.app")! defaults .publisher(for: \.enabled) .handleEvents(receiveOutput: { enabled in print("Enabled is now: \(enabled)") }) .sink { _ in } .store(in: &subs) … extension UserDefaults { @objc var enabled: Bool { get { return bool(forKey: "Enabled") } set { set(newValue, forKey: "Enabled") } } } I'm writing to prefs like this: let defaults = UserDefaults(suiteName: "<TEAMID>.com.company.app")! defaults.set(enabled, forKey: "Enabled") Am I missing something?
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
433 Views
I started building a new app with Xcode 15, and I uploaded a few builds to TestFlight with it. Now I'm trying with 15b4, and I'm getting: Invalid Toolchain. Your app was built with an unsupported SDK or version of Xcode. If you plan to submit this build to the App Store, make sure you are using the versions listed in https://help.apple.com/xcode/mac/current/#/devf16aefe3b or later. (ID: 0c544ce8-53ee-4122-b4a9-467a3d766349) Is this a bug? They've always allowed TestFlight builds with pre-release toolchans, havn't they? How else can you ensure your app is ready for the new OS version if you can't test changes to it?
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
1 Replies
538 Views
I'm migrating my app from Obj-C to Swift. It uses Core Data, and most of the entities are implemented in Obj-C. I just took a stab at converting one of my views to SwiftUI, and it runs correctly, but Preview crashes with executeFetchRequest:error: A fetch request must have an entity.. I've tried declaring the fetch request both with and without the entity: argument: @FetchRequest(entity: NewsItem.entity(), sortDescriptors: []) var newsItems : FetchedResults&lt;NewsItem&gt;
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
2 Replies
746 Views
Have you noticed that Xcode (15 for sure, I think 14 and earlier, too) has at least two kinds of source editor tabs. Some have the filename in regular text, some have it italicized. When the name is italicized, selecting another file in the navigator replaces the contents of that tab with that other file. When the filename is regular, a new tab is opened if you select a different file. When working with multiple related documents, I really dislike, in general, the browser model, wherein a windows contents are replaced by the thing you navigated to. But that's a whole separate rant. For now, I just want to know how and when Xcode decides to make one tab type or the other, and how can I control the behavior?
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
641 Views
I've got some old Objective-C code that up until Xcode 15 was compiling just fine. I recently spent time converting a lot of my project to Swift, which meant putting more stuff in the Bridging Header, but everything was fine. Till today. In file included from /Users/rmann/Projects/Personal/MyApp/repo/src/objc/MissionList/EventListCell.mm:18: In file included from /Users/rmann/Library/Developer/Xcode/DerivedData/MyApp-hkqhwvmmxqyxlkdlbpsbletzgerr/Build/Intermediates.noindex/MyApp.build/Debug-iphonesimulator/MyApp.build/DerivedSources/MyApp-Swift.h:288: In file included from /Users/rmann/Projects/Personal/MyApp/repo/src/BridgingHeader.h:8: /Users/rmann/Projects/Personal/MyApp/repo/src/objc/HessianClasses/CWHessianArchiver.h:52:55: error: reference to 'Protocol' is ambiguous +(void)setClassName:(NSString*)className forProtocol:(Protocol*)aProtocol; ^ note: candidate found by name lookup is 'Protocol' note: candidate found by name lookup is 'Protocol' This is code that uses NSProxy and passes it an Objective-C protocol. The build transcript does not show the locations of the alleged declarations. If I use Shift-Command-O and type "Protocol", I get /Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/Protocol.h, which is unexpected, given that I'm running Xcode 15 beta 2. xcode-select -p gives /Applications/Xcode-beta.app/Contents/Developer. I call this a bug, as it compiles fine in Xcode 14.3, and if it should be an error, it should say why it's ambiguous. FB12434640
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
401 Views
I'm trying to write a simple image converter app. I want it to open any image file, and export that image as another type. I started with the multiplatform document app template in Xcode 15b2, and suppressed the New command with .commands { CommandGroup(replacing: CommandGroupPlacement.newItem) {} } I also changed the document readable types: static var readableContentTypes: [UTType] { [.image] } So far, so good. Then I tried modifying the document type declaration to be public.image, and removed the Imported UTI (reasoning that it’s a standard type and shouldn’t need to be redundantly declared, and how can I possibly list all the possible image filename extensions?), but I’m not at all sure I did that right. And somewhere in all that, I noticed that my File menu no longer has an Open command. Does SwiftUI look at the declared document type or imported UTIs to decide what the File menu should look like? UPDATE: Ah, suppressing the New menu also suppressed the Open/Open Recent menu items. That's frustrating.
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
527 Views
I get that iOS decides if it will call your task, but I let my app run overnight and it never once called a task that I schedule for about 20 min in the future. If I trigger it via the debugging options here it works fine, but never has the OS called me back.
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
785 Views
I have yet to see iOS call my background task. I can get it to call it with the debug support (_simulateLaunchForTaskWithIdentifier), but not on its own. Does being foreground suppress the task call? Does being connected to the debugger (but in the background) suppress the call? Does an Xcode-installed app get its background task called? What is the Xcode scheme Run Info option “Launch due to a background fetch event"? Xcode 15b1 and iOS 17b1.
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
0 Replies
1k Views
I have an old project Objective-C iOS app I've been updating to Swift. It used to use Carthage, but now uses only SPM for dependencies. One such dependency is TrueTime (which was updated to support SPM by that author). It has two products, TrueTime, a Swift library, and CTrueTime a header-only C library with some packed, byte-aligned structs used when parsing NTP responses. I’m adding unit tests to my project, and when I import the app module with @testable import MyApp, the build fails on that line with @testable import MyApp ^ <unknown>:0: error: missing required module 'CTrueTime' The app itself builds and runs just fine. If I don’t import the app, then I have to expressly add code I want to test to the test target, which is not the right way to do these things. The other dependencies I have all work fine, but none have a C library product. I get a warning about implicitly including a bridging header, but I don’t think that has anything to do with this. Update: I also just tried adding TrueTime to a modern, pure SwiftUI iOS app, and I get the same issue. Is there something more I need to add to my test target config? (I've also posted this to stack overflow https://stackoverflow.com/questions/76284838/when-importing-app-with-testable-get-missing-required-module-ctruetime-usi)
Posted
by JetForMe.
Last updated
.
Post not yet marked as solved
1 Replies
904 Views
What is BUNDLE_EXECUTABLE_FOLDER_PATH? I came across this in a freshly-created iOS project (Xcode 14.2). In the unit tests target it created, it set TEST_HOST to $(BUILT_PRODUCTS_DIR)/MyApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyApp As far as I can tell, nothing sets BUNDLE_EXECUTABLE_FOLDER_PATH, and I can’t find it in any of the existing Xcode build settings. It's not set for Run Scripts, either, although these are close (and yes, this is an iOS project, not sure why one is MacOS): export BUNDLE_EXECUTABLE_FOLDER_NAME_deep\=MacOS export BUNDLE_EXTENSIONS_FOLDER_PATH\=Extensions A project I created several years ago does not have the TEST_HOST predefined that way.
Posted
by JetForMe.
Last updated
.