Suppose I have some third party frameworks integrated in an application. From May inwards, its mandatory to have privacy manifest for all the tracking APIs. But if the third party library doesnt have any plans to integrate the third party framework, how should we proceed to avoid rejection from the app store?
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
Our team uses a static library (.a) consisting of C and C++.
Our team is developing static libraries internally and not sharing them to the outside. Should we still provide 'Privacy Manifest' in this case??
I added the contents of our team's static library (.a) to the app's 'Privacy Manifest' and there was no problem.
Nevertheless, if I have to add it separately to the static library (.a), should I create a new framework project itself and not use the .a? Or can I just create a new framework and wrap the .a file??
When distributing a 3rd party SDK as an XCFramework in order to include the privacy manifest to the bundle you need to include the resources key in the target configuration to point to the correct file, for example:
resources: [.process("Resources/PrivacyInfo.xcprivacy")]
However, when distributing the xcframework as a binaryTarget resources is not available. How can I include my privacy manifest when configuring Package.swift ?
Hi, we are currently implementing below method for a quick POC in iOS (Xcode 15.3/macOS Sonoma 14.0):
func startQUICConnection() async {
// Set the initial stream to bidirectional.
options.direction = .bidirectional
self.mainConn?.stateUpdateHandler = { [weak self] state in
print("Main Connection State: \(state)")
switch state {
case .ready:
print("Ready...")
default:
break
}
}
// Don't forget to start the connection.
self.mainConn?.start(queue: self.queue)
}
This is what we have in the initializer of the class:
parameters = NWParameters(quic: options)
mainConn = NWConnection(to: endpoint, using: parameters)
These are the class's properties:
let endpoint = NWEndpoint.hostPort(host: "0.0.0.0", port: .init(integerLiteral: 6667))
let options = NWProtocolQUIC.Options(alpn: ["echo"])
let queue = DispatchQueue(label: "quic", qos: .userInteractive)
var mainConn: NWConnection? = nil
let parameters: NWParameters!
As per the logs, we never get to the .ready state for the NWConnection.
Logs:
nw_path_evaluator_create_flow_inner failed NECP_CLIENT_ACTION_ADD_FLOW (null) evaluator parameters: quic, attach protocol listener, attribution: developer, context: Default Network Context (private), proc: 022B7C28-0271-3628-8E5E-26B590B50E5B
nw_path_evaluator_create_flow_inner NECP_CLIENT_ACTION_ADD_FLOW 8FEBF750-979D-437F-B4A8-FB71F4C5A882 [22: Invalid argument]
nw_endpoint_flow_setup_channel [C2 0.0.0.0:6667 in_progress channel-flow (satisfied (Path is satisfied), interface: en0[802.11], ipv4, ipv6, dns, uses wifi)] failed to request add nexus flow
Main Connection State: preparing
Main Connection State: waiting(POSIXErrorCode(rawValue: 22): Invalid argument)
We're running a local server using proxygen on port 6667. It connects with the proxygen client though...
Have tried several thing but results are the same.
In https://developer.apple.com/support/third-party-SDK-requirements/ it says "Signatures are also required in these cases where the listed SDKs are used as binary dependencies. "
As I am clueless regarding the technicalities of how sdks are added to a host app, the term binary dependency means nothing to me.
For reference, our app uses Cocoapods to install all of the sdks.
I have developed a framework for my customer, thats a swift dyanmic framework. For code modularization i have divided this framework features in to multiple static libraries as shown in the diagram below.
Currently we have on main swift dynamnic framework and it contains 2 static libraries too. Also the first static library here in turn nested with another static library,
Key points to note here is
My static libraries contains other third party iOS frameworks
My static libraries using CoccoaPods as the dependency for Alarmofire at the moment.
My questios are
Is there any problem in the current architecture , because i heard nested libraries are not supported in iOS . but since we dont have frameworks nested here, all of our second level frameworks are static libraries only.
What are link/libary search path guidance we needed to take care to make a successful build.
我想用Network.framework中path_monitor来监听网络状态的变化,在Network.framework的interface.h中有一个枚举定义nw_interface_radio_type_t,我没有找到关于它的使用方法。
I want to use path_monitor in Network.framework to monitor changes in network status. There is an enumeration definition nw_interface_radio_type_t in interface.h of Network.framework. I have not found how to use it.
Prepared archive for validation
Validation failed
error: Asset validation failed
Missing Bundle Identifier. The application bundle contains a tool or framework [aaa.bbb.ccc.ddd.pkg/Payload/my.app/Contents/Frameworks/Abc.framework] that is missing the bundle identifier in its Info.plist file. (ID: 8d117580-6d15-4b9e-8a0c-3bd069c66c77)
error: Asset validation failed
Bad Bundle Executable. You must include a valid CFBundleExecutable key in the nested bundle [aaa.bbb.ccc.ddd.pkg/Payload/shudou.app/Contents/Frameworks/Abc.framework] property list file. (ID: 62894f06-c782-4d67-85df-91912d1b6609)
Abc.framwork is a pre-built lib used in swift. I put following keys in Abc.xcframework's Info.plist, but no effect.
<key>CFBundleIdentifier</key>
<string>aaa.bbb.ccc.ddd.Libname</string>
<key>CFBundleExecutable</key>
<string>Libname</string>
While building xcode is giving me the **** error
Cannot load module '***' built with SDK 'iphoneos16.4' when using SDK 'iphoneos17.0': /Users/***/Library/Developer/Xcode/DerivedData/project-biopprgumksoaqgnrhztiivzzjkq/Build/Products/Debug-iphoneos/Turf.framework/Modules/Turf.swiftmodule/arm64-apple-ios.swiftmodule
It's working fine on xcode 14.3 but giving error on xcode 15
I am creating a project with Flutter, but in the Runner/Frameworks folder, all files such as Pods_Runner.framework etc. are red and the file is not located in the specified folder. The same situation exists in my old projects. I don't know where I'm doing wrong, it was normal until a few days ago, but now even if I create a new project, I get the same error.
Flutter Version: 3.13.9
Cocoapods Version: 1.15.2
XCode: 15.1
Why not give devs pvt file bundle, with only image and video, it's not live photo!!! I can't use the quick look framework to preview it, and I also can't share to another app as live photo example: save it back to photos or share it by iMessage 🙄 . I can't understand this design, why not any detail? Another thing is so bad, the music data type has no store ID for musickit play item, so the Apple Journal app can play the music, but other apps can't do it! The live photo is the same. What are you doing Apple?
We use CocoaPods to manage third-party SDKs, so how should we sign and use these third-party SDKs
With Xcode 15.3, iOS SDK 17.4, in a iOS App, I have this error :
TestClass.swift:11:27: error: cannot find 'CLBeaconIdentityCondition' in scope
let beaconCondition = CLBeaconIdentityCondition(uuid: UUID(uuidString: "12345678-1234-1234-1234-123456789012"), major: 1, minor: 2)
I can reproduce with this swift code :
import CoreLocation
class TestClass: NSObject{
let beaconCondition = CLBeaconIdentityCondition(uuid: UUID(uuidString: "12345678-1234-1234-1234-123456789012"), major: 1, minor: 2)
}
And this compilation command :
xcrun swiftc -target arm64-apple-ios17.4 -sdk $(xcrun --sdk iphoneos --show-sdk-path) -emit-executable TestClass.swift -o TestClassExecutable -F /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -framework CoreLocation
0
In other frameworks, I've seen codeSignature included in dynamic cases. because dynamic frameworks have "embed and sign" option. but this time Apple said, "Signatures are so required in these cases where the listed SDKs are used as binary dependencies." Does that mean that even if the ".framework" file of the SDK you are deploying is static, you have to include codeSignature?
and if a framework is not included in Privacy-Impacting SDKs list, is it okay not to sign?
The current structure of my SDK xcframework is XXXX-Release.xcframework. Inside that, I have an XXXX.xcframework and a LICENSE.md file. Currently, this structure works fine in Swift Package Manager, dropping the XXXX-Release.xcframework file into Xcode and CocoaPods.
When I sign my xcframework as per Apple's requirements, I need to sign XXXX.xcframework, which is on the second level. Signing this works fine.
Will this meet Apple's requirements for signing an xcframework? I just want to make sure the current structure of my SDK does not need to change.
Thanks
this post is related to the https://developer.apple.com/videos/play/wwdc2023/10061/
Hi, we are wondering if the framework should be signed.
the video indicates that all xcframework must be signed, on the other hand framework is not mentioned even website.
does anyone have ideas?
I have apps using CMAltimeter to get sensor data, but recently they stop working with iOS 17.4, it is not release but some user running beta version, the is no access to the sensor data anymore (altitude and barometer). Some user report they can fix it by manual the "Motion & Fitness" permission but it only appear on some device. Report has been sent to Apple but I post here to find the solution to fix it.
libdispatch.dylib:_dispatch_client_callout +40
Hi Team,
We have a static framework and we have included the PrivacyInfo.xcprivacy for each architecture inside the xcframework and when we try to generate the privacy report it throws error like xcprivacy not found.
Can you please tell us how to include the PrivacyInfo.xcprivacy file for static frameworks.
Hi! I'm moving my UINavigationBar and UINavigationItem to the iOS 16 style and having trouble with disabling buttons.
Before:
I'm defining rightBarButtonItems with a few barButtonItems plus a (custom) menuButtonItem (which has a menu with some more actions).
After:
I'm defining trailingItemGroups and let the system create an overflow menu dynamically, depending on space. I'm also defining some additionalOverflowItems.
Here's the problem:
How can I access the button/barButtonItem that is showing the overflow menu and call isEnabled = false? My UI, so far, has disabled all buttons during edit mode. I don't want to hide them, but have them grayed out, including the overflow menu button.
class MyVC : UIViewController {
// ...
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
// ...
// This doesn't disable the overflow menu button
navigationItem
.trailingItemGroups
.forEach {
$0.barButtonItems
.forEach {
$0.isEnabled = !isEditing
}
}
}
}