Post

Replies

Boosts

Views

Activity

Equivalent of Android's SipAudioCall, SipManager etc.
I'm trying to find what/if the iOS equivalent to Android's Sip range of APIs is. For example SipAudioCall is for handling the audio calls, SipManager for initiating SIP connections. I'm aware of iOS's CallKit component and have read its documentation, however all it seems to provide basically is a listening mechanism for Voip Pushes indicating a Voip call request and a means of integrating Voip Calls with the native call screens/system. I can't see anything in the Callkit documentation or tutorials to do things like initiate a SIP connection, or register SIP identify/IP, or start a VoIP call, or actually manage an incomming VoIP call. Could somebody point me to the documentation for those APIs if they exist, if they don't, does that mean if you want to develop a VoIP app you have to implement a load of stuff from scratch?
0
0
1.4k
Nov ’22
Seeing a sudden influx of crashlytics error in an old version as soon as the new version is released
Last week we released an update to the app in the app store, version N.0. It was on a phased rollout. Several users reported a crash so the roll out was paused. A fix to the crash was released to the app store this morning, version N.1 and the rollout resumed. However immediately following the release of N.1 to the app store there are lots of crash reports arriving in Crashlytics all of a sudden for version N.0. Its as if N.0 has suddenly become available on the app store and everybody is downloading it, but that isn't the case, its definately N.1 displayed in the app store. I don't understand why all these reports from a version of the app that is now no longer available has started arriving? Could be there some caching of versions in the app store or something and when N.1 release and the rollout resumed, the app store is actually automatically updateing people's phones with N.0 instead? (There's a small number of non crash reports being reported in Crashlytics for N.1, proving its live and downloaded on some phones)
0
0
445
Oct ’23
App keeps hanging at different locations but always features NSLog and __ulock_wait2
I reported this first here: https://developer.apple.com/forums/thread/746539 But have since discovered more findings. In that report there is a hang stack trace (from an .ips file) showing the 3rd party library KKMV featuring. However since posting that I have discovered that my app is hanging all over the place at random places, I've been collecting .ips files and they are all different - expect they all have one thing in common, which is that it always involves __ulock_wait2 / NSLog. There's one example posted in the linked post, but here's a different example but with the same last lines of __ulock_wait2/NSLog Here's another snippet from a hang, again, just like all the others, it finishes with NSLog/__ulock_wait2 318 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 148 (CoreFoundation + 194472) [0x1988a27a8] 318 @objc CallExtensionManager.appBecameActive() + 28 (Myapp + 296292) [0x100ba8564] 317 CallExtensionManager.appBecameActive() + 912 (Myapp + 295912) [0x100ba83e8] 317 specialized static Logger.always(_:) + 316 (CallFilterFast + 108104) [0x100b7a648] 317 specialized withVaList<A>(_:_:) + 428 (Foundation + 5337508) [0x197c381a4] 317 _NSLogv + 164 (Foundation + 603072) [0x1977b43c0] 317 _CFLogvEx3 + 252 (CoreFoundation + 652276) [0x1989123f4] 317 _CFLogvEx2Predicate + 352 (CoreFoundation + 652792) [0x1989125f8] 317 __CFLogCString + 84 (CoreFoundation + 652948) [0x198912694] 317 _logToStderr + 144 (CoreFoundation + 653980) [0x198912a9c] 317 __ulock_wait2 + 8 (libsystem_kernel.dylib + 59708) [0x1e1a7193c] *317 ??? (<7ABFF6F3-9E55-3D7B-8DB8-8CF19FB41EFE> + 5068548) [0xfffffff008229704] Every time the app hangs, in the .ips logging is featured when the ips is opened in XCode or when the ips is examined it always features in the Heaviest stack for the main thread of the target process. I've drastically reduced the amount of logging within the app in case it was too much, but it made no difference. When the app hangs there's no crash, I'm running the app either from Testflight, or installing via XCode but then running it from XCode. If its installed via XCode then a dialog pops up saying it crashed, but there is not crash stack (there's no .crash files on the iPhone, only .ips files, there's no crash reported to crashlytics, and if reported via Testflight there's also no crash info). Why is NSLog featuring in every .ips file when this happen but at a different location everytime? If the app is hanging and blocking the main thread, then why isn't it being terminated by Watchdog and thus not producing a .crash file?
0
1
791
Feb ’24
Can a Message Filter Extension specify more than ILMessageFilterExtensionNetworkURL or switch which is used?
I asked this question of AI and it said that yes it was possible, and gave some sample code override class func filterConfiguration() -> ILMessageFilterExtensionConfiguration { let config = ILMessageFilterExtensionConfiguration() // You can specify multiple network URLs config.networkURLs = [ URL(string: "https://api1.example.com/filter")!, URL(string: "https://api2.example.com/filter")! ] return config } And said the OS will try the first, and if there's no response within the first few seconds it'll move onto the second. However, there is no such class as ILMessageFilterExtensionConfiguration AFAICT, if there is then how to access/use it, if there isn't, then I wonder how the AI counjured it up? If multiple urls can be specified, then can the extension also specify a particular API to use and switch between them at some point? When does the OS call filterConfiguration()?
0
0
449
Dec ’24
How can a live caller id database be scaled to support millions of numbers that constantly change if it must be KPIR encoded?
The example database/server provided by Apple for Live Caller ID contains a hardcoded database with a tiny number of pre-defined numbers. However, its not expected to be representational of an live real world usage server. But the question is how can that be accomplished if its a requirement that the data be KPIR encrypted? In real world scenarios, the factors that effect whether a number should be blocked or not are continually changing and evolving on a minute-by-minute basis and new information becomes available or existing information changes. If the database supports tens of millions or hundreds of millions of constantly changing phone numbers, in order to meet the requirements of the Live Caller ID being KPIR encrypted, that would imply the database has to re-encrypt its database of millions endlessly for all time. That seems unfeasable and impractical to implement. Therefore how do the Apple designers of this feature envisage/suggest a real-world server supporting millions of changing data should meet the requirement to be KPIR encrypted?
0
0
446
Mar ’25
Issue using RealmSwift in a framework versus using it in an app
If I install RealmSwift into an ios app using SPM, I have no problems. However if I install it into an ios framework, then when building there is this error: error: missing required modules: 'Realm.Private', 'Realm', 'Realm.Swift' I have discovered that if I change the import statement from: import RealmSwift to private import RealmSwift then doing that makes this build error goes away (but doing that isn't a feasible workaround as I would like to publicly export classes stored in Realm from the framework). There's no point in posting issues with Realm on their support board as its being deprecated and its tumble weeds on their forum. But I would be very interested in hearing from the Apple expects explanation or speculation on: why is importing the same framework via SPM into a framework xcode project resulting in different behavior then when importing it into an app? why would changing import to private import make the build error go away? TIA
0
0
98
Mar ’25
Released app repeatedly crashing on launch, Crashlytics is enabled but no crash reports getting sent
I've users reporting a crash on app launch which I'm unable to reproduce. The app has Crashlytics but none of the crashes are getting sent to the Crashlytics console (Crashlytics is set up correctly and reports can get through for when the app doesn't crash on startup, but not getting sent for this). I've managed to get a crash report off a phone, but can't see anything useful. Are there any clues in here as to the possible cause? Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: SIGNAL 6 Abort trap: 6 Terminating Process: AppName [566]` Last Exception Backtrace: 0 CoreFoundation 0x192622870 __exceptionPreprocess + 164 1 libobjc.A.dylib 0x18a94fc00 objc_exception_throw + 59 2 AppName 0x1046b7450 0x10401c000 + 6927440 3 AppName 0x104683990 0x10401c000 + 6715792 4 AppName 0x10468542c 0x10401c000 + 6722604 5 AppName 0x1040b5900 0x10401c000 + 628992 6 AppName 0x1040b593c 0x10401c000 + 629052 7 AppName 0x10408a3b0 0x10401c000 + 451504 8 AppName 0x10407f320 0x10401c000 + 406304 9 AppName 0x10407f4a4 0x10401c000 + 406692 10 AppName 0x1040346c0 0x10401c000 + 100032 11 UIKitCore 0x194969ddc -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 319 12 UIKitCore 0x194968f44 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 2855 13 UIKitCore 0x194967f28 -[UIApplication _runWithMainScene:transitionContext:completion:] + 855 14 UIKitCore 0x194967b74 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 131 15 UIKitCore 0x1948e4434 _UIScenePerformActionsWithLifecycleActionMask + 111 16 UIKitCore 0x19496bb70 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 215 17 UIKitCore 0x19489329c -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 219 18 UIKitCore 0x194891d14 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 607 19 UIKitCore 0x19489167c -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 247 20 UIKitCore 0x19489154c __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 147 21 UIKitCore 0x194891454 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] + 735 22 UIKitCore 0x194890cdc _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion + 223 23 UIKitCore 0x19489098c -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 315 24 UIKitCore 0x194c13520 __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.225 + 611 25 UIKitCore 0x19488fb10 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 215 26 UIKitCore 0x19488f980 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 243 27 UIKitCore 0x1949a826c -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 507 28 UIKitCore 0x1949a8004 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 287 29 FrontBoardServices 0x1ab0766d4 -[FBSScene _callOutQueue_didCreateWithTransitionContext:completion:] + 323 30 FrontBoardServices 0x1ab076570 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.108 + 279 31 FrontBoardServices 0x1ab07519c -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 167 32 FrontBoardServices 0x1ab080f8c __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke + 351 33 libdispatch.dylib 0x19a4cf300 _dispatch_client_callout + 19 34 libdispatch.dylib 0x19a4d2d48 _dispatch_block_invoke_direct + 283 35 FrontBoardServices 0x1ab071520 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 51 36 FrontBoardServices 0x1ab0714a0 -[FBSMainRunLoopSerialQueue _targetQueue_performNextIfPossible] + 239 37 FrontBoardServices 0x1ab071378 -[FBSMainRunLoopSerialQueue _performNextFromRunLoopSource] + 27 38 CoreFoundation 0x19256d31c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 27 39 CoreFoundation 0x19256c598 __CFRunLoopDoSource0 + 175 40 CoreFoundation 0x19256adac __CFRunLoopDoSources0 + 339 41 CoreFoundation 0x192569a88 __CFRunLoopRun + 827 42 CoreFoundation 0x192569668 CFRunLoopRunSpecific + 607 43 GraphicsServices 0x1d648f5ec GSEventRunModal + 163 44 UIKitCore 0x1949850d4 -[UIApplication _run] + 887 45 UIKitCore 0x194984710 UIApplicationMain + 339 46 AppName 0x10402bba8 0x10401c000 + 64424 47 dyld 0x1b5be6d44 start + 2103 Thread 0 posted as comment
1
0
847
Oct ’23
New iPhone 15 Pro - can't enabled Developer Mode (because its not there) and XCode doesn't recognize the device
An hour ago I received a new iPhone 15 Pro, however I can't enable developer mode for it. Developer mode doesn't appear in the Setting | Privacy & Security | Security section. However I read thats to be expected now for iOS 17, and that it can be enable within XCode (although I didn't have to do that with any of my other phones which have iOS 17 on them, and for all of those Developer Mode does appear in Settings). However XCode (v15, release version not beta version) doesn't recognize the device. On the iPhone I've Trusted the Mac and restarted the phone and XCode but XCode just won't see it. Apple Configurator 2 has no problem seeing/connecting to the iPhone, nor does the iExplorer app, but XCode just won't. What can I try next?
1
0
4.5k
Oct ’23
How do you symbolicate a .ips file? & .crash symbolication instructions out of date
I've got a .ips file from a handset that had hang detection turned on. Its not fully symbolicated, how can I symbolicate it? On that topic, the instructions for symbolicating a .crash file are out of date: https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report It says "click the Device Logs button in the Devices and Simulators window, then drag and drop the crash report file into the list of device logs." However with XCode 15.1 there is no Device Logs button in the Devices and Simulators window. (If there were that button, presumably these instructions only apply for logs collected from the same device as listed in Devices and Simulators. What if you have a log collected from a device to which you don't have access for it to be in Devices and Simulators?)
1
1
2.7k
Feb ’24
Whats going on with privacy manifests especially wrt the email from Apple, or lack of
Many months ago Apple stated: "From Fall 2023 you’ll receive an email from Apple if you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file" Yet it seems nobody has received them? So whats the latest situation with this, if there's a mandatory requirement to add the privacy manifest by Spring how can people meet that now looming deadline if they haven't received the email that was due in the Fall?
1
0
693
Feb ’24
How can an app detect which environment a push should be sent over / how should a server know whether to send pushes via production or sandox?
If a server is sending a push to an app, then how can it know whether it should be sending the push using the Apple sandbox push server, or the production server? If the app is on the app store or testflight then it needs to be using the sandbox server, but if the app is being run via XCode interactively as devs are developing/testing then the push needs to be sent via the sandbox server. But the server itself has no idea if the app was installed via Testflight/app store/XCode/ or a development .ipa. So the server can't know how to send the push. The app has to send the push token to the server anyway, so the app could inform the server which environment it should be sent over. But then how can the app detect that itself? A naive answer is to use #ifdef DEBUG to detect this, but that is incorrect. Which environment a push should be sent over is not correlated with that. For example an app could be being run with a debug scheme or a release scheme, but in both cases if the app is installed/running via xcode then the push environment has to be the sandbox. So my question is, is there a way the app can detect which push environment a push should be sent over in order than it can instruct the server accordingly?
1
2
741
Nov ’24
Switch between distributing code as source / as a binary
I'm getting confused reading conflicting information about Swift Packages (for example, many sources say its for distributing source code only, but Apple's documentation says a binary framework can be included in them). What I would like to be able to do is to distribute a project as a binary to external customers (so they cannot see the source code) but distribute it as source code for internal consumption (so when developing a test app that uses the project, source code can be stepped through in the debugger etc.) Is the feasible/easy? Could a package manifest be created that can easily be flipped between creating a package containing source only, and a binary only. Or would it be better to have two separate manifests?
1
0
636
Jun ’24
Confused between custom URL schemes and Universal linking and redirecting to the app store
I have a requirement to launch an app from another app (there is no requirement to launch the app from a website), and if its not installed then for the user to be redirected to the app store to download the app. The app already has a custom url scheme implemented, however the documentation and tutorials in this area are confusing and unclear. In order to launch the app, the custom url scheme will provide that, however, in order to get the redirection to the app store then firstly does the custom url scheme have to be replaced with universal links? Secondly, is it necessary to have a webpage that links to the app store? Is it possible to get this behaviour without having a website? Is it the case that Apple doesn't provide this functionality and developers have to have the hassle of hosting a website purely just for the sake of redirecting to the App Store?
1
0
1.1k
Aug ’24
Recommended way for an app to launch into the App Store
While searching I've seen more than one url form used for launching from an app into the iPhone's App Store app. Both of these work, but is one preferred to the other, if so why, or are they exactly equivalent? let appStoreLink1 = "https://itunes.apple.com/us/app/apple-store/idNNNNN?mt=8" let appStoreLink2 = "https://apps.apple.com/us/app/name-of-app/idNNNNN" if let url = URL(string: appStoreLink1 or appStoreLink2), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: {(success: Bool) in ...
1
0
564
Aug ’24
Is the Communication Notifications capability required for a Notification Service Extension and a Notification Content Extension?
I would like to add both a Notification Service Extension and a Notification Content Extension to my application. After reading some documentation and tutorials etc. I'm not clear if the Communication Notifications capability is needed or not. If it is, should it get added to the App ID or the notification IDs, or both?
1
0
621
Aug ’24