Post

Replies

Boosts

Views

Activity

Is it possible to include source code from an app extension in a framework?
If I have an XCode project that generates a framework when built, then I've noticed that its possible to add new additional targets to the project of type app extension. However if I add some source code to an app extension and regenerate the framework, then that source code is not accessable from the resulting framework (i.e. if the framework is included into an app, then the app code doesn't have visibility of the code that was added to the extension in the framework). Is this something which is possible to achieve? Ideally I would like to package the main source code that constitutes the framework content, along with the source code for a few extensions into a single framework, so that the app(s) that use the framework can include the framework into their main app target and also include it in the app extension target. I noticed that if the scheme of the framework is changed to the extension before building, then the result is not a .framework file but a .appex file. For client apps of the framework, can they directly include/use that .appex file? If so how can that be achieved? Does
1
0
458
Nov ’24
What security is there for associated domains specified in an app?
Hello, if an associated domain is specified for an app (for example, the url of a server services an app extension text spam filtering) then what is there in place to stop somebody with malicious intentions from obtaining that url from the .plist/.entitlements file of the app and doing something with that url, such as denial of service attack or whatever?
3
0
442
Dec ’24
What type of encryption algorithms does your app implement?
When uploading to Testflight the following questions get posted. How to answer this question gets asked in many forums, however none of the answers are satisfactory and it seems every body misreads option two. What type of encryption algorithms does your app implement? Encryption algorithms that are proprietary or not accepted as standard by international standard bodies (IEEE, IETF, ITU, etc.) Standard encryption algorithms instead of, or in addition to, using or accessing the encryption within Apple's operating system Both algorithms mentioned above None of the algorithms mentioned above In the case where an application is using standard encryption provided by the OS itself and isn't doing anything proprietary, what should the answer be? Many people on the internet say the answer should be 2). 2) Does mention standard encryption algorithms, but everybody seems to gloss over this phrase "instead of, or in addition to, using or accessing the encryption within Apple's operating system" Two is not saying the app uses standard encryption algorithms from the OS, two is saying using standard encryption algorithms instead of or in addition to, those provided by the OS. In the above options, there is none to select for the situation where the app only uses standard algorithms from the OS. If that is what 2 is meant to be, then the grammar and English usage doesn't not actually mean that. The phrase "instead of or in addition to" changes that. So what option to choose? Is there a bug in 2 and its English grammar is incorrect and doesn't convey the actual intended meaning?
2
0
615
Jan ’25
Message Filter Extension and domain alternate mode
The documentation (https://developer.apple.com/documentation/BundleResources/Entitlements/com.apple.developer.associated-domains) for a message filter extension says: If you use a private web server, which is unreachable from the public internet, while developing your app, enable the alternate mode feature to bypass the CDN and connect directly to your server. <service>:<fully qualified domain>?mode=<alternate mode> Where alternate mode is one of the following: developer Specifies that only devices in developer mode can access the domain. In this mode, you can use any valid SSL certificate on your web server, including a certificate that the system doesn’t trust. What does it mean "you can use any valid SSL certificate on your web server"? Does the app have to do anything with regards to this?
2
0
388
Jan ’25
Is it possible to create a .ipa without a distribution certificate?
I have a developer certificate but not a distribution certificate (its not my Apple account). Its possible to create an .xcarchive with a developer certificate, but what about a .ipa? After creating an archive, non of the distribution options within XCode will work without a dist cert. Is there another way to make an .ipa with just a dev cert? And if so is that going to be a dev build rather than a prod build (i.e. the .ipa would only install onto provisioned devices and would be no good for uploading to testflight for example)
3
0
602
Jan ’25
ILMessageFilterSubAction symbol not found error on iOS 17.6
If I run an app with a Message Filter Extension on iOS 18 then it works as expected, however if its installed onto a phone with iOS 17.6.1 then there is the following error: dyld[1042]: Symbol not found: _$sSo40ILMessageFilterCapabilitiesQueryResponseC14IdentityLookupE21promotionalSubActionsSaySo0abI6ActionVGvs Referenced from: <C82A1045-98F4-3751-8080-413FD0B0DEEB> /private/var/containers/Bundle/Application/F295C156-9B20-4927-AEFA-C6983388B193/Myapp.app/PlugIns/MyMessageFilterExtension.appex/CequintTextFilterExtension.debug.dylib Expected in: <29BFFA34-9B52-3D14-A254-A0653545B72E> /System/Library/Frameworks/IdentityLookup.framework/IdentityLookup (App built using XCode 16.2). Here's code causing the issue: import IdentityLookup final class MessageFilterExtension: ILMessageFilterExtension {} extension MessageFilterExtension: ILMessageFilterQueryHandling, ILMessageFilterCapabilitiesQueryHandling { func handle(_ capabilitiesQueryRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) { let response = ILMessageFilterCapabilitiesQueryResponse() response.transactionalSubActions = [.transactionalCarrier, .transactionalHealth, .transactionalPublicServices, .transactionalFinance, .transactionalWeather, .transactionalRewards, .transactionalOrders, .transactionalOthers, .transactionalReminders] response.promotionalSubActions = [.promotionalOffers, .promotionalOthers, .promotionalCoupons] completion(response) } Message filter sub actions were introduced in iOS 16, so why is this error occurring when the code is run on iOS 17, but its fine with iOS 18? This isn't specific to my app, its easily reproducable in two minutes - create an app, add a message filter extension target, change the template code to add a transactional or promotional sub action and then run and it'll occur. (Reported as issue FB16148083)
4
0
404
Jan ’25
Binaries nested in frameworks - possible or not with iOS?
I'd like to determine, definitively, if nesting of "binaries" within other "binaries" is possible with iOS. I put binaries in quotes because I've read documentation/forum posts stating things like nested frameworks isn't supported in iOS. A framework is a binary isn't it, or contains one. So does a statement such as that apply specifically and only to nested frameworks, or does it also apple to other scenarios - such as a SPM binary integrated into a framework? Here's the specific scenario I'm seeking clarity on - suppose an SDK providing an API/functionality is built as an .xcframework and that SDK contains dependencies on two other components (Firebase, AlmoFire, RealmSwift, CocoaLumberjack, whatever etc.). Lets say the SDK has two dependencies X and Y and it integrates them via SPM. Q1: If there is an app A which integrates the SDK, and A doesn't use X and Y itself, then can X and Y be embedded within the SDK and thus opague to A? Is this possible in iOS? Q2: If A integrates the SDK as above, but additionally, it itself uses X and Y independently of the SDK, then is this situation possible in iOS? Presumably in Q1 the SDK needs to embed X and Y into the framework? While presumably in Q2 it should not - because the app will be and hence that would lead to duplicate symbols and potential undefined behaviour (and therefore X and Y's SPM package spec needs to specify dynamic?) I've been trying to get a clear picture of this for literally weeks and weeks, without reaching a clear conclusion. So some definitive answer would be very much appreciated.
1
0
129
Jun ’25
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
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
846
Oct ’23
How to get a .crash file from an iPhone without using XCode?
In this Apple documentation https://developer.apple.com/documentation/xcode/acquiring-crash-reports-and-diagnostic-logs it says "If a customer reports a crash, they can transfer the crash report to either a Mac or Windows computer. See Find device crash and energy logs on a Mac or Windows computer." In the page that links to (https://help.apple.com/xcode/mac/current/#/dev0f3181c2c) it says "When an app crashes or uses excessive CPU on a device, the operating system creates a log of that event. The next time you connect the device to your Mac, the system downloads those records (known as crash or energy logs) to your Mac. " But where on your Mac, it doesn't say where. Where does it the Mac download the crash reports to?
2
0
1.2k
Oct ’23
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
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
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
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