Team-scoped keys introduce the ability to restrict your token authentication keys to either development or production environments. Topic-specific keys in addition to environment isolation allow you to associate each key with a specific Bundle ID streamlining key management.
For detailed instructions on accessing these features, read our updated documentation on establishing a token-based connection to APNs.
Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
Hi, I am developing IOS(Android App) with React Native.
I am very confused about cocoapods and pod and how to correctly install it on my new Macbook Pro M4. I am not using bash but I am using zsh. Note, actuallywhich pod return nothing
During the preparation of my environment, it say
CocoaPods is one of the dependency management system available for iOS. CocoaPods is a Ruby gem. You can install CocoaPods using the version of Ruby that ships with the latest version of macOS.
the web site show two commands
gem install cocoapods
sudo gem install cocoapods
I saw another command as well
brew install cocoapods
During different processes, I experienced several time the following error (Command 'pod install failed)
Command pod install failed.
└─ Cause: pod install --repo-update --ansi exited with non-zero code: 1
Then I am confused about cocoapods and pod. Are both he same?
With my previous MacBook pro, I spend time to install cocoapod on my profile because Ruby was not the latest version on the system. But apparently, on my new Macbook Pro M4, the command ruby -v return (as well)
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin25]
The current stable version is 4.0.0.
I bought a new macbook pro M4 and I reinstalled node and all package for Rect Native 0.81 a expo 54 excepted cocoapods. Now, I need to configure the push notification and it's time to install cocoapods as it's require here
But on my new macbook pro, I would like to make sure I do it correctly and I kindly ask your help and recommandation to install Ruby and cocoapods/pod
Q1: Should I install cocoapods with brew install cocoapods or gem install cocoapods?
Q2: what's is the difference or the common point with cocoapods and pod?
Cocoapod web site said
If using the default Ruby included with macOS, installation will require you to use sudo when installing
gems
As ruby -v print 'ruby 2.6.10p210', I suppose, I should not install cocoapod with sudo
You can use a Ruby Version manager such as RVM or rbenv
to manage multiple Ruby versions, or you can use Homebrew to install a newer Ruby with brew install ruby.
As far I understand, I should not install cocoapods with the Ruby version of the system, then I suppose the command
Q3: Will 'brew install cocopads' install the latest version on my profile? Will it upgrade the system version
Q4: What will do the command
brew install rbenv ruby-build
rbenv install 3.2.2 (or better: rbenv install 4.0.0)
in comparison with
brew install ruby
My guess
I suppose that the following will help, but it would nice if you could correct me and clarify
# All should be done in my profile
brew install rbenv ruby-build
echo 'eval "$(rbenv init - bash)"' >> ~/.zprofile
source ~/.zprofile
rbenv install 4.0.0
# rbenv global 4.0.0 # What is it?
ruby -v
gem install cocoapods
Q5: But then, what about pod and the error message
Command pod install failed.
As you can see, I am a bit confused and I would appreciate your clarification
I thanks you for your help and clarification and I wish you a happy new years
Topic:
App & System Services
SubTopic:
Core OS
This is probably super simple answer that I missed, but: I have an app that has a database; I'd like to create a second app (actually a CLI tool), and access the same database. Is that possible? And, if so, how? 😄
Hello,
"This issue is blocking App store approval"
I have tried pushing my application to Appstore. However it has been rejected on the following ground:
_"As we discussed, the app uses or references the following non-public or deprecated APIs:
Frameworks/CommonLibrary.framework/CommonLibrary
Symbols:
• _SecCertificateIsValid
The use of non-public or deprecated APIs is not permitted, as they can lead to a poor user experience should these APIs change and are otherwise not supported on Apple platforms."_
I have scanned the app using "strings" tool & "otool -ov" tool.
But they have come out clean. No Non-public or deprecated APIs detected.
Please advise which tool can be used to scan the CL to locate where the deprecated API or non-public API lies and also how to rectify the same.
Thanks
Saikat Bakshi.
Topic:
App & System Services
SubTopic:
General
Since watchOS 26, watch face sharing has stopped working completely.
I tested the following:
Sharing via CLKWatchFaceLibrary
Other public APIs
Sharing via iMessage
In all cases, the watch face cannot be reinstalled after being shared.
This issue is not limited to my app. Large third-party apps such as Facer and other major watch face platforms are also affected, which suggests this is a system-level change or bug.
Everything worked correctly before watchOS 26.
Has Apple officially acknowledged this issue?
Is there a recommended place to report or track this bug?
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
Face Sharing
watchOS
Watch Complications
WidgetKit
Hi,
We are facing the issue of commissioning our Matter device to google home through iOS device will be 100% failed.
Here is our test summary regarding the issue:
TestCase1 [OK]: Commissioning our Matter 1.4.0 device to Google Nest Hub 2 by Android device (see log
DoorWindow_2.0.1_Google_Success.txt
)
TestCase2 [NG]: Commissioning Matter 1.4.0 device to Google Nest Hub 2 by iPhone13 or iPhone16 (see log
DoorWindow_2.0.1_Google_by_iOS_NG.txt
)
TestCase3 [OK]: Commissioning our Matter 1.3.0 device to Google Nest Hub 2 by iPhone13
In TestCase2, we noticed that device was first commissioned to iOS(Apple keychain) then iOS opened a commissioning window again to commission it in Google’s ecosystem, and the device was failed at above step 2, so we also tried:
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on iOS, this also fails.
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on Android, this works as expected and device pops up in Google home of iOS as well.
Could you help check what's the issue of TestCase2?
Append the environment of our testing:
NestHub 2 version
Google Home APP version
Hello,
I am working on a cross‑platform application that uses libiconv to convert strings to/from Unicode. I need to modify the existing code for compatibility with macOS. However, the call to iconv() fails with an unclear errno value (92) when using "WCHAR_T":
std::wstring ConvertToWchar(const std::string& iconvCodeSet, const std::string_view str)
{
iconv_t conv = iconv_open("WCHAR_T//TRANSLIT", iconvCodeSet.c_str());
if (conv == (iconv_t)-1)
{
std::cerr << "iconv_open() failed" << std::endl;
return {};
}
std::wstring out(str.size(), L'\0');
auto inPtr = (char*)str.data();
size_t inSize = str.size();
auto outPtr = (char*)out.data();
size_t outSize = out.size() * sizeof(wchar_t);
if (iconv(conv, &inPtr, &inSize, &outPtr, &outSize) == (size_t)-1)
{
std::cerr << "iconv() failed. errno = " << errno << std::endl;
return {};
}
if (iconv(conv, nullptr, &inSize, &outPtr, &outSize) == (size_t)-1)
{
std::cerr << "iconv() failed. errno = " << errno << std::endl;
return {};
}
iconv_close(conv);
return out;
}
int main()
{
std::string str1((const char*)u8"ΟΔΥΣΣΕΥΣ");
std::wstring str2 = ConvertToWchar("UTF-8", str1);
if (str2.empty())
return 1;
std::cout << "converted" << std::endl;
return 0;
}
Using "UTF-32" works fine, but "WCHAR_T//TRANSLIT" fails.
What is the recommended way to convert wchar_t strings using libiconv?
Why does the conversion fail with "WCHAR_T//TRANSLIT"?
Thank you in advance!
It’s been 3 days and enrollment still pending. Can you help me please? App is ready to publish
Topic:
App & System Services
SubTopic:
Core OS
Hey Apple Sipport, can you double check enrollment? its been a while for this profile. Thank you
Topic:
App & System Services
SubTopic:
Core OS
We integrated DeviceCheck framework into our app to prevent fraudulent call to our app service around one year ago.
Recently, we received a few cases related to this function over Christmas Eve period.
Based on the logs we have, it indicated both the following two functions returned errors. But we don't have the exactly errors logged and now we cannot replicate.
DCAppAttestService.shared.attestKey()
DCAppAttestService.shared.generateAssertion()
The other finding we have is some users reporting this issue recently upgraded their devices from iOS 18 to iOS 26.
So we are suspecting it's due to either the OS upgrading, or Apple's app attest service degrading.
Anyone encountered the similar issues before, or have any idea regarding the root cause? Thanks!
Hi all,
I’m building an iOS app that uses CoreNFC to communicate with a YubiKey 5C NFC over ISO14443 / ISO7816 and send APDUs (e.g. select an applet by AID).
Environment
• Device: iPhone 13 Pro Max
• iOS: 18.6.2
• Xcode: 26.1.1 (17B100)
• API: NFCTagReaderSession(pollingOption: .iso14443) using NFCTag.iso7816
What I’m trying to do
1. Start NFCTagReaderSession(.iso14443)
2. Detect tag → connect
3. Send ISO7816 APDUs (SELECT AID, etc.)
Issue A — Entitlements / signing
If I add ISO7816-related NFC entitlements, Xcode fails signing with an error like:
• “Provisioning profile … doesn’t match entitlements file value for com.apple.developer.nfc.readersession.formats”
When I inspect the generated .mobileprovision, I only see something like:
• com.apple.developer.nfc.readersession.formats = [NDEF, TAG, PACE]
…and I do not see an ISO7816 / select-identifiers entitlement (and the Developer portal UI doesn’t appear to let me enable it).
Questions:
1. Is ISO7816 access under com.apple.developer.nfc.readersession.formats restricted and requires Apple approval? If yes, what’s the correct request process?
2. Is com.apple.developer.nfc.readersession.iso7816.select-identifiers required for sending ISO7816 APDUs? If yes, how do developers obtain it / enable it for an App ID + provisioning profiles?
3. What is the Apple-supported way to configure entitlements/profiles for CoreNFC ISO7816 APDU communication with a token like a YubiKey?
Issue B — Runtime NFC error
Separately (even when I can run), I intermittently/consistently get:
• NFCError Code=104 (“Tag is not connected”)
This occurs after the tag is detected/connected when trying to establish a session or send APDUs.
I’ve verified:
• No phone case interference
• Correct placement
• Consistent detection “tick” from the phone for "Ready to Scan" prompt after tapping YubiKey 5C NFC device.
If helpful, I can share:
• A minimal sample project
• The exact entitlements I tried
• Console logs around the Code 104 failure
Thanks!
Topic:
App & System Services
SubTopic:
Core OS
We've often observed connectivity issues from our VPN app that can only be remedied by removing the VPN profile. It happens to a small but significant amount of our users, this often happens more when the app is updated, but the VPN profile corruption can happen without that too.
The behavior we're observing is that any socket opened by the packet tunnel process just fails to send any data whatsoever. Stopping and restarting the packet tunnel does not help. The only solution is to remove the profile and create a new one. We believe our app is not the only one suffering from this issue as other VPN apps have added a specific button to refresh their VPN profile, which seemingly deletes and re-created the VPN configuration profile. Previously, we've caught glimpses of this in a sysdiagnose, but that was a while ago and we found nothing of interest. Alas, the sysdiagnose was not captured on a device with the network extension diagnostic profile (it was not a developer device).
I would love to get technical support with this, as our bug reports have gone unanswered for long enough, yet we are still struggling with this issue. But of course, there is no minimum viable xcodeproject that reproduces this. Is there anything we can feasibly do to help with this issue? Is it even an acknowledged issue?
Approx Dec 13th 2025 til now (Dec 29th) I noticed my APNS dropped off to nothing daily. When I try to send APNS alerts on the developer site tool it always returns "discarded as device was offline" for multiple devices which I know are online.
When I try pushing through my VPS (as I always have without any code changes for months) I get status codes of 400 and 403 mostly and a few 200's without it delivering also.
I created a new sandbox certificate just in case it was that but still no luck, I get the same results. Ive checked for any firewall issues and I see the following on my VPS:
nslookup gateway.push.apple.com
Server: 1.1.1.1
Address: 1.1.1.1#53
** server can't find gateway.push.apple.com: NXDOMAIN
This seems like a second issue but not the primary issue that the portal is reporting.
Any ideas what to check? Im at a loss as to why its not working at all through apples test notification portal on my developer account. It seems thats the initial issue I need to solve.
Thank you for any ideas/help
We're building a parental control app using FamilyControls (.child authorization). Our architecture:
Parent sends pause command → Firestore + FCM
Child receives push → NotificationService Extension triggers main app
Main app sets ManagedSettings Shields
Problem: If child disables Notifications in Settings and force-quits the app, we cannot enforce Shields.
What we've tried:
Firestore Realtime Listener (works only when app is running)
DeviceActivityMonitor (intervalDidStart/End only triggers at schedule boundaries, eventDidReachThreshold requires explicit app selection via FamilyActivityPicker)
Question: Is there a recommended approach for parental control apps to reliably enforce Shields when the child has disabled notifications? Or is this a known limitation?
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
Hi all. Thanks in advance for any guidance you’re able to offer.
We’ve had an issue reported by multiple customers where, following an iOS update, our app crashes on the next launch. When this happens, users briefly see a split screen: half of the view shows the app background, while the other half is completely black. After this point, the app is unusable.
Here’s what we’ve uncovered so far during our investigation:
We believe this occurs when a user is already signed into the app at the time they install the iOS update. For context, we intentionally do not force users to log out of the app, as it’s primarily used for customer support and assistance. This is a firm business decision and not something we plan to change.
We suspect the issue is related to our Flutter WebView and how it restores or reloads session state following an iOS update. In the past, updating the Flutter version has resolved similar issues, but we are currently on the latest available version.
Once the half-screen issue occurs, all app functionality is blocked. At present, the only workaround is for the user to delete and reinstall the app.
The most frustrating part is that this does not affect all users. Some customers have updated to iOS 26.2 without any issues at all. We’ve been unable to reproduce the problem internally, despite extensive testing and attempts to force the conditions. That said, our IT Director did experience the issue firsthand on his own device.
For our next release, we’re planning to try the following changes, though we won’t know for certain whether they resolve the issue until the update is in the wild.
First, disabling iOS state restoration:
func application(_ application: UIApplication,
shouldSaveApplicationState coder: NSCoder) -> Bool {
return false
}
func application(_ application: UIApplication,
shouldRestoreApplicationState coder: NSCoder) -> Bool {
return false
}
This was recommended to us as it’s apparently a common approach to addressing post-update freezes or broken restore states.
Second, detecting an iOS version change and resetting the WebView / Flutter state on first launch after an update:
let lastOS = UserDefaults.standard.string(forKey: "lastOSVersion")
let currentOS = UIDevice.current.systemVersion
if lastOS != currentOS {
// Clear WebView data
WKWebsiteDataStore.default().removeData(
ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
modifiedSince: Date.distantPast,
completionHandler: {}
)
// Force Flutter engine restart
// OR route user through a native splash/login screen
UserDefaults.standard.set(currentOS, forKey: "lastOSVersion")
}
The idea here is to ensure the WebView and Flutter engine start cleanly after an iOS update, rather than attempting to restore potentially incompatible state.
We’d really welcome any ideas, suggestions, or feedback from others who may have encountered something similar. Apologies in advance if any details are vague — I’m not deeply technical, so this is based on the research and guidance we’ve gathered so far.
Thanks again for your time and help,
Chris Brodier
Topic:
App & System Services
SubTopic:
Core OS
I'm currently collecting real-time heart rate data using HKWorkoutSession. I want to track when the Apple Watch is physically removed from the user's wrist during an active workout.
However, I've noticed that workoutBuilder(_:didCollectDataOf:) continues to be called even after the watch is removed from the wrist.
Is there a way to detect when the Apple Watch is removed from the wrist during an active HKWorkoutSession? Or is this tracking not possible through the HealthKit framework?
Any guidance or alternative approaches would be appreciated.
I have a single multiplatform application that I use NSPersistentCloudKitContainer on.
This works great, except I noticed when I open two instances of the same process (not windows) on the same computer, which share the same store, data duplication and "Metadata Inconsistency" errors start appearing.
This answer (https://stackoverflow.com/a/67243833) says this is not supported with NSPersistentCloudKitContainer.
Is this indeed true?
If it isn't allowed, is the only solution to disable multiple instances of the process via a lock file? I was thinking one could somehow coordinate a single "leader" process that syncs to the cloud, with the others using NSPersistentContainer, but this would be complicated when the "leader" process terminates.
Currently, it seems iPad split views are new windows, not processes -- but overall I'm still curious :0
Thank you!
Hello,
We are developing an iAP2 accessory and encountering an issue during the Identification phase.
Issue:
Authentication: ✅ Successful
Identification: ❌ IdentificationInformation rejected (0x1D03)
Product Plan Status: "Submitted" (in MFi Portal)
What we've verified:
ProductPlanUID matches MFi Portal
All required parameters per R43 Table 101-9 are included
Parameters are in ascending order by ID
Message format appears correct
Observation:
iPhone accepts the message format but still rejects IdentificationInformation, suggesting the issue may be related to Product Plan configuration or status rather than parameter format.
Questions:
Can a Product Plan with status "Submitted" complete iAP2 identification, or does it need to be "Approved"?
Are there any Product Plan configuration requirements that might not be visible in MFi Portal?
Should we configure "Control Message Lists" in Product Plan? (We don't see this option in Portal)
We can provide additional technical details through secure channels if needed.
Thank you for your assistance.
Topic:
App & System Services
SubTopic:
General
Hello everyone,
I’m experiencing a visual issue when dismissing a sheet on iOS 26.
I’m using the same implementation shown in the official Apple documentation. While testing, I noticed that some apps do not exhibit this behavior. However, when running this code on iOS 26, the issue consistently occurs.
Issue description:
The sheet dismisses abruptly
A white screen briefly appears for a few milliseconds and then disappears
This results in a noticeable visual glitch and a poor user experience
I tested the exact same code on iOS 18, where the sheet dismisses smoothly and behaves as expected, without any visual artifacts.
Has anyone else encountered this issue on iOS 26?
Is this a known bug, or is there a recommended workaround?
Any insights would be greatly appreciated.
Thank you.
private static func getEthernetIPAddress(from interfaces: [String: String]) -> String? {
// 常见虚拟以太网接口名(根据适配器型号可能不同)
let poeEthernetInterfaces = ["en2", "en3", "en4", "en5", "eth0", "eth1"]
for interfaceName in poeEthernetInterfaces {
if let ethernetIP = interfaces[interfaceName], !ethernetIP.isEmpty {
return ethernetIP
}
}
return nil
}//我们通过该方法去抓取有线网的IP地址,但是有的设备无法抓取到,怎样才能更准确的抓取到有线网络的IP地址
I changed the AppIcon in Images.xcassets,and distribute a new version on appstore;The icon have changed on the desktop, but elsewhere, such as when switching between apps, the top left corner shows the old version of the icon.When I restart my phone,the top left corner show the new version of the icon;My phone is iPhone 13 Pro Max,iOS 18.4.1;Is there other ways to resolve the problem without restart the phone?
Topic:
App & System Services
SubTopic:
General