I am working on an iOS app using Flutter that tracks outgoing calls using CallKit. The call tracking functionality works perfectly in Debug mode but does not work when the app is published to TestFlight.
I have already added Background Modes (voip, audio, processing, fetch) in Info.plist. I have added CallKit.framework in Xcode under Link Binary With Libraries (set to Optional).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>production</string>
</dict>
</plist>
These are the necessary permission which I used in info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>com.agent.mygenie</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>MyGenie</string>
<key>CFBundleDocumentTypes</key>
<array/>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>mygenie</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCallKitUsageDescription</key>
<string>This app needs access to CallKit for call handling</string>
<key>NSContactsUsageDescription</key>
<string>This app needs access to your contacts for calls</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app needs access to microphone for calls</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to photo library for profile picture updation</string>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UIBackgroundModes</key>
<array>
<string>voip</string>
<string>processing</string>
<string>fetch</string>
<string>audio</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
[code.txt](https://developer.apple.com/forums/content/attachment/0a327dbd-652e-41d5-8811-c462d09e0567)
</dict>
</plist>
And below is the file are AppDelegate.swift, call_tracking_mixin.dart, & main_call.dart file for full knowledge
Xcode
RSS for tagBuild, test, and submit your app using Xcode, Apple's integrated development environment.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello,
I've noticed the prices of my products in my Xcode synced StoreKit configuration are not updated when I change the price in App Store Connect. I tried to manually sync the file, to remove and add it again to my project but old initial prices are still used.
In the screenshot below, the price is currently $2.99 but the file still uses the initial price of $1.99. It makes testing a little bit painful because I'm never sure which product is being shown.
Is this a bug?
Is there a way to get the live production App Store prices be used instead of the starting prices?
I filed a feedback for this: FB17798486
Regards,
Axel
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
StoreKit Test
StoreKit
App Store Connect
Xcode
So I will summary an issue one of our clients has asked us on GitHub:
https://github.com/pendo-io/pendo-mobile-sdk/issues/233
Project that is a custom framework that uses different SPM packages (one of them is Binary package), we have our main logic inside that framework and we have different targets that use this framework, everything works on the simulator, but running the app on the actual device provokes a crash saying "Binary framework was not found". We have like 20 other SPM packages that work fine, this is the first one we have an issue with.
Please note I understand that SPM will not copy paste the Binary for the magic framework as it does for the apps so I suggested to embed it manually.
So my question is what the best(easy) way to do it.
Please refer to the following issue for more details:
https://github.com/pendo-io/pendo-mobile-sdk/issues/233
Hi everyone,
does anyone also have the problem that e.g. the modifier .classEffect() does not work?
it is not recognized, although I have the required versions and languages all up to date.
I can't get any further, even ChatGPT was at the end of its wisdom 😬.
maybe someone has the same problem and a solution for it.
many thanks in advance
Topic:
Developer Tools & Services
SubTopic:
Xcode
Is SFSymbol Customization officially valid as a method for using SVG in embedded widgets (lock-screen & watchOS)?
I use this in UnitedPizzaHelper but wonder whether this is the prime cause why all widgets of this app gets missing on iOS devices? This issue only happened on at least 2 device in the recent 12 months (they are all on iOS 18, and one of them is running iOS 18.5... Rebooting device won't work.), and we currently have no clue how to troubleshoot this.
Update: The guy running iOS 18.5 told me that the widgets are now discoverable after waiting for minutes. Seems that this is a random issue.
Hi guys, i have an issue with my app, i am able to view in app purchase products from my deployed hybrid app (Ionic 8 with Capacitor 7) IOS platform.
My inapp products are displaying on real device os 18.5 but on simulators there are no products. Is there a bug or something.
Simulators tested 16 Pro max iPad m4, and iPad 5th gen all 18.5
other versions below the products does show and on real device.
Your assistance will be much appreciated.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Hello All
I'm encountering an issue with Keychain access in iOS simulators after reinstalling Xcode. My app successfully accesses the Keychain on physical devices, but simulators consistently fail with errors.
Details:
App uses Keychain to store API keys
Works perfectly on physical devices
After Xcode reinstall, simulator Keychain access fails
Error logs show "Keychain retrieve failed for key with status: -25300"
I've properly configured Keychain Sharing entitlements
My entitlements file includes: $(AppIdentifierPrefix)*******
What I've tried:
Resetting simulators
Deleting simulator Keychain databases manually
Adding Keychain Sharing capability
Ensuring entitlements are correct
My app worked fine with simulators before reinstalling Xcode, which suggests something changed in the development environment rather than my code.
Has anyone encountered similar issues? Is there a recommended approach for handling Keychain access in simulators that's more resilient to Xcode environment changes?
Thanks for your help!
Hi everyone,
I’ve been troubleshooting this for days — my app icon doesn’t show in the Simulator or TestFlight builds, despite what seems like a perfect setup.
✔️ What I’ve Already Verified:
AppIcon.appiconset includes all required PNGs (20x20 up to 1024x1024)
Contents.json is valid and complete (see attached)
Asset catalog folder is named AppIcon
Set correctly in Project > General > App Icon Source = "AppIcon"
Cleaned build folder, restarted Xcode, and tried on multiple simulators
Even used a fresh Xcode demo project — same result
🧪 Setup Details:
Xcode version: [replace with your version, e.g. 15.3]
iOS Deployment Target: [e.g. iOS 16.0]
App Type: SwiftUI
🔍 Screenshots Attached:
Assets.xcassets structure
Project > General tab (App Icon section)
Info.plist
Contents.json
Blank icon on simulator home screen
❓ Questions:
Could this be a metadata or cache corruption?
Is there a known issue with icons not rendering in recent Xcode builds?
Any workaround to force refresh the icon system?
Any help is deeply appreciated — thank you in advance!
Topic:
Developer Tools & Services
SubTopic:
Xcode
When I execute:
geoCoder.reverseGeocodeLocation(location, completionHandler:{[weak self](placemarks, error) in
print("reverse geocoding location after altitude: ",location.altitude)
print("placemark location first", placemarks?.first?.location?.altitude ?? -1)
The input CLLocation has correct altitude 25, instead the location in the output placemarks have altitude 0, when of course they should have the same location. Moreover it is impossible to retrofit any data in the returned placemarks as they are portrayed as a read only property.
As far as I know, there was a time that you can capture GPU workload for opengles game app on iOS using Xcode. However, currently I'm using Xcode version 15.2 and iOS18,it seems the "capture GPU workload" button is always disabled when I'm trying to debug my game app which is using opengles api for graphics rendering no matter switchinng "GPU Frame Capture" to "OpenGL ES" or "Metal" or "Automatically" in the scheme. And I'm not able to capture GPU workload for my game on iOS.
The only way to make the "capture GPU workload" button enabled is creating a new project using metal api for graphics rendering. But I don't want to change the graphics API, because it will cause a lot.
Does Xcode still support capturing GPU workload for OpenGLES game app on iOS? If not, is there an alternative way?
Topic:
Developer Tools & Services
SubTopic:
Xcode
I'm integrating Apple Pay with PayFort in a Swift iOS application, and I’m currently working on preparing a valid purchase request using Apple Pay, as described in PayFort’s documentation:
🔗 https://docsbeta.payfort.com/docs/api/build/index.html?shell#apple-pay-authorization-purchase-request
The documentation outlines the following required parameters:
apple_data
apple_signature
apple_header
apple_transactionId
apple_ephemeralPublicKey
apple_publicKeyHash
apple_paymentMethod
apple_displayName
apple_network
apple_type
Optional: apple_applicationData
I understand these should be derived from the PKPayment object after Apple Pay authorization, but I’m having trouble mapping everything correctly. Here’s what I’m seeing in code:
payment.token
// Returns something like: <PKPaymentToken: 0x28080ae80; transactionIdentifier: "..."; paymentData: 3780 bytes>
payment.token.paymentData
// Contains 3780 bytes of encrypted data
payment.token.paymentData.base64EncodedString()
// Returns a long base64 string, which at first glance seems like it could be used for apple_data,
// but PayFort doesn't accept it as-is — so this value appears to be incomplete or incorrectly formatted
I can successfully retrieve the following values from payment.token.paymentMethod:
apple_displayName
apple_network
apple_type
However, I’m still unsure how to extract or build the following in the format accepted by PayFort:
apple_data
apple_signature
apple_header
apple_transactionId
apple_ephemeralPublicKey
apple_publicKeyHash
apple_paymentMethod
These may be contained within the paymentData JSON, but I’m not sure how to decode it or if Apple allows decrypting it in a way that matches PayFort’s expected format.
How can I correctly extract or build apple_data, apple_signature, and apple_header from the Apple Pay token?
Also, how should I handle the decryption or decoding (if necessary) of paymentData to retrieve values like apple_transactionId, apple_ephemeralPublicKey, and apple_publicKeyHash?
If anyone has successfully set this up or has example code that bridges Apple Pay and PayFort’s expected request format, it would be super helpful!
Thanks in advance 🙏
For Xcode 15 and Xcode 16, whenever I try to use the Refactor->Rename command I get a spinning busy cursor for a short while then I get an alert that says:
Rename Failed
Refactoring engine failure.
This happens on several projects and I've tried removing the derived data folder, but am at a loss to find additional troubleshooting steps.
Are there other files I might remove or reset to get my "Refactoring Engine" back into shape?
Topic:
Developer Tools & Services
SubTopic:
Xcode
My project is using Fastlane 2.226.0. After converted groups to folders on XCode 16, I got an error when executed below function in Fastfile:
get_version_number(xcodeproj: "MyProject.xcodeproj", target: "MyProject")
Below is the error message output after I ran fastlane:
Unable to find XCode build setting: MARKETING_VERSION
■概要:
弊社で開発しているアプリ内には、モバイルSuicaを読み取る機能があるのですが、iOS18.4でSuicaの読み取りができない事象に遭遇しています。(ごくまれに読み取れるときがある)
■利用API
CoreNFC
■聞きたいこと:
こちらいつごろ修正されるか教えてください。
■参考情報
他社様ですが類似だと思われる事象が発生しております。
Topic:
Developer Tools & Services
SubTopic:
Xcode
I am trying to perform an unstash operation. I RC on the stash to restore, select "Apply Stashed Changes". It then launches a comparison window to allow me to cherrypick the changes I want to include. However, the button along the bottom, "Apply Changes" is grayed out and remains so no matter what I do. Switching stashes, exiting and restarting xcode. TG i made an emergency project backup right before I did the stash, just for a case like this.
Bug? Feature?
Topic:
Developer Tools & Services
SubTopic:
Xcode
The app I am working on crashes when opening a webview.
webviews are working on iOS 18.2 simulator, but crashing in 18.5 simulator.
On actual devices they don't seem to crash.
Can someone know the reason for it and how to fix it?
Hi,
in XCode and iOS app. Tried to add Icon, got image size errors. reuploaded with correct sizes and started getting this error.
Tried all the solutions from forums, didn't work.
Restarted Mac
Deleted Assets.xcassets and recreated with AppIcon and AccemntColor
Copied "Assets.xcassets" from new dummy Project to main one.
I don't have info.plist file
Could you please help.
Thanks,
Bhanu
Topic:
Developer Tools & Services
SubTopic:
Xcode
I recently encountered an issue involving Core Data’s new Composite Attributes feature and thought I would share my experience, as well as seek clarification.
I created a composite type where all attributes were mandatory, except for one. Subsequently, I added an attribute to an entity and set its type to that composite type. Upon running the app, the console output the following error:
CoreData: error: CoreData: error: Row (pk = 85) for entity ‘(EntityName)’ is missing mandatory text data for property ‘(propertyName)’
The way I resolved this was by removing the composite type attribute from the entity, after which the error no longer appeared. I also observed that in another entity, where a different composite type is used, all the attributes were optional — and no error occurred.
This raises the question: why must all attributes in a composite type be optional? Furthermore, why does Xcode not inform the developer of this requirement? I have reviewed both the documentation and the WWDC23 “What’s New in Core Data” session, but neither mentions that having non-optional attributes within a composite type will cause such errors and lead to unpredictable application behaviour.
Additionally, this issue remains unresolved in another area I raised previously in this topic:
Composite Attributes feature requires tvOS deployment target 17.0 or later
Composite Attributes feature requires watchOS deployment target 10.0 or later
However, I do not have a tvOS or watchOS target, nor do I intend to add one.
Could someone from Apple, or anyone with more experience, please clarify why all attributes within a composite type must be optional? And could it be possible for Xcode to flag this at compile time, rather than failing at runtime?
Thank you in advance.
The flags like #if DEBUG ... endif are dependent on the Active Compilation Conditions. So if they say DEBUG the enclosed code block will be executed, otherwise not.
Now I have the phenomenon that a #DEBUG block in a Package does not evaluate these conditions. It rather depends on the name of the configuration used to build.
So if I build my app with Active Compilation Condition set to DEBUG, but the configuration name is something like App-Release, the DEBUG block in my Package is not added/executed. The ones which are directly in the project are added.
Vice versa if the Compilation Condition say RELEASE but the configuration is called App-Debug the blocks in the Package are added to the compilation, but the ones in the project itself are not
It suffices that the config name contains the word Debug for this to happen. E.g. the configuration App-Release-Debug (I know that this would be stupid, but it is for demonstrating purposes) will cause the Packages to include the DEBUG blocks.
This happens no matter what you set in the Build Settings of the project and/or target.
The Packages are added via GitHub/GitLab Source Control with SPM.
Any ideas why this behaves like it does? It doesn't seem like it should...
Just wondering if it is possible to configure a secondary macbook to act as a run destination in Xcode, similar to how you would configure an iPhone as a run destination.
I have tried connecting my device via USB-C and I can see that my macbook detects the second macbook via USB but it does not show up when trying to add devices in Xcode. I suppose this flow might not be supported?