I work for a company that specializes in providing fraud detection With Apple's recent announcement regarding the introduction of privacy manifests, we are want to ensure that we are fully compliant with all requirements and standards.
Our company provides third-party libraries for various businesses to integrate into their platforms, primarily to detect and prevent fraudulent activities. This data is solely used for fraud detection and prevention, and not for advertising or any other purposes.
Given the outlined context, we seek clarity on the following points:
As a third-party library provider focused on fraud prevention, do we need to disclose the specific data points we collect under the new privacy manifest requirements?
Are there any particular considerations or exemptions for companies that use data exclusively for security and fraud prevention purposes and not for advertising or other unrelated functionalities?
Same questions but regarding required reason API
I have wrote the support but did not get any message back, so want to try my chance on the forum
Frameworks
RSS for tagAsk questions about APIs that can drive features in your apps.
Posts under Frameworks tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
https://github.com/apple/swift-evolution/pull/2165/files?short_path=c413722#diff-c4137225f01736a83bc207df99b560bc7a8f1a6710b82008e95eac866bfa6032
Sometimes the access level doesn't follow the guiding principle, so I did Pull-Request the swift-evolution on Github, and if you're curious about this, I'd like you to take a look.
Please tell me if there is anything wrong. Thank you.
I see that pstopdf and the PSNormalizer framework have been removed from Sonoma.
A sad day, given the importance of PostScript in making the Mac a success.
Hello,
I have a Cocoa application from which I fork a new process (helper sort of) and it crashes on fork due to some cleanup code probably registered with pthreads_atfork() in Network framework.
This is crash from the child process:
Application Specific Information:
*** multi-threaded process forked ***
BUG IN CLIENT OF LIBPLATFORM: os_unfair_lock is corrupt
Abort Cause 258
crashed on child side of fork pre-exec
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_platform.dylib 0x194551238 _os_unfair_lock_corruption_abort + 88
1 libsystem_platform.dylib 0x19454c788 _os_unfair_lock_lock_slow + 332
2 Network 0x19b1b4af0 nw_path_shared_necp_fd + 124
3 Network 0x19b1b4698 -[NWConcrete_nw_path_evaluator dealloc] + 72
4 Network 0x19af9d970 __nw_dictionary_dispose_block_invoke + 32
5 libxpc.dylib 0x194260210 _xpc_dictionary_apply_apply + 68
6 libxpc.dylib 0x19425c9a0 _xpc_dictionary_apply_node_f + 156
7 libxpc.dylib 0x1942600e8 xpc_dictionary_apply + 136
8 Network 0x19acd5210 -[OS_nw_dictionary dealloc] + 112
9 Network 0x19b1beb08 nw_path_release_globals + 120
10 Network 0x19b3d4fa0 nw_settings_child_has_forked() + 312
11 libsystem_pthread.dylib 0x100c8f7c8 _pthread_atfork_child_handlers + 76
12 libsystem_c.dylib 0x1943d9944 fork + 112
(...)
I'm trying to create a child process with boost::process::child which does basically just a fork() followed by execv() and I do it before the - [NSApplication run] is called.
Is it know bug or behavior which I've run into? Also what is a correct way to spawn child processes in Cocoa applications? As far as my understanding goes the basically all the available APIs (e.g. posix, NSTask) should be more or less the same thing calling the same syscalls. So forking the process early before main run loop starts and not starting another NSApplication in forked child should be ok ...or not?
Xcode 15 introduces a feature where you can see if an XCFramework is signed - (see here)
What is the behaviour when the identity expires? For example, do the app developers who have integrated the XCFramework require a brand new XCFramework which is signed with a new, valid identity? Or is there a way to address the expiration without any action from the app developers at all?
Hi guys, I’m building an audio unit and I need to add a 3rd party framework. Validating the AU with Logics plugin manager fails saying it could not find the framework. It says it is neither in /System/Library/Frameworks nor under @rpath. Then it was complaining that @ path expansion violates security policy.
Logic will still load the plugin fine, if I force it to use it, though, which seems weird.
Then I exchanged the @rpath reference in the AudioUnit with install_name_tool. That worked but told me that it had to break code signing. When I re-ran auval, the “not found” errors went away, but it still could not be loaded, supposedly because of the broken signing.
Btw, I could only get detailled information about auvals complaints if I ran Logic and thus the scanning process inside the debuugger. If I did the same thing outside the debugger, auval would only say something like 'could not load, result code 0xSomething' but not give me any details. In both cases Logic would still load the plugin if forced to.
What should I do here?
Cheers and thanks in advance :-)
Hello everyone,
I have code in swift that wraps and implements using xcframework the login to the application, I also have files for the bridge that communicate between react native and native ios code, which inherit from RCTEventEmitter: one for declaring the methods in objc and others for implementing them that communicates between My code for the third party xcframework library.
I need to take the files above (xcframework, bridges files: objc+ swift ) and my code in swift and export them to a unit that can use it in my project that can also interface with React with the bridge files and other applications in our company. I'm really at a loss as to what is best to use, spm or a framework, is spm good for an objc file and xcframework and will a lib like RCTEventEmitter be needed to import to this unit, or a framework that is scalable, dynamic and can fit?
Thanks a lot in advance if you can give me any information about these and how to make this SPM or framework according to my needs? And what is the most correct and best practice?
A while ago there was documentation published about the apparently upcoming MediaExtension Framework that was announced to be included in macOS 14 (Sonoma).
However, when I recently tried to look it up again, I noticed that all documentation about it now leads to "Not found" pages, even though it still appears in search results.
https://developer.apple.com/documentation/mediaextension/
Was this accidentally unpublished or will it not be included in macOS 14 and was therefore removed from the documentation?
I've been running into an issue on Sonoma (currently running 14.0 Beta - 23A5328b). In my app, I have a class derived from NSView that draws an image. Up until now, the image has shown up in the proper location & with the correct orientation based on the overridden value of "isFlipped" along with the value of respectFlipped in drawInRect, but with Sonoma it's not working properly.
As an example, in macOS 11.7 (Big Sur), I have my NSView-derived class, and some drawing code like this (I've hard-coded the rectangle's coordinates for ease of testing):
[image drawInRect:NSMakeRect(10, 10, 48, 48) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:NO hints:nil];
In Big Sur, here's what I see:
isFlipped returns NO & respectFlipped is NO: the image gets drawn near the bottom-left corner of the view & is oriented properly.
isFlipped returns NO & respectFlipped is YES: same as case 1
isFlipped returns YES & respectFlipped is NO: same as case 1
isFlipped returns YES & respectFlipped is YES: the image gets drawn near the bottom-left corner & is flipped.
In Sonoma, here's what I see:
isFlipped returns NO & respectFlipped is NO: the image gets drawn near the bottom-left corner of the view & is oriented properly.
isFlipped returns NO & respectFlipped is YES: same as case 1
isFlipped returns YES & respectFlipped is NO: the image gets drawn near the top-left corner & is flipped.
isFlipped returns YES & respectFlipped is YES: the image gets drawn near the top-left corner & is oriented properly.
The current code uses case 3 - isFlipped returns YES, but respectFlipped is set to NO. As such, the image that was appearing in the bottom-left corner in its correct orientation is now in the top-right corner & is flipped.
I'm considering switching to case 1, but other parts of this view rely on isFlipped returning YES, so I'd have to redo a bunch of positioning math that we currently use.
Anyway, I'd be interested to know if anyone else has encountered issues with flipped views & drawToRect calls in Sonoma.
How can I insert a UISearchBar in the middle of the shortcuts bar displayed above the keyboard on iPad?
You insert custom shortcuts in the shortcuts bar using 'someTextField.inputAssistantItem' with 'leadingBarButtonGroups' or 'trailingBarButtonGroups' properties, but it has no 'middleBarButtonGroups'.
If I add the search bar as 'inputAccessoryView', like 'someTextField.inputAccessoryView = UISearchBar()' it is added above the shortcuts bar.
I have a framework (MyFramework) in which I want to use an existing dynamic framework via SPM (called now MyDynamicFramework).
I included it as a package dependency and all seems to be good:
Then, I created a test application in which I simply include my framework with Enbed & Sign.
When I run this test application, it all works fine in simulator, but in real device I get the following signing-related issue:
dyld[24248]: Library not loaded: @rpath/MyDynamicFramework.framework/MyDynamicFramework
Referenced from: <ED356026-4AD8-3AD4-9CD7-BE977EE551E4> /private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/MyFramework
Reason: tried: '/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' (no such file),
'/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' (code signature in <2BD920A5-1906-31B6-99B9-18DE47F02514>
'/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.),
'/Users/XXXXXXX/Library/Developer/Xcode/DerivedData/MyFramework-gedzmltwlpgatndvsrwkinsfgwhr/Build/Products/Debug-iphoneos/PackageFrameworks/MyDynamicFramework.framework/MyDynamicFramework' (no such file),
...
Am I missing some settings? I thought that Embed & Sign should have solved the issue but it didn't. Thanks.
It seems that it works if I embed the MyDynamicFramework in my test application as well, even thought that's already embedded into the framework (MyFramework) that I'm using. I don't see why should I do that, isn't that including the same dynamic framework twice?
Hello everyone, I am working on an app and need to find an API that can return articles about travel. Has anyone ever done something like this?
Any help is appreciated.
Thank you,
What is the highest level of location precision achievable with the WeatherKit API? When latitude and longitude are given up to the fifth decimal place, the precision is around 1 meter. Could this ever be more accurate than providing the lat/long to the fourth decimal place, which has a precision of about 10 meters?
Hello everybody, I am a junior on iOS app development with Swift and Xcode IDE. I want to ask about the framework compatible issue.
I got a framework called "RFIDBleFramework" which provided by vendor and this framework can help connecting to a RFID device and function well. After imported this framework to my project and build, I got the following error:
"Failed to build module 'RFIDBleFramework'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.7.2 (swift-5.7.2-RELEASE)', while this compiler is 'Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)'). Please select a toolchain which matches the SDK."
I want to know whether that means xcode for the same major, minor, and patch version of Swift(in this case, 5.7.2) still not compatible? Or I have some mistakes on import a framework?
Sorry for my poor English, if there are some additional information required, I am willing to provide. Thank you for helping.
My xcode version: Version 14.2 (14C18)
I am attempting to implement the Tap to Present ID (Data Request) feature and am wondering if the Data Request will succeed without a reader token. From the wording in the WWDC video (31:50 in WWDC2023-10114 video), it sounds the reader token is necessary, but the example is building off of the previous MobileDriversLicenseDisplayRequest example where the the reader token was used only for the branding to be displayed.
In my app running on Simulator, I'm able to get the placeholder data to return from a MobileDriversLicenseDataRequest without using a reader token. Since I'm unable to test this on physical device (I don't live in a state that has Mobile ID's), I'm hoping an Apple engineer can comment on if the reader token is required strictly for the branding to be presented, and not for the Data Request itself to succeed. Thank you.
I have a critical issue where my websocket will not connect to a server that is sitting behind an NGINX reverse proxy only on iOS 13. I have tested on both a real device and simulator with no success. It simply hangs on preparing. it never receives updates to the viabilityUpdateHandler and only ever enters the preparing state of the stateUpdateHandler. On any iOS greater or equal to iOS 14 it works seamlessly. I can connect to a local server that is not dealing with any certificates on iOS 13 no problem, but when my production server is in play it does not communicate something properly.
I am using NWConnection's NWProtocolWebSocket.
The setup is basic and straight forward
let options = NWProtocolWebSocket.Options()
options.autoReplyPing = configuration.autoReplyPing
options.maximumMessageSize = configuration.maximumMessageSize
if configuration.urlRequest != nil {
options.setAdditionalHeaders(configuration.urlRequest?.allHTTPHeaderFields?.map { ($0.key, $0.value) } ?? [])
_ = configuration.cookies.map { cookie in
options.setAdditionalHeaders([(name: cookie.name, value: cookie.value)])
}
}
if !configuration.headers.isEmpty {
options.setAdditionalHeaders(configuration.headers.map { ($0.key, $0.value) } )
}
let parameters: NWParameters = configuration.trustAll ? try TLSConfiguration.trustSelfSigned(
configuration.trustAll,
queue: configuration.queue,
certificates: configuration.certificates) : (configuration.url.scheme == "ws" ? .tcp : .tls)
parameters.defaultProtocolStack.applicationProtocols.insert(options, at: 0)
connection = NWConnection(to: .url(configuration.url), using: parameters)
The trust store is also straight forward
public static func trustSelfSigned(_
trustAll: Bool,
queue: DispatchQueue,
certificates: [String]?
) throws -> NWParameters {
let options = NWProtocolTLS.Options()
var secTrustRoots: [SecCertificate]?
secTrustRoots = try certificates?.compactMap({ certificate in
let filePath = Bundle.main.path(forResource: certificate, ofType: "der")!
let data = try Data(contentsOf: URL(fileURLWithPath: filePath))
return SecCertificateCreateWithData(nil, data as CFData)!
})
sec_protocol_options_set_verify_block(
options.securityProtocolOptions,
{ _, sec_trust, sec_protocol_verify_complete in
guard !trustAll else {
sec_protocol_verify_complete(true)
return
}
let trust = sec_trust_copy_ref(sec_trust).takeRetainedValue()
if let trustRootCertificates = secTrustRoots {
SecTrustSetAnchorCertificates(trust, trustRootCertificates as CFArray)
}
dispatchPrecondition(condition: .onQueue(queue))
SecTrustEvaluateAsyncWithError(trust, queue) { _, result, error in
if let error = error {
print("Trust failed: \(error.localizedDescription)")
}
print("Validation Result: \(result)")
sec_protocol_verify_complete(result)
}
},
queue
)
sec_protocol_options_set_min_tls_protocol_version(options.securityProtocolOptions, .TLSv12)
let parameters = NWParameters(tls: options)
parameters.allowLocalEndpointReuse = true
parameters.includePeerToPeer = true
return parameters
}
my content netfilter systemextension is like this:
class FilterDataProvider: NEFilterDataProvider {
override func startFilter(completionHandler: @escaping (Error?) -> Void) {
let ipv4LocalHost = NWHostEndpoint(hostname: "127.0.0.1", port: "0")
let ipv4LocalNetworkRule = NENetworkRule(remoteNetwork: ipv4LocalHost, remotePrefix: 0, localNetwork: ipv4LocalHost, localPrefix: 0, protocol: .any, direction: .any)
let ipv4LocalFilterRule = NEFilterRule(networkRule: ipv4LocalNetworkRule, action: .filterData)
let ipv6LocalHost = NWHostEndpoint(hostname: "::1", port: "0")
let ipv6LocalNetworkRule = NENetworkRule(remoteNetwork: ipv6LocalHost, remotePrefix: 0, localNetwork: ipv6LocalHost, localPrefix: 0, protocol: .any, direction: .any)
let ipv6LocalFilterRule = NEFilterRule(networkRule: ipv6LocalNetworkRule, action: .filterData)
let normalNetworkRule = NENetworkRule(remoteNetwork: nil, remotePrefix: 0, localNetwork: nil, localPrefix: 0, protocol: .any, direction: .any)
let normalFilterRule = NEFilterRule(networkRule: normalNetworkRule, action: .filterData)
let filterSettings = NEFilterSettings(rules: [ipv4LocalFilterRule, ipv6LocalFilterRule, normalFilterRule], defaultAction: .filterData)
apply(filterSettings) { error in
completionHandler(error)
if error != nil {
log.error("Failed to apply filter settings [\(error!)]")
} else {
log.info("Start content filter successfully.")
}
}
}
override func handleNewFlow(_ flow: NEFilterFlow) -> NEFilterNewFlowVerdict {
return .allow()
}
}
when startFilter is called, all tcp connections disconnected, but i can connect again.
I am creating an application for ios.
I include two static libraries in my application.
However, if the same function name exists in two static libraries, the function that was first included as a library will be called.
(Static library written in Objective-c)
Is there any way to solve this?
Is it possible to solve it by using framework?
Note that the function names of the library are specified by the standard, so the function names cannot be changed.
Best regards.
I get this error message :
The error is not from algolia but from cocoap or xcode because Algolia is only the first framework in the install list and when I remove it from podfile I get the same error with the second framework.
I tried many thing, clean build folder, delete derived data, restart mac, uninstall and reinstall all pod files.
I hope someone can help me solve this problem!
Hi All,
I created our own framework called Framework A (which has its own Podspec and googlecast as dependency in it). I also created framework B (which has its own Podspec))and framework c (which has its own Podspec))where both uses the Framework A (using the pod). Since googlecast is dependent, it is inside Framework A, Framework B and Framework C
I am created the sampleApplication and add Framework A , Framework B and Framework C in the pod file
pod filee :
pod 'framework A'
pod 'Framework B'
pod 'Framework C'
After pod install, While trying to run thee application I am getting this error
Class GCKUICastButton is implemented in both /private/var/containers/Bundle/Application/B4F23931-F41B-45C2-AEFA-4587C81D9474/sampleApp.app/Frameworks/Framework B.framework/framework B (0x108784a28) and /private/var/containers/Bundle/Application/B4F23931-F41B-45C2-AEFA-4587C81D9474/sampleApp.app/Frameworks/Framework C.framework/Framework C (0x1053afb18). One of the two will be used. Which one is undefined.
After this Googlecast feature are breaking like cars button icon is disappearing.
Please help me in solving this problem