Post

Replies

Boosts

Views

Activity

iOS Dynamic library remove local source code path in debug build
Trying to generate dynamic library (framework), in Debug build I can see the local path to my source code inside the framework or Unix Executable File. This is not the case with Release build. How can I prevent the path getting exposed in the framework file? I tried perl command to replace the occurrences of the path inside file. But when I do that and try to use framework within my iOS application, I got ld: malformed universal file: slice extends beyond end of file file '/path/to/my/Sample.framework/Sample' Framework file got corrupted, is there any proper way from XCode or xcodebuild command to achieve this?
0
0
1k
Jul ’22
MDM app analytics
I need some clarification from Mobile Device Management analytics usage. We are developing a SDK which collects device information such as Device Model and OS version for analytics. One of our SDK integrator uses our SDK in their MDM app, can we collect the device information, if we specify the what data will be collected and how it will be used on app screen from the app layer?
0
0
1.4k
Nov ’22
SIGABRT Signal 6 Abort trap
I got crash report for my mobile application private var _timedEvents: SynchronizedBarrier<[String: TimeInterval]> private var timedEvents: [String: TimeInterval] { get { _timedEvents.value } set { _timedEvents.value { $0 = newValue } } } func time(event: String) { let startTime = Date.now.timeIntervalSince1970 trackingQueue.async { [weak self, startTime, event] in guard let self else { return } var timedEvents = self.timedEvents timedEvents[event] = startTime self.timedEvents = timedEvents } } From the report, the crash is happening at _timedEvents.value { $0 = newValue } struct ReadWriteLock { private let concurentQueue: DispatchQueue init(label: String, qos: DispatchQoS = .utility) { let queue = DispatchQueue(label: label, qos: qos, attributes: .concurrent) self.init(queue: queue) } init(queue: DispatchQueue) { self.concurentQueue = queue } func read<T>(closure: () -> T) -> T { concurentQueue.sync { closure() } } func write<T>(closure: () throws -> T) rethrows -> T { try concurentQueue.sync(flags: .barrier) { try closure() } } } struct SynchronizedBarrier<Value> { private let lock: ReadWriteLock private var _value: Value init(_ value: Value, lock: ReadWriteLock = ReadWriteLock(queue: DispatchQueue(label: "com.example.SynchronizedBarrier", attributes: .concurrent))) { self.lock = lock self._value = value } var value: Value { lock.read { _value } } mutating func value<T>(execute task: (inout Value) throws -> T) rethrows -> T { try lock.write { try task(&_value) } } } What could be the reason for the crash? I have attached the crash report. Masked.crash
4
0
706
Jun ’24