Post

Replies

Boosts

Views

Activity

How do I set hardware speed in my Ethernet driver?
PLATFORM AND VERSION iOS Development environment: Xcode 15.4, macOS Sonoma 14.5 Run-time configuration: macOS Sonoma 14.5 DESCRIPTION OF PROBLEM Hi, I'm on DriverKit 21.0. I'm looking for a system call (that isn't deprecated) in my driver to set the Ethernet link speed manually. Normally a user would set it by System Settings... -> Network -> -> Details -> Hardware -> Configure (Manually), and then Speed (choose the link speed). With my driver, when I configure for manual, no link speeds show up. I want to know how to populate the speeds (1000BaseT, etc.) so a user can select one. What system APIs are used for this? I can't find much detail in the documentation. I do see Instance Methods for some related things like getSupportedMediaArray, but most of these newer methods don't have details in the documentation to guide me on what they actually do. Thanks in advance...
0
0
92
1w
Run identical UI/Unit tests on different build targets
I have different versions of my iOS App (written in SwiftUI). The app on the store, the App Clip, and one or two next version apps not yet released (e.g. A/B comparison). All good. But now I've started creating UI and Unit tests and I'm confused about how to get this working. Each build target has its own scheme. And in that scheme I have a Test plan for that target. E.g. The App Clip scheme has an App Clip test plan. Since all the app variants are very similar, I only have one set of unit tests and one set of UI tests so each test plan includes the same unit test target and the UI test target. Problem: When I selected a scheme (e.g. for the App Clip) and ran the tests, it turned out that all the tests ran for another build target, not the target of the scheme. I think this might be because within the definition of the test target there's a field specifying the host application. I.e. the build target. Question: How can I set up my project so that the test plan uses the relevant target build? Or do I have to duplicate all the test targets (one for each target)? Or do I have to manually change each test target before running it for a particular build target?
1
0
128
2w
compilation error in CoreFoundation - visionos
when trying to build wireshark I'm getting the following, any idea how to solve it? [ 13%] Building C object wsutil/CMakeFiles/wsutil.dir/os_version_info.c.o In file included from wireshark/wsutil/os_version_info.c:23: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:54: /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:676:195: error: expected ',' 676 | void *CFAllocatorAllocateTyped(CFAllocatorRef allocator, CFIndex size, CFAllocatorTypeID descriptor, CFOptionFlags hint) API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), visionos(2.0)); | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:679:211: error: expected ',' 679 | void *CFAllocatorReallocateTyped(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFAllocatorTypeID descriptor, CFOptionFlags hint) API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), visionos(2.0)); | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:682:165: error: expected ',' 682 | void *CFAllocatorAllocateBytes(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint) API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), visionos(2.0)); | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:685:181: error: expected ',' 685 | void *CFAllocatorReallocateBytes(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint) API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), visionos(2.0)); | ^ In file included from wireshark/wsutil/os_version_info.c:23: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:73: /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFNumberFormatter.h:144:147: error: expected ',' 144 | CF_EXPORT const CFNumberFormatterKey kCFNumberFormatterMinGroupingDigits API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), visionos(2.0)); // CFNumber | ^ 5 errors generated. make[2]: *** [wsutil/CMakeFiles/wsutil.dir/os_version_info.c.o] Error 1 make[1]: *** [wsutil/CMakeFiles/wsutil.dir/all] Error 2 make: *** [all] Error 2
1
0
116
1w
NSMuatableAttributedString's appendString method only exist in iPhone-device build in iOS18, and not exist in Simulator-build
I have defined a method appendString method in a NSMuatableAttributedString category like this: @implementation NSMutableAttributedString (HTML) // appends a plain string extending the attributes at this position - (void)appendString:(NSString *)string { NSParameterAssert(string); NSUInteger length = [self length]; ... And this method is worked well in iOS17 and before . But when it cames iOS18 . this appendString will not be called. So I doubt maybe there is a system-defined appendString already. So I write a demo in empty project to print all the NSMuatableAttributedString method in iOS18 like these: @interface ViewController () @end @implementation ViewController void printNSStringCategories() { unsigned int count; Class nsStringClass = [NSMutableAttributedString class]; // 获取所有的方法 Method *methods = class_copyMethodList(nsStringClass, &count); for (unsigned int i = 0; i < count; i++) { SEL selector = method_getName(methods[i]); NSString *methodName = NSStringFromSelector(selector); NSLog(@"NSMutableAttributedString method: %@", methodName); } free(methods); } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. printNSStringCategories(); } And test it in my iPhone (iOS18.2) , the log will printed NSMutableAttributedString method: appendString:withAttributes: NSMutableAttributedString method: cr_appendStorage:fromRange: NSMutableAttributedString method: cr_appendString: NSMutableAttributedString method: appendString:withAttributes: NSMutableAttributedString method: appendString: So it seems a appendString: is aleady defined in system SDK . But the weird thing is when I run this code in the Xcode simulator (iOS18.1) this appendString: will not print . 1 Is it a bug of SDK ? because the appendString: only exist in device-build , and not exist in simulator-build? two more furthur question: 2.1 if the SDK contains appendString: already , why the appendString: defined in my category not cause the duplicate symbol error when compile 2.2 As the question 2.1 said , there maybe same symbols in runtime . Is there any way to find the framework/library which defined those same-name symbols ? (e.g: there are two appendString:withAttributes: in the log , I want to find the two places define each appendString:withAttributes: exactly)
1
0
139
1w
Memory leak issue. Is this a bug or am I doing something wrong?
I've been developing an app for macOS for some time. As I've been approaching the app's final development stages, I decided to try Instruments as I've suspected a memory leak was occurring, since my app's memory usage slowly grows over time. Instruments has found one leak, and I've spent considerable time trying to find the cause. Long story short, I've ended up with just an EmptyView() and Instruments were still showing a leak. I've tried creating a new project with a placeholder "Hello, world!" text, and Instruments were still detecting a leak. Am I doing something wrong here? Maybe I'm not using Instruments correctly? Or is this a bug? My Instruments version is 16.0, macOS Sequoia 15.1.
1
0
98
1w
Discrepancy between Xcode Memory Report and Xcode Instruments Memory Profiler
Hi Apple Engineers, I am encountering an issue where the memory usage reported by the Xcode memory report and the Xcode Instruments memory profiler are not aligned. Specifically: Xcode Memory Report: After implementing autoreleasepool, URLSession reading a zip file, and moving the task inside DispatchQueue.global().async, the memory usage goes down from 900MB to 450MB, indicating a potential memory leak. Xcode Instruments Memory Profiler: The memory usage goes down from 900MB to 100MB, suggesting that the memory has been properly released and there is no significant memory leak. Could you please help me understand the discrepancy between these two tools and provide guidance on the appropriate way to interpret the memory usage in my application? Which result I should rely on it? I would greatly appreciate your insights and expertise on this matter. Thank you in advance for your assistance.
2
0
148
2w
Xcode Install: Predictive Code Completion Model Failed
Does anyone know a workaround for this issue during downloads? Predictive Code Completion Model Failed -- There was an error processing the asset. I have tried installing the latest Xcode 16.1 and 16.2beta2, and both fail the same way. It has not been resolved for 2 days, so I don't think it is temporary server issue. I also tried 2 different network providers and a hotspot as related posts with different details mentioned. Details: The operation couldn’t be completed. (IDELanguageModelKit.IDEModelDownloadAdapter.(unknown context at $13003dd20).DownloadError error 3.) The operation couldn’t be completed. (IDELanguageModelKit.IDEModelDownloadAdapter.(unknown context at $1101b5d90).DownloadError error 3.) FB15799470 FB15801257
3
0
211
1w
Xcode16 missing dSYM in Firebase
The problem is that when building the application with Debug mode on Xcode 16.1, the dSYM files fail to upload to Crashlytics. It worked in latest Xcode 15 version. The workaround is to disable Debug Dylib Support in the target's Build Settings. However, this causes SwiftUI previews to stop working. Reproducing the issue Set ENABLE_DEBUG_DYLIB=YES for build options Build the application in Xcode 16.1 Firebase SDK Version 11.4.0 Xcode Version 16.1 Installation Method Swift Package Manager Firebase Version 11.5.0 Relevant Log Output warning: (arm64) /Users/dustin/Library/Developer/Xcode/DerivedData/MyAppName-cicejndcecececfe/Build/Products/Debug-iphonesimulator/MyAppName.app/ MyAppName empty dSYM file detected, dSYM was created with an executable with no debug info. The warning seems like is from XCode/lldb compiler rather than Crashlytics (https://lldb.llvm.org/cpp_reference/SymbolFileDWARF_8cpp_source.html line655). This is probably something on Apple side, Crashlytics only consumes dSYM which is generated from Xcode. (ref:https://github.com/firebase/firebase-ios-sdk/issues/14054#issuecomment-2477235548) This is related to: Firebase Issue
0
2
361
1w
There may be an issue with your account that needs to be resolved before you can continue. Please contact support.
I'm encountering an issue while trying to enroll in the Apple Developer Program using the mobile app. Every time I attempt to proceed, I receive the following error message: "There may be an issue with your account that needs to be resolved before you can continue." I have verified my account information and followed all the necessary steps. I sent an email to Apple, but I haven’t received a response for several days. I’d be grateful for any help if anyone else has experienced this issue.
2
1
124
1w
Pass Launch arguments in xcodebuild command
Hi, I need to pass the launch arguments through xcodebuild command. Is there a way to do it? I know we can edit scheme and add launch argument but it needs to be added to through command line. P.S: I'm using azure devops @Xcode5 to build and sign the .ipa xcodebuild -sdk iphoneos -configuration Debug -workspace my.xcworkspace -scheme myScheme clean CODE_SIGNING_ALLOWED=NO -launchArgument "MyLaunchArguments"
0
0
125
1w
after installing ios 18.2 beta update, my phone overheated like hell and doesnot sustain battery
Couple of days ago I installed ios 18.2 beta update and now my iphone 15 pro drains battery and overheats like hell. It is difficult to touch. and as i plug out my charger, the battery drains very fast (30% to O% in 10 minutes with no literally no use) To note, my battery health is 100% with around 176 battery cycles and i always use original apple 20W charger and cable. I have even changed the charger to a new original apple 20W charger and the issue persists. I have reset it but still the same happens. so it is lying dead for 2 days because i cannot charge it because of extreme heating. I got it checked at apple authorised service center as mentioned on apple website, they said they would reinstall the software in warranty. today they said they said the issue persists after sofware reinstallation and saying it is hardware thing. What should i do??
0
0
173
1w
dyld[1472]: Symbol not found:
dyld[1472]: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E Referenced from: <821B1759-9915-33D1-B140-D718775DFA97> /private/var/containers/Bundle/Application/EE9AE8CE-9635-4A97-AFC2-F577B888FA5A/FoxyApp.app/Frameworks/PayUUPICoreKit.framework/PayUUPICoreKit Expected in: <7D840427-6CBD-37E8-8C87-3445FFF34AE7> /private/var/containers/Bundle/Application/EE9AE8CE-9635-4A97-AFC2-F577B888FA5A/FoxyApp.app/Frameworks/Starscream.framework/Starscream app is installed on mobile but it crashes when i try to open it
0
0
74
1w
Error when building Maui project for macCatalyst
I'm trying to build and run a Maui project but keep getting the following error: I'm using JetBrains Rider and I have it set not to build for iOS but I can't seem to get past this message. I'm using an Apple Silicon Mac, the project is cross platform, builds and runs fine on Windows. The problem seems to be with libSDL2.a. Has anyone encountered this error before? If so any suggestions on what to do about it?
1
0
83
2w
Using a Sysdiagnose Log to Debug a Hard-to-Reproduce Problem
I regularly talk to developers debugging hard-to-reproduce problems. I have some general advice on that topic. I’ve posted this to DevForums before, and also sent similar info to folks who’ve opened a DTS incident, but I figured I should write it down properly. If you have questions or comments, put them in a new thread here on DevForums. Put it in the Developer Tools & Services > General topic area and tag it with Debugging. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Using a Sysdiagnose Log to Debug a Hard-to-Reproduce Problem Some problems are hard to reproduce in your office. These usually fall into one of two categories: Environment specific — This is where some of your users can easily reproduce the problem, but you can’t reproduce it in your environment. Intermittent — In this case the problem could affect any user, but it’s hard to predict when a given user will see the problem. A key tool in debugging such problems is the sysdiagnose log. This post explains how to make this technology work for you. IMPORTANT A sysdiagnose log might contain private information. If you ask a user to send you a log, make sure they understand the privacy impact of that. If you want to see how Apple handles this, run the sysdiagnose command on a fresh Mac and read through it’s initial prompt. Sysdiagnose Logs All Apple platforms can generate sysdiagnose logs. For instructions on how to do this, see our Bug Reporting > Profiles and Logs page. The resulting log is a .tar.gz file. Unpacking that reveals a bunch of files. The most critical of these is system_logs.logarchive, which is a snapshot of the system log. For more information about the system log, including links to the documentation, see Your Friend the System Log. This log snapshot includes many thousands of log entries (I just took a log snapshot on my Mac and it had 22.8 million log entries!). That can be rather daunting. To avoid chasing your tail, it pays to do some preparation. Preparation The goal here is to create a set of instructions that you can give to your user to capture an actionable sysdiagnose log. That takes some preparation. To help orient yourself in the log, add log points to your code to highlight the problem. For example, if you’re trying to track down a keychain problem where SecItemCopyMatching intermittently fails with errSecMissingEntitlement ( -34018 ), add a log point like this: import os.log let log = Logger(subsystem: "com.example.waffle-varnish", category: "keychain") func … { let err = SecItemCopyMatching(…) log.log("SecItemCopyMatching failed, err: \(err)") } When you look through a log, find this specific failure by searching for SecItemCopyMatching failed, err: -34018. You might also add log points at the start and end of an operation, which helps establish a time range of interest. Log points like this have a very low overhead and it’s fine to leave them enabled in your released product. However, in some cases you might want to make more extensive changes, creating a debug build specifically to help investigate your problem. Think about how you’re going to get that debug build to the affected users. You might, for example, set up a special TestFlight group for folks who’ve encountered this issue. Go to Bug Reporting > Profiles and Logs and look for debug profiles that might help your investigation. For example, if you’re investigating a Network Extension issue, the VPN (Network Extension) debug profile will enable useful debug logging. Now craft your instructions for your user. Include things like: Your take on the privacy impact on this Instructions on how to get the necessary build of your product If there’s a debug profile, instructions on how to install that Instructions on how to trigger the sysdiagnose log And on how to send it to you IMPORTANT Make sure to stress how important it is that the user triggers the sysdiagnose immediately after seeing the problem. Finally, test your steps. Do an initial test in your office, to make sure that the log captures the info you need. Then do an end-to-end test with someone who’s about as technically savvy as your users, to make sure that your instructions make sense to Real People™. Prompting for a Sysdiagnose Log In some cases it might not be obvious to the user when to trigger a sysdiagnose log. Imagine you’re hunting the above-mentioned errSecMissingEntitlement error and it only crops up when your product is performing some task in the background. The user doesn’t see that failure, they’re not even running your app!, so they don’t know that action is required. A good option here is to add code to actively monitor for the failure and post a local notification requesting that the user trigger a sysdiagnose log. Continuing the above example, you might write code like this: func … { let err = SecItemCopyMatching(…) log.log("SecItemCopyMatching failed, err: \(err)") if err == errSecMissingEntitlement { … post a local notification … } } Obviously this is quite intrusive so, depending on the market for your product, you might not want to deploy this to all users. Perhaps you can restrict it to your internal testers, or your external beta testers, or a particularly savvy set of customers. You can use the applefeedback URL scheme to make it easy for users to run Feedback Assistant. For more info about that, see Developer > Bug Reporting. Looking at the System Log Once you have your sysdiagnose log, unpack it and open the system log snapshot (system_logs.logarchive) in Console. The hardest part is knowing where to start. That’s why adding your own log entries, as discussed in Preparation, is so important. A good general process is: Search for log entries from your subsystem. An easy way to initiate that search is to paste the text subsystem:SSS, where SSS is your subsystem, into the Search field. Continuing the above example, find that log entry by pasting in subsystem:com.example.waffle-varnish. Identify the log entry that indicates the problem and select it. Then remove your search and work backwards through the log looking for system log entries related to your issue. The relevant log entries might not be within the time range shown by Console. Customise that by selecting values from the Showing popup in the pane divider. Once you have a rough idea of the timeframe involved, select Custom from that popup to focus on that range. If the log is showing stuff that’s not relevant to your problem, Console has some great facilities for filtering those out. For the details, choose Help > Console Help. Talk to Apple A key benefit of this approach is that, if your investigation suggests that this is a system bug, you can file a bug report and attach this sysdiagnose log to it. The setup described above is exactly the sort of info needed to analyse the bug. Likewise, if you start a thread here on DevForums about your issue, your friendly neighbourhood DTS engineer will find that sysdiagnose log very handy. Revision History 2024-11-14 Added a reference to the applefeedback URL scheme. Made other minor editorial changes. 2023-10-13 First posted.
0
0
2.0k
Oct ’23
Xcode simulator & preview not loading
Hello, I recently decided to start learning how to code for iOS. I don't have much coding experience but I still wanted to explore it for fun at least. I downloaded Xcode on my Macbook, and opened a new iOS file after downloading iOS 18.1 so I could run the simulator/get a preview of my code. Even though I only had the basic "Hello World!" that is auto-generated in my code, the preview would never show and sat at a loading screen for multiple hours, saying "Preparing (Automatic) iPhone Simulator" at the top. There is probably a simple solution that I'm missing. I would appreciate any tips! Thanks.
1
0
138
2w