Overview

Post

Replies

Boosts

Views

Activity

No service and no complaints procedure
Hi, I requested a callback for Developer support as I was trying to set up a new Apple Developer account for my employer. As this was a new business for Apple, looking to create an Apple Developer Premium account, I thought Apple might be even slightly interested in helping answer some key questions. I requested a callback. The page claimed they would be 'calling shortly'. No call came. So, I requested another callback... The page again claimed they would be 'calling shortly'. Yet again, no call came. Later, I requested yet another callback... The page again claimed they would be 'calling shortly'. As is the norm, no call came. I called Apple support main telephone number, and they explained that this was a failing of their system on their part, hurrah... that was correct. But they told me they could not deal with my issue as it was a developer support issue. I already have a developer account anyway, so really they should be supporting me, I already PAY them! So normal support could only help in so far as they were able to tell me what I already know, the Apple developer support system does not work. The thing is, nobody at Apple actually cares about this. They don't really care about anything, as is clear by the lack of means to escalate issues. So, I sent an email instead, through their website form. I received no response. The next day, I requested another callback, no call came. I sent another email, and got no response. It is totally exasperating that Apple have no functional complaints system at all, and is damning of the origination. It is perfectly clear that they regard users, and customers, with abject contempt. Now I am going to have to write a snail mail letter to their CEO in the USA in the hope that they given more of a damn than those they preside over.
0
0
43
4w
ScreenCaptureKit recording output is corrupted when captureMicrophone is true
Hello everyone, I'm working on a screen recording app using ScreenCaptureKit and I've hit a strange issue. My app records the screen to an .mp4 file, and everything works perfectly until the .captureMicrophone is false In this case, I get a valid, playable .mp4 file. However, as soon as I try to enable the microphone by setting streamConfig.captureMicrophone = true, the recording seems to work, but the final .mp4 file is corrupted and cannot be played by QuickTime or any other player. This happens whether capturesAudio (app audio) is on or off. I've already added the "Privacy - Microphone Usage Description" (NSMicrophoneUsageDescription) to my Info.plist, so I don't think it's a permissions problem. I have my logic split into a ScreenRecorder class that manages state and a CaptureEngine that handles the SCStream. Here is how I'm configuring my SCStream: ScreenRecorder.swift // This is my main SCStreamConfiguration private var streamConfiguration: SCStreamConfiguration { var streamConfig = SCStreamConfiguration() // ... other HDR/preset config ... // These are the problem properties streamConfig.capturesAudio = isAudioCaptureEnabled streamConfig.captureMicrophone = isMicCaptureEnabled // breaks it if true streamConfig.excludesCurrentProcessAudio = false streamConfig.showsCursor = false if let region = selectedRegion, let display = currentDisplay { // My region/frame logic (works fine) let regionWidth = Int(region.frame.width) let regionHeight = Int(region.frame.height) streamConfig.width = regionWidth * scaleFactor streamConfig.height = regionHeight * scaleFactor // ... (sourceRect logic) ... } streamConfig.pixelFormat = kCVPixelFormatType_32BGRA streamConfig.colorSpaceName = CGColorSpace.sRGB streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 60) return streamConfig } And here is how I'm setting up the SCRecordingOutput that writes the file: ScreenRecorder.swift private func initRecordingOutput(for region: ScreenPickerManager.SelectedRegion) throws { let screeRecordingOutputURL = try RecordingWorkspace.createScreenRecordingVideoFile( in: workspaceURL, sessionIndex: sessionIndex ) let recordingConfiguration = SCRecordingOutputConfiguration() recordingConfiguration.outputURL = screeRecordingOutputURL recordingConfiguration.outputFileType = .mp4 recordingConfiguration.videoCodecType = .hevc let recordingOutput = SCRecordingOutput(configuration: recordingConfiguration, delegate: self) self.recordingOutput = recordingOutput } Finally, my CaptureEngine adds these to the SCStream: CaptureEngine.swift class CaptureEngine: NSObject, @unchecked Sendable { private(set) var stream: SCStream? private var streamOutput: CaptureEngineStreamOutput? // ... (dispatch queues) ... func startCapture(configuration: SCStreamConfiguration, filter: SCContentFilter, recordingOutput: SCRecordingOutput) async throws { let streamOutput = CaptureEngineStreamOutput() self.streamOutput = streamOutput do { stream = SCStream(filter: filter, configuration: configuration, delegate: streamOutput) // Add outputs for raw buffers (not used for file recording) try stream?.addStreamOutput(streamOutput, type: .screen, sampleHandlerQueue: videoSampleBufferQueue) try stream?.addStreamOutput(streamOutput, type: .audio, sampleHandlerQueue: audioSampleBufferQueue) try stream?.addStreamOutput(streamOutput, type: .microphone, sampleHandlerQueue: micSampleBufferQueue) // Add the file recording output try stream?.addRecordingOutput(recordingOutput) try await stream?.startCapture() } catch { logger.error("Failed to start capture: \(error.localizedDescription)") throw error } } // ... (stopCapture, etc.) ... } When I had the .captureMicrophone value to be false, I get a perfect .mp4 video playable everywhere, however, when its true, I am getting corrupted video which doesn't play at all :-
1
0
452
3w
preorderDate no longer being returned
My app is in the final stages of testing for release in two days. We did a preorder campaign, and implemented a preorder bonus by checking the preorderDate field returned from the verification result returned by the AppTransaction.shared. This worked well at the time of implementation and initial testing. Now, our QA team is reporting that the preorder bonus is not popping up for them, and we have confirmed it on the developer side that the StoreKit back end is no longer returning a valid preorderDate even though the app is clearly preordered when you check it on the app store. The developer accounts are in the US and App Store Connect clearly shows the US status as preorder. Are there any circumstances where preorderDate might be nil even if the user's app store shows preorder? Any other way we can proceed here? We can message our users that we are going to have to delay a preorder bonus on iOS, but eventually we need to get to a solution that doesn't involve us entering in all our iOS preorders by hand to give them a bonus item.
1
0
81
3w
Guideline 2.5.1 - Performance - Software Requirements
Hi all, I'm developing fitness app and I use healthkit to track user's "STEPS" count and "Heart Rate" from their iphone devices. I have been receiving this rejection and can't seem to get past this: Guideline 2.5.1 - Performance - Software Requirements The app uses the HealthKit or CareKit APIs but does not clearly identify the HealthKit and CareKit functionality in the app's user interface. Apps using these APIs should be clearly indicated to provide transparency and valuable information to users. Next Steps To resolve this issue, it would appropriate to clearly identify the HealthKit and CareKit functionality in the app's user interface. Resources Learn more about software requirements in guideline 2.5.1. How I tried to Resolve the Issue I have modified my app: adding user permission prompt, adding healthkit notification, adding healthkit indicator in the UI **1. Added a "Permission Primer" Screen (Pre-Alert) ** When a user taps "Connect Apple Health," they are now shown a dedicated explanation screen before the system permission prompt appears. This screen clearly states: "[App] integrates with HealthKit to read your Heart Rate and Steps... to calculate physical exertion." (Please see the "Connect" flow in the Session Detail view). **2. Added Explicit Source Attribution ** I have added a permanent text label reading "Health data sourced from Apple Health" directly below the heart rate and steps statistics on the Session Detail dashboard. This ensures that users always identify the source of the displayed metrics. 3. Deployment Target Correction I identified a configuration error where the Deployment Target was set to a future OS version. I have corrected this to the currently shipping iOS 18 to ensure full compliance with software requirements. 4. App Description Update I have updated the App Store description to explicitly mention the HealthKit integration and its specific purpose (tracking match intensity). However doing the above, I still continue to receive the same review message. When I asked the reviewer what else could be done to satisfy the requirement, I only get boiler plate message above. Anyone know what they really looking for? Any insights is appreciated. Thanks!
1
0
78
3w
How to mark Audio Unit as dirty (needing to be saved)
I'm working on a v2 Audio Unit that has some complicated internal state (audio, midi, other settings). When the internal state changes, I want to inform the host (f.i. Logic Pro) that my plugin state has changed, and that the main window should show the 'project changed' status through the window close button. This was easy to achieve for the VST version of the plugin, but I can't figure out a way to do it for the Audio Unit. I've tried: Notifying change of the kAudioUnitProperty_ClassInfo property that stores the plugin state: unit->PropertyChanged(kAudioUnitProperty_ClassInfo, kAudioUnitScope_Global, 0); Setting the kAudioUnitProperty_ClassInfo property value each time the plugin state changes. Adding a new parameter called 'dirtystate' and toggling it and notifying the change each time the plugin state changes. But nothing really make Logic take notice. This should be an easy task, but I can't put my finger on it. How do I flag may AUv2 as needing its status saved (i.e. the host project needs saving)?
0
0
147
4w
Quinn’s Top Ten DevForums Tips
I spend a lot of time here on DevForums. Over the years I’ve read many posts, both good and bad. This page is my attempt at writing down what makes a good one. Hopefully some of you will find it useful. Before you read this, read the official Apple Developer > Support > Developer Forums page. If you have questions or feedback about any of the points raised here, start a new thread in the Developer Tools & Services > Developer Forums subtopic. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Quinn’s Top Ten DevForums Tips Here are my top ten DevForums tips: Is DevForums right for you? Search before you ask Keep your expectations realistic Topic, subtopic, and tags Craft a quality post Prefer text over images Include details with your questions Crash reports Cross posting courtesy Resize screenshots Include a Spinal Tap reference Close your threads Think about your title Post URLs in the clear Many of these boil down to one word: Empathy. Think about the person who’s reading your post. Can they read it? Will they understand it? Will it help them? 1. Is DevForums right for you? To quote Apple Developer > Support > Developer Forums, the Apple Developer Forums (aka DevForums) are: a great place to post questions, exchange knowledge, and connect with fellow developers and Apple engineers on a variety of development topics. DevForums is focused on developer issues. That includes the APIs in Apple’s platform SDKs, Apple tools, developer-oriented Apple services like App Store Connect, and accessory development. If you have a user-level question, you’ll have more luck over in Apple Support Communities, run by Apple Support. DevForums is focused on Apple technologies. If you’re using a third-party tool or library, feel free to ask questions about it here, but you’re more likely to find folks with relevant expertise in that technology’s dedicated support channel. If you want to file a bug report, do that using Feedback Assistant. If you want to discuss a bug you’ve already filed, DevForums is a great place for that. Make sure to include your bug number in your post. For more hints and tips on the bug reporting process, see Bug Reporting: How and Why?. 2. Search before you ask DevForums has a history stretching back to 2015. Many questions have been asked and answered here. Before you start a thread, search the forums for similar threads. For details about the search syntax, see Apple Developer > Support > Developer Forums. For a quick summary, click in the search field. Remember that DevForums is world readable and thus indexed by Internet search engines. 3. Keep your expectations realistic DevForums is a support community, including both third-party developers and various folks from Apple. No one is being paid to answer DevForums questions full time. Keep that in mind when you post. Apple provides a number of other support channels. To request such support, go to the Apple Developer > Contact Us page. One of those support channels is the code-level support provided by Apple Developer Technical Support (DTS). For more information about DTS, see Apple Developer > Support > Requesting Technical Support. DTS strives to conduct most of its business here in the forums, so that our answers are available to the entire developer community. Asking about Apple’s unannounced plans is unlikely to yield useful results. Apple folks can’t discuss The Future™, and non-Apple folks can only speculate. Apple folks can’t discuss Apple’s internal business practices. For example, we can’t answer why question — “Why did Apple do this?” or “Why hasn’t Apple done that?” — unless there’s existing documentation that offers an explanation. If you think Apple should do something differently, file a bug that explains what you’d like to see change and the rationale for that. Not everyone works the same hours as you do. DevForums is a worldwide community, so there are time zones to consider, but there’s also just individual preferences. This is especially relevant around weekends, where your reply on Friday may not be seen by other folks until Monday. Different folks use DevForums in different ways. Some folks lean in to the notification system, whereas others allocate certain times of the day, or the week, to help out. 4. Topic, subtopic, and tags DevForums organises threads by two attributes: A high-level topic and subtopic A fine-grained set of tags Folks willing to offer help often monitor a specific set of subtopics or tags, and only see threads with those attributes. To increase the odds of getting a response, choose your subtopic and tags carefully. The list of subtopics is immediately visible on the top-level page. For a list of tags and their descriptions, go to Developer > Support > Forums Tags. That’s a lot of tags! When choosing a subtopic, choose the most specific one. For example, if you have a question about SwiftUI, choose UI Frameworks > SwiftUI rather than Programming Languages > Swift. The latter is primarily focused on the Swift language itself. When choosing a tag, read the description of that tag. With so many tags there are inevitably cases where a tag doesn’t mean what you think it means. For example, the Exception Handling tag is about the rarely used Exception Handling framework, not about exception handling in general, and the description makes that clear. 5. Craft a quality post When replying, use a reply rather than a comment. Comments are best reserved for short messages, like “Thanks!” or “See this other thread.” IMPORTANT If you reply in the comments, other folks on the thread may not be notified of your reply. DevForums supports Markdown formatting, similar to that used on GitHub and by DocC. The editor UI has buttons for the most common things, like Bold and Italic, but don’t feel the need to limit yourself to that. Correct formatting is particularly important for preformatted text: Use the Inline Code button, which inserts single backquote delimiters (`), for inline text in code style: identifiers and so on. Use the Code Block button, which inserts triple backquote delimiters (```), for blocks of text in code style: code snippets, logs, and so on. After submitting your post, look it over to make sure that it reads well. If not, you have a short window where you can edit the post to fix things. 6. Prefer text over images Don’t use screenshots for data that’s essentially textual, like code snippets and logs. For example, if you want to post a log message, include that as text rather than adding a screenshot. That makes it much easier for your readers to work with the text. Use the Code Block button, which inserts triple backquote delimiters (```), to format blocks of text in code style. Reserve screenshots for situations where the issue is visual, for example: When discussing view layout problems When posting instructions to achieve some task in a GUI app, like Xcode 7. Include details with your questions When starting a thread, try to include all the relevant details in your post. If you skimp on these details, folks will have to reply asking for them, and that slows things down. Specifically, anticipate the following questions: What platform are you targeting? And what version of that platform? What version of Xcode are you using? What version of the OS are you testing on? What specific API are you using? What are the exact steps you took? If something failed, what are the symptoms of that failure? If an API returned an error, what was that error? If nothing failed, what results did you see? And what were you expecting? If you filed a bug, what was the bug number? Have you tried reproducing the issue in a small test project? What else have you tried? For more thoughts on this, see Tips on writing forums posts. Oh, and if you’re having a build problem, consider attaching a full build log. 8. Crash reports If you’re trying to get help with a crash, include a crash report. For advice on how to do that, see Posting a Crash Report. 9. Cross posting courtesy Don’t start multiple threads for the same issue. That just wastes everyones time. Sometimes this happens by accident. If that’s the case, add a comment to one of the threads redirecting folks to the other one. If you find a bunch of old threads that might be related to your issue, don’t post full replies to all of them. Pick a lead thread and post your full reply there, then reply on the other threads with a link to the lead thread. Alternatively, start a new thread and reply on all the old threads with a link to that. That’ll help focus the discussion on your specific issue. If you post your question to another support channel, provide a link to that in your DevForums question, and vice versa. That avoids folks working on a question that’s already been answered elsewhere. 10. Resize screenshots If your post includes an image, make sure it renders well. Screenshots from Retina displays are often ridiculously large. Use Preview to crop the screenshot and, if necessary, downsample it by 50% (using Tools > Adjust Size). 11. Include a Spinal Tap reference To be clear, this is a joke. While the occasional Spinal Tap reference is allowed, please don’t add one to all your posts (-: 12. Close your threads If someone replies with the answer you need, mark that as accepted. That gives them some credit and helps other folks with similar questions find that answer. If you find the answer by yourself, please post a short summary of what you did. Feel free to mark that as accepted. There’s no way to change the accepted answer. See this thread for specific advice. You can’t delete your own threads. If you accidentally post two copies of the same question, choose one as the primary and, in the other one, add a reply that links to it. Beyond that, see this thread for more advice. 13. Think about your title When creating a thread, think carefully about your title. Your title is your thread’s ‘marketing statement’, a way to entice folks to read your post. Try to summarise your issue in 15 words or less. Adding tags to your title makes it harder to read. Instead, add your tags with the tagging UI. See tip 4 for more on tags. 14. Post URLs in the clear DevForums has a list of websites you can link to at will. For example, it places no restrictions on links to Swift Forums. To link to a site that’s not on the allowlist, skip the Markdown link syntax and post your link in the clear. So, this won’t work: Apple is based in [Cupertino](https://www.cupertino.org). but this will: Apple is based in Cupertino. https://www.cupertino.org Revision History 2026-01-29 Clarified the first few paragraphs in tip 3. Fixed a broken link. 2025-12-02 Tidied up and expanded tip 12. 2025-06-19 Made minor editorial changes. 2024-08-29 Added a link to Creating a test project. 2024-08-07 Add more hints to tip 7. 2024-05-27 Reworked tip 4 to account for the new topic and subtopic model. Made other minor editorial changes. 2023-11-16 Added a link to Public and Private Tags (although the gotcha it describes no longer applies). 2023-02-22 Expanded tip 3. 2023-02-10 Added a note about why questions to tip 3 (another great suggestion from Scott). Added a link to Bug Reporting: How and Why?. 2023-01-09 Added a note about tags to tip 13. 2022-12-09 Expanded tip 12. 2022-08-22 Expanded tip 5 to explain why you shouldn’t reply in the comments. 2022-08-11 Expanded tip 9. 2022-06-17 Added tip 14. Updated the preamble to include a link to the main DevForums page. 2022-06-04 Added a discussion of unannounced plans to tip 3 (thanks to Scott). 2022-06-03 Added tip 13. 2022-05-24 Added tips suggested by Claude31 and Scott. 2022-05-23 First posted.
0
0
12k
4w
Apple Music Catalog API returns HTTP 500 for all catalog endpoints with valid developer token
I’m calling the Apple Music API server-to-server using a developer token (ES256) created under my Developer account. Storefront probe succeeds: GET /v1/storefronts/us -> HTTP 200 All catalog endpoints return 500 (search, artists, charts) across multiple storefronts: GET /v1/catalog/us/search?term=rema&types=artists&limit=1 -> HTTP 500 GET /v1/catalog/us/artists/1359441424 -> HTTP 500 GET /v1/catalog/us/charts?types=songs&chart=most-played&genre=0&limit=5 -> HTTP 500 GET /v1/catalog/gb/... same results (500) I created the Media Services key ~48–72 hours ago. Media Services is enabled and associated with my Media ID. Developer token uses alg ES256, kid=<KEY_ID>, iss=<TEAM_ID>, exp ~6 months. Clock is NTP-synced. Sample request (curl) and recent response headers: curl -i -H "Authorization: Bearer " "https://api.music.apple.com/v1/catalog/us/search?term=rema&types=artists&limit=1" Response (truncated): HTTP/2 500 x-apple-jingle-correlation-key: NBZFUP7RVJBZOWVPIBVGUFMBLI x-apple-application-site: st x-daiquiri-instance: daiquiri:42282005:st53p00it-... Date: 2025-10-13T16:54:22Z This occurs consistently from different networks and with different storefronts. The same token returns 200 for /v1/storefronts/us. Please advise or route to engineering. Happy to provide full JWT header/payload (minus signature) and full response logs.
2
0
269
3w
Local Updates to Live Activities ignored after push update
I'm building out a live activity that has a button which is meant to update the content state of the Live Activity. It calls a LiveActivityIntent that runs in the app process. The push server starts my live activity and the buttons work just fine. I pass the push token back to the server for further updates and when the next update is pushed by the server the buttons no longer work. With the debugger I'm able to verify the app intent code runs and passes the updated state to the activity. However the activity never updates or re-renders. There are no logs in Xcode or Console.app that indicates what the issue could be or that the update is ignored. I have also tried adding the frequent updates key to my plist with no change. I'm updating the live activity in the LiveActivityIntent like this: public func perform() async throws -> some IntentResult { let activities = Activity<WidgetExtensionAttributes>.activities for activity in activities { let currentState = activity.content.state let currentIndex = currentState.pageIndex ?? 0 let maxIndex = max(0, currentState.items.count - 1) let newIndex: Int if forward { newIndex = min(currentIndex + 1, maxIndex) } else { newIndex = max(currentIndex - 1, 0) } var newState = currentState newState.pageIndex = newIndex await activity.update( ActivityContent( state: newState, staleDate: nil ), alertConfiguration: nil, timestamp: Date() ) } return .result() } To sum up: Push to start -> tap button on activity -> All good! Push to start -> push update -> tap button -> No good...
3
0
145
3w
OS 26 Liquid Glass: UITabBar overrides selected title text color after trait changes, causing icon and title color mismatch
I’m seeing unexpected UITabBar behavior on iOS 26 when Liquid Glass is enabled. I’m using UITabBarAppearance with a dynamic UIColor to keep the selected tab bar icon and title text in sync (blue in light mode, green in dark mode). Expected behavior The selected tab bar icon and title text should always resolve to the same color based on the current trait collection. Actual behavior On initial load, the colors are correct. However, after switching light/dark mode (or any trait change that triggers a material update): The icon keeps the configured color The title text color is overridden by the system Result: selected icon and title text end up with different colors This happens even though both colors are explicitly set to the same dynamic UIColor. Minimal reproducible example: func applyAppearance() { let color = UIColor { trait in trait.userInterfaceStyle == .dark ? .green : .blue } self.tabBar.tintColor = color }
Topic: UI Frameworks SubTopic: UIKit
1
0
132
3w
Are White Balance gains applied before or after ADC?
At which point in the image processing pipeline does iOS apply the white balance gains which can be set via AVCaptureDevice.setWhiteBalanceModeLocked(with:completionHandler:)? Are those gains applied in the analog part of the camera pipeline, before the pixel voltage gets converted via the ADC to digital values? Or does the camera first convert the pixel voltages to digital values and then the gains are applied to the digital values? Is this consistent across devices or can the behavior vary from device to device?
1
0
325
4w
Critical: finishTransaction() fails to clear queue in iOS 26.2 Sandbox (TestFlight)
Environment OS: iOS 26.2 (Beta/Release) Framework: StoreKit 1 (or StoreKit 2) Environment: TestFlight / Sandbox Device: [Insert your device model, e.g., iPhone 15 Pro] Description I am encountering a persistent issue where SKPaymentQueue.default().finishTransaction(transaction) does not successfully remove the transaction from the queue. Every time a new purchase is initiated, the observer triggers an immediate update with the previous transaction's ID (Transaction ID). The system then displays a system alert stating: "You've already purchased this In-App Purchase. It will be restored for free." Even after explicitly calling finishTransaction, the same transaction reappears in the updatedTransactions array upon the next app launch or purchase attempt. Steps to Reproduce Add a transaction observer in didFinishLaunchingWithOptions. Initiate an In-App Purchase in TestFlight. Upon success (.purchased), call SKPaymentQueue.default().finishTransaction(transaction). Attempt to buy the same non-consumable item (or any item) again. Result: The previous transaction is pushed again, and the queue never clears. What I’ve Tried Ensured finishTransaction is called on the main thread. Verified that the observer is added at app launch. Manually iterating through SKPaymentQueue.default().transactions and finishing all entries. Signed out of the Sandbox account and used a completely new test account. Deleted and reinstalled the App via TestFlight.
1
0
242
3w
spcData payload (fairplay.cer) for FairPlay key server
We're sending the spcData payload to our fairplay key server (version 5.1) with the base64 encoded string of our fairPlay.cer that was downloaded from our developer portal and we're getting a spcVersionErr (-42580) for the spc version. The value that is being received by the key server seems to be 813827283 when it should be either 1 (base_constants.SPCVersion.v1.rawValue) or 2 (base_constant.SPCVersion.v2.rawValue). We're assuming we're encoding the fairplay.cer incorrectly. Any insight from anybody would be appreciated.
2
0
284
4w
Authentication issue from Expo EAS CLI
Hello, I am experiencing an authentication issue when submitting my Expo iOS app to App Store Connect using the Expo EAS CLI from the terminal. The exact flow is as follows: I run the submit command in the terminal. I am prompted to enter my Apple ID. After entering the Apple ID, I am prompted to enter my Apple ID password. After the password is accepted, I am prompted to enter a 6-digit verification code. I receive the 6-digit code immediately via SMS or phone call. I enter the code correctly and immediately, but the CLI always returns “Invalid code.” This happens every time. Important notes: The Apple ID and password are correct. The 6-digit code is entered immediately and exactly as received. Logging in to App Store Connect via a web browser with the same Apple ID, password, and SMS code works without any issue. The problem only occurs when authenticating through the terminal using Expo EAS CLI. Could you please advise why the verification code is being rejected in the CLI and how I can successfully authenticate and submit my app?
0
0
70
3w
Frameworks and library dependencies
I have a framework, which depends on a library (GPGME) to do its actual encryption. As a consequence of using this external library, there are header files which have GPGME types in them... @interface E3Gpgme : NSObject ... /*****************************************************************************\ |* Call GPGME to sign \*****************************************************************************/ - (int) signWithMode:(gpgme_sig_mode_t)mode userId:(NSString *)signingKeyOrEmail srcStream:(E3Stream *)src dstStream:(E3Stream *)dst error:(NSError **)error; ... @end . This means the E3Gpgme class header file has to #import <gpgme.h> to get those type definitions. That is then proving problematic because the framework modularisation fails, with <e3gpgme.h> obviously not being a part of the framework, so the project refuses to build. I can see a few ways around this: Just don't run the modularisation check. That doesn't sound like a fantastic option import the GPGME headers (there's only 2) into the project and bundle them as if they were project ones. Again, not a great option, I don't expect GPGME to change its API but it runs the risk of there being a mismatch in future if the library code itself remains external. So what's the best-practice for requiring a dependency on a library, not a framework ? Is there a way to copy the library binary into a folder inside the framework folder and make sure you link with that ? Assuming that's the shared library it ought to still be ok for the LGPL licensing... Is there a better way ? I'm sure I'm not the first person to run into this :)
0
0
22
3w
Repeated NUIdentifier crash
Some of our app's users are repeatedly running into a crash on NeutrinoCore -[NUIdentifier initWithNamespace:name:version:] + 2352. It looks from the stack trace like multiple threads are performing PHFetchRequests, but that shouldn't be causing a crash. It's isolated to a small number of users, which makes me think that it's something related to their specific Photos databases (e.g., data corruption.) Do you have any suggestions how I might be able to resolve this? 2 libsystem_c.dylib abort + 124 3 NeutrinoCore -[NUAssertionPolicyCrashReport notifyAssertion:] + 66 4 NeutrinoCore -[NUAssertionPolicyComposite notifyAssertion:] + 160 5 NeutrinoCore -[NUAssertionPolicyUnique notifyAssertion:] + 176 6 NeutrinoCore -[NUAssertionHandler handleFailureInFunction:file:lineNumber:currentlyExecutingJobName:description:arguments:] + 156 7 NeutrinoCore _NUAssertFailHandler + 176 8 NeutrinoCore -[NUIdentifier initWithNamespace:name:version:] + 2352 9 NeutrinoCore -[NUIdentifier initWithName:version:] + 84 10 NeutrinoCore -[NUIdentifier initWithName:] + 68 11 PhotoImaging +[PISchema identifier] + 36 12 PhotoImaging +[PISchema registeredPhotosSchemaIdentifier] + 32 13 PhotoImaging +[PIPhotoEditHelper newComposition] + 28 14 PhotoImaging +[PICompositionSerializer deserializeCompositionFromAdjustments:metadata:formatIdentifier:formatVersion:sidecarData:error:] + 160 15 PhotoImaging +[PICompositionSerializer deserializeCompositionFromData:formatIdentifier:formatVersion:sidecarData:error:] + 224 16 PhotoLibraryServices -[PLPhotoEditPersistenceManager loadCompositionFrom:formatIdentifier:formatVersion:sidecarData:error:] + 1848 17 PhotoLibraryServices +[PLPhotoEditPersistenceManager validateAdjustmentData:formatIdentifier:formatVersion:error:] + 108 18 Photos __167+[PHContentEditingInputRequestContext contentEditingInputRequestContextForAsset:requestID:managerID:networkAccessAllowed:downloadIntent:progressHandler:resultHandler:]_block_invoke + 260 19 Photos -[PHAdjustmentData(ContentEditingInput) _contentEditing_readableByClientWithVerificationBlock:] + 136 20 Photos -[PHAdjustmentData(ContentEditingInput) _contentEditing_requiredBaseVersionReadableByClient:verificationBlock:] + 88 21 Photos -[PHContentEditingInputRequestContext _adjustmentBaseVersionFromResult:request:canHandleAdjustmentData:] + 356 22 Photos -[PHContentEditingInputRequestContext produceChildRequestsForRequest:reportingIsLocallyAvailable:isDegraded:result:] + 624 23 Photos -[PHMediaRequestContext _produceChildRequestsForRequest:withResult:] + 88 24 Photos -[PHMediaRequestContext mediaRequest:didFinishWithResult:] + 92 25 Photos -[PHAdjustmentDataRequest _finishFromAsynchronousCallback] + 124 26 Photos __39-[PHAdjustmentDataRequest startRequest]_block_invoke + 584 27 PhotoLibraryServicesCore __106-[PLAssetsdResourceClient adjustmentDataForAsset:networkAccessAllowed:trackCPLDownload:completionHandler:]block_invoke.84 + 880 28 CoreFoundation invoking + 148 29 CoreFoundation -[NSInvocation invoke] + 424 30 Foundation <deduplicated_symbol> + 16 31 Foundation -[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:] + 528 32 Foundation __88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]_block_invoke_5 + 188 33 libxpc.dylib _xpc_connection_reply_callout + 124 42 libsystem_pthread.dylib start_wqthread + 8
0
0
147
3w
XCode26.2 ld: Assertion failed: ((ct == Atom::ContentType::objcConst) || (ct == Atom::ContentType::objcData) || (ct == Atom::ContentType::constData) || (ct == Atom::ContentType::constText)), function ObjCClassReadOnlyDataRef, file Atom.cpp, line 329
Dear Apple engineers: My previous project was successfully compiled using Xcode 16.2. Now, I need to adapt it to Xcode 26. I know that the linker in Xcode 26 has undergone significant changes. So, in the 'Other Linker Flags' configuration of the Build Settings in the project engineering of Xcode 26.2, I deleted '-ld64' and added '-Xlinker -dead_strip -Xlinker -dead_strip -allow_dead_duplicates' to adapt to the new linker of Xcode 26. After the modification, when I compiled my project engineering using Xcode 26.2 compiler, I encountered a new linker error. The error log is attached. Regarding this error, how should we solve it? Thank you. XCode26.2BuildErrorLog.txt
3
0
189
4w