I'm facing a persistent issue with provisioning profiles not including the com.apple.developer.in-app-purchase entitlement, even though the In-App Purchase capability is clearly enabled in the Developer Portal for my app.
What I’ve already done:
Confirmed that the In-App Purchase capability is enabled in the App ID configuration
Deleted all provisioning profiles locally (~/Library/MobileDevice/Provisioning Profiles)
Regenerated both Development and App Store provisioning profiles from scratch
Tried Xcode's automatic signing (after properly registering the device)
Verified the provisioning profiles via Terminal (security cms -D -i ...) — the IAP entitlement is missing every time
Recreated valid distribution and development certificates
Cleaned the Xcode project and settings
The result:
Every attempt to build or archive the app in Xcode returns:
Missing entitlement: com.apple.developer.in-app-purchase
I've also opened a support case with Apple, but so far I’ve only been redirected to general documentation.
Has anyone encountered this recently?
Is there a known delay or sync issue on Apple’s side when enabling capabilities?
Can the provisioning profile or entitlement data be manually refreshed by Apple?
Is there any workaround that worked for you in this situation?
Entitlements
RSS for tagEntitlements allow specific capabilities or security permissions for your apps.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello,
I already have got approval from Apple for com.apple.developer.family-controls entitlement
When I am building my app, there is one part where I need to check the list of applications which I have blocked with my app.
To get the list I have to have com.apple.developer.managed-settings entitlement ...
Now how and where show I get hold of it ?
I already got permission for Family Control, how do I get hold of this now ?
Hello,
I went through the verification process to get the Tap to Pay on iPhone entitlement, and after a couple of corrections I was finally assured that I was granted the entitlement for production use.
However, in App Store Connect, I can only see "Development" for "Provisioning Support" of the entitlement, and I'm not able to publish the app to Testflight because the profile doesn't support the entitlement (I'm using automatic code signing with XCode).
Where is this going wrong? The Tap to Pay support assured me they granted the right entitlement and pointed me to the developer support.
Thank you,
Johannes
我没有勾选entitlements 中的” com.apple.security.network.server“和” com.apple.security.device.usb“,但是确实在打包时又自动出现在包里,我现在无法解决这个问题,我需要帮助,谢谢
我的.entitlements 文件如下:
排查命令:
codesign -d --entitlements :- ./Device\ Guard.app
Executable=/Users/zhanghai/Library/Developer/Xcode/DerivedData/MacGuardApp-fvfnspyxcojxojdfclyohrnupgsh/Build/Products/Debug/Device Guard.app/Contents/MacOS/Device Guard
warning: Specifying ':' in the path is deprecated and will not work in a future release
This is a continuation of my own old post that became inactive to regain traction. I am trying to resolve issues that arise when distributing a macOS app with a SysExt Network Extension (Packet Tunnel) outside the App Store using a Developer ID Certificate.
To directly distribute the app, I start with exporting the .app via Archive in Xcode.
After that, I create a new Developer ID provisioning profile for both the app and sysext and replace the embedded ones in the .app package.
After I have replaced the provisioning profiles and the have the entitlements files ready, I start signing the frameworks, sysext and parent app.
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>"<app>.app/Contents/Library/SystemExtensions/<sysext>.systemextension/Contents/Frameworks/<fw>.framework/Versions/A/<fw>
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/Frameworks/<fw>.framework/
codesign --force --options runtime --entitlements dist-vpn.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/Library/SystemExtensions/<sysext>.systemextension/Contents/MacOS/<sysext>
codesign --force --options runtime --entitlements dist.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app
After validation is successful with
codesign --verify --deep --strict --verbose=4 <app>.app
I zip the package, notarize and staple it
ditto -c -k --keepParent "<app>.app" "<app>..zip"
xcrun notarytool submit <app>.zip --keychain-profile “”<credents> --wait
xcrun stapler staple <app>.app
After that I finish creating signed and notarized .dmg/.pkg.
hdiutil create -volname “<app>” -srcfolder “<app>.app/" -ov -format UDZO ./<app>.dmg
codesign --force --sign "Developer ID Application: <name>" <app>.dmg
xcrun notarytool submit <app>.dmg --keychain-profile "<credentials>" --wait
xcrun stapler staple <app>.dmg
Then when I move the .dmg to a clean system, open the .dmg, move the .app to the Applications folder, the attempt to run it fails with “The application “” can’t be opened.”. When I look into the console, the gatekeeper disallows the launch job with the message:
86127 debug ProvisioningProfiles taskgated-helper ConfigurationProfiles entitlements: {
"com.apple.developer.networking.networkextension" = (
"packet-tunnel-provider-systemextension"
);
"com.apple.developer.system-extension.install" = 1;
"com.apple.developer.team-identifier" = <teamid>;
"keychain-access-groups" = (
“<teamid>.<app>.AppGroup"
);
} com.apple.ManagedClient
<app>: Unsatisfied entitlements: com.apple.developer.networking.networkextension, keychain-access-groups, com.apple.developer.system-extension.install, com.apple.developer.team-identifier
LAUNCH: Runningboard launch of <app> <private> returned RBSRequestErrorFailed, error Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x600001a25830 {Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}, so returning -10810
I went through all possible formats (macOS-Style and iOS-Style App Group IDs) and combinations of appgroups according to the post “App Groups: macOS vs iOS: Working Towards Harmony”. But none of those work for me. The weird part is that when I try the same steps on different developer account, I am able to get the app running. What can be wrong?
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Network Extension
Gatekeeper
Code Signing
Developer ID
Hi,
I am developing an iOS app that includes a ReplayKit Broadcast Upload Extension which requires the com.apple.developer.broadcast-upload entitlement.
The app is intended for internal development and testing on my own devices and is not yet distributed on the App Store.
Even after setting com.apple.developer.broadcast-upload=true in my .entitlements file, and linking it in Build Settings > Code Signing Entitlements; my downloaded provisional profile still did not contain the broadcast-upload entitlement.
May I know if I need explicit Apple's approval for adding the broadcast-upload entitlement; even if it's just for testing on my own devices?
Thanks.
I am building an application using .NET and Avalonia UI. The application is cross-platform. One of the tasks of the application is to coordinate data collection that is then routed into a Docker container for analysis.
Everything works as expected in Windows. Everything works as expected in macOS on the development workstation and before packaging. After I package/codesign into a hardened runtime, I start seeing crashes at the moment when I try to execute the system calls to Docker.
I am reasonably confident that this has something to do with an entitlement flag or some other permissions issue. I have been trying to sort this on my own for a while. I am only hoping someone can nudge me in the right direction.
Thanks,
Kevin
Topic:
Code Signing
SubTopic:
Entitlements
Hi everyone,
I’ve been struggling for days with a recurring issue in my iOS app build. The build fails with the following error:
Provisioning profile "iOS Team Provisioning Profile: com.myapp.bundleid" doesn't include the com.apple.InAppPurchase entitlement.
Here’s what I’ve already tried:
Created a new Bundle ID with correct capabilities (In-App Purchase, Push Notifications, Sign in with Apple).
Created a new provisioning profile manually from Apple Developer Console.
Used EAS CLI (Expo) and Xcode to regenerate all certificates and provisioning profiles.
Ensured that the In-App Purchase capability is enabled in the App ID (it's greyed out but enabled).
Made sure all subscriptions and products in App Store Connect are “Ready to Submit”.
Followed all steps from RevenueCat and Apple documentation.
Cleaned entitlements in .entitlements file and tried both and variations.
Tried building both locally and with EAS – same error every time.
Sent multiple tickets to Apple Developer Support, but no helpful reply yet.
Extra Notes:
I'm using react-native-purchases and RevenueCat, already integrated and working before this started.
The error began randomly; before that, I was able to build successfully with in-app purchases.
Even creating a completely fresh app from scratch results in the same entitlement missing error.
Has anyone faced this exact problem where the provisioning profile fails to include com.apple.InAppPurchase, even though everything is correctly set up?
Any help or insights would be greatly appreciated.
Thanks in advance!
Hi everyone, we’ve been waiting since May 30 for our Tap to Pay on iPhone entitlement to be enabled for distribution, but it’s still only active for development (Case‑ID: 14485444).
We submitted:
A new video recorded from an external device showing the full checkout flow
Updated merchant education using the ProximityReaderDiscovery.Topic.payment(.howToTap) API, as suggested by Apple
The team initially said the education was compliant, then said it wasn’t. We fixed everything, sent the updated materials, and haven’t heard back in days.
We can’t even upload the app to TestFlight because of this error:
Profile doesn't include the com.apple.developer.proximity-reader.payment.acceptance entitlement
It’s now been almost a month and a half, and this delay is becoming critical. It’s blocking both internal testing and our production release.
We’d really appreciate clarity on:
Do we need to submit another request via the form?
Or is it enough to reply to the existing email thread?
Also, are there any direct contacts or escalation paths we can use?
Any help or guidance appreciated
I've developed a Mac app distributed through the App Store that uses NSAppleScript to control Spotify and Apple Music. I'm experiencing inconsistent behavior with automation permission prompts that's affecting user experience.
Expected Behavior:
When my app first attempts to send Apple Events to Spotify or Apple Music, macOS should display the automation permission prompt, and upon user approval, the app should appear in System Preferences > Security & Privacy > Privacy > Automation.
Actual Behavior:
Initial permission prompts work correctly when both apps are actively used after my app download. If a user hasn't launched Spotify/Apple Music for an extended period, the permission prompt fails to appear when they later open the music app. The music app doesn't appear in the Automation privacy pane too. Once this happens, permission prompts never trigger again for that app
Steps to Reproduce:
Fresh install of my app
Don't use Spotify for several days/weeks
Launch Spotify
Trigger Apple Events from my app to Spotify
No permission prompt appears, app doesn't show in Automation settings
If you're using Apple Music during this time it runs without any problems.
Troubleshooting Attempted:
Used tccutil reset AppleEvents [bundle-identifier] - no effect
Verified target apps are fully launched before sending Apple Events
Tried different AppleScript commands to trigger permissions
Problem occurs inconsistently across different Macs
Technical Details:
macOS 13+ support
Using standard NSAppleScript with simple commands like "tell application 'Spotify' to playpause"
App Store distribution (no private APIs)
Issue affects both Spotify and Apple Music but seems more prevalent with Apple Music
Questions:
Is there a reliable way to programmatically trigger the automation permission prompt?
Are there timing dependencies for when macOS decides to show permission prompts?
Could app priority/usage patterns affect permission prompt behavior?
I use MediaManager to run the functions and initialize it on AppDidFinishLaunching method and start monitoring there.
Any insights or workarounds would be greatly appreciated. This inconsistency is affecting user onboarding and app functionality.
Hello Engineers
My app was rejected with the message below, BUT I don't have this entitlements in my project! I already removed all Xcode files under ${HOME}/Developer/Xcode, but the problem still alive!
Guideline 2.4.5(i) - Performance
In order to continue reviewing your app, we require additional information.
Your app uses one or more entitlements which do not appear to have matching functionality within the app. Please reply to this message in App Store Connect and describe how and where the app uses the following entitlements. You will not need to upload a new binary to provide this information.
Apps should have only the minimum set of entitlements necessary for the app to function properly. If there are entitlements that are not needed, please remove them and submit an updated binary. You will need to Developer Reject the app to upload an updated version.
"com.apple.security.assets.pictures.read-write"
"com.apple.security.assets.movies.read-write"
"com.apple.security.assets.music.read-write"
"com.apple.security.files.downloads.read-write"
Here my entitlements:
<?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>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>group.org.eof.apps</string>
</array>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
</dict>
</plist>
code-block
Who or where are these entitlements inserted?
Which button should be clicked to deactivate them?
Link to my project:
DRFXBuilder
Regards
Hello Everyone,
I am currently building an app using React Native with Swift bridging, integrating VoIP functionality using Twilio, PushKit, and CallKit. I am encountering the following issue during development:
"The current provisioning profile doesn't include the com.apple.developer.voip-push-notification entitlement."
What I’ve Done So Far:
VoIP Certificate: I have created a valid VoIP Services certificate in the Apple Developer portal.
Bundle Identifier and Provisioning Profile: A new Bundle ID was created specifically for this app. I created a provisioning profile for this Bundle ID and downloaded it for use in Xcode.
Xcode Capabilities
Push Notifications: Enabled
Background Modes: Voice over IP: Enabled, Remote notifications: Enabled
Entitlements File
I have an entitlements file named VoiceCallDemoProjectRelease.entitlements with the following content:
<?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>development</string>
<key>com.apple.developer.voip-push-notification</key>
<true/>
</dict>
</plist>
This entitlements file is properly linked in the project’s build settings.
Project Setup
I have integrated PushKit for VoIP push handling and CallKit for incoming call UI and control.
Problem:
In the Apple Developer portal under my App ID settings, I only see an option to enable Push Notifications.
There is no option available to enable Voice over IP, and therefore the provisioning profile generated does not include the com.apple.developer.voip-push-notification entitlement.
Despite enabling VoIP background mode in Xcode, adding the entitlement in my project, and using a valid VoIP certificate, the profile does not include the required entitlement.
Additional Information:
I am using an Individual Apple Developer Account, not an Organization account.
I have already attempted re-downloading the provisioning profile, restarting Xcode, and cleaning the build folder.
Question:
What steps should I take to resolve this and ensure that the com.apple.developer.voip-push-notification entitlement is included in my provisioning profile?
Is this limitation due to the type of developer account (individual vs. organization), and do I need to upgrade to an Organization account to access this entitlement?
Is there any way to request for 'com.appple.developer.voip-push-notification' entitlement to Apple Team ?
Any clarification would be appreciated.
Thank you.
Hi
I am building obs studio using cmake and Xcode.
I used
cmake --preset macos -DOBS_CODESIGN_IDENTITY="" to generate the build folder
and inside X code used Provisioning Profile with Developer ID Application certification.
The build was generated successfully but when I tried to turn on the virtual camera I see missing Missing entitlement com.apple.developer.system-extension.install error.
(My Provisioning profile has System Extension Capability checked on apple developer portal)
If I use this flow instead:
cmake --preset macos -DOBS_CODESIGN_TEAM=63B5A5WDNG
Build using Xcode with Automatic manage signing with Apple Developer Certificate.
Obs studio builds successfully and Virtual camera extension also works fine.
My primary goal is to notarise my app which contains OBS studio and Blackhole Audio driver for distribution outside app store.
If I try to sign my obs app generated in second step
codesign --deep --force --timestamp --verify --verbose \
--options runtime
--sign "Developer ID Application:***"
"OBS.app"
The obs app fails to launch due to some errors.
Can anyone please guide me which step I might be doing wrong,
Much Appreciated.
Thanks
Hello everyone,
I'm hoping to get some guidance on a frustrating codesigning issue. I have a macOS application that successfully completes the entire notarization and stapling process, but it is still rejected by Gatekeeper during the final verification step. The rejection only happens when I apply the entitlements that I believe are necessary for my app's functionality.
The application is built with PyInstaller and has the following components:
A main executable written in Python.
A bundled Tcl/Tk instance for the GUI.
Embedded Playwright components, which include the Node.js runtime and a full Chromium browser instance. These are located deep inside the .app bundle.
The Problem
The core of my application relies on Playwright to perform some automated tasks, and its bundled Chromium browser requires specific entitlements to function under the Hardened Runtime. Specifically, it needs com.apple.security.cs.allow-jit and com.apple.security.cs.allow-unsigned-executable-memory.
My signing process is as follows:
Prepare Entitlements: I use two separate .plist files:
main_app_entitlements.plist: This is for the main Python executable and only contains com.apple.security.cs.allow-jit.
jit_helper_entitlements.plist: This is for the node and Chromium Helper executables within the Playwright framework. It contains both com.apple.security.cs.allow-jit and com.apple.security.cs.allow-unsigned-executable-memory.
Inside-Out Signing: I perform a deep signing process. I find all binaries, dylibs, and frameworks, sort them by path length (deepest first), and sign each one individually with the appropriate entitlements. The main .app bundle is signed last.
Notarization: I zip the .app bundle and submit it using xcrun notarytool submit --wait. The tool reports a successful notarization every time.
Stapling: I use xcrun stapler staple on the .app bundle, and it confirms that the ticket was successfully stapled.
The point of failure
The final step is to verify the result with spctl:
spctl --assess --type execute --verbose --ignore-cache "MyApp.app"
This is where it fails.
The output is:
MyApp.app: rejected
source=Unnotarized Developer ID
This "Unnotarized Developer ID" message is confusing because xcrun notarytool and stapler both report complete success.
The crucial detail
If I run the entire process without any entitlements—just signing with the Hardened Runtime enabled—the final spctl assessment passes. However, the application then crashes at runtime as soon as it tries to use Playwright, which is expected since the browser helpers are missing their required JIT entitlements.
My question
Is there a known issue where using com.apple.security.cs.allow-jit or com.apple.security.cs.allow-unsigned-executable-memory on nested helper executables can invalidate an otherwise successful notarization?
Is my strategy of applying different, granular entitlements to different executables within the same app bundle correct?
Could the issue be related to how or when these entitlements are applied during an "inside-out" signing process? Is there a better way to structure the signing of these complex components?
I'm confident the notarization itself is working, but it seems Gatekeeper's local assessment is stricter and is being tripped up by my entitlement configuration.
Thank you in advance for any help or suggestions you can provide
Topic:
Code Signing
SubTopic:
Entitlements
Two months ago we got approval for using the Notification Filtering entitlement. We rushed out to implement it in our app, only to find out that the permission was set for the wrong bundle identifier.
We expected to get the permission for the notification extension's bundle identifier, yet it is added for the main app's bundle identifier.
Per the official docs, the entitlement permission should be in the notification service extension target:
After you receive permission to use the entitlement, add com.apple.developer.usernotifications.filtering to the entitlements file in the Notification Service Extension target.
However, this fails to get signed when compiling for non-simulator targets because of the bundle mismatch issue. Simulator perfectly filters notifications.
Adding the entitlement to the main app does compile, but filtering does not work (as expected).
We reached out to Apple twice (Case-ID: 14330583) but we have yet to receive any response.
Could there be something else wrong instead of the identifier mismatch?
Anyone have a code for testflight? Pls i would really like to use this app, some developer?