Posts

Post not yet marked as solved
1 Replies
574 Views
My macOS app (targeting Catalina only) uses camera, mic and screen recording. While developing the app the system asks me permission every time I rebuild and run the app. This does not happen on iOS. Is there anyway to prevent this? Secondly when I distribute the app to other Macs, every build needs the consent re-affirmed. This doesn't seem like the way it should be. What could I be doing wrong?
Posted Last updated
.
Post not yet marked as solved
2 Replies
646 Views
I stumbled across this in the documentation - https://developer.apple.com/documentation/foundation/bundle/1411412-url. I can't seem to get it to return anything for me. In my Mac app Xcode project I added an executable to a copy files phase and set that phase Destination to "Executables". This seemed like the logical place to do it. This did not get a url when calling Bundle.main.url(forAuxiliaryExecutable) I want to pass this url to Process.executableURL I am able to generate the apropriate URL by calling Bundle.main.bundleURL then .appendPathComponent("Contents/MacOS/excutable") but am just curious about this forAuxiliaryExecutable Am I misunderstanding what this would be for?
Posted Last updated
.
Post not yet marked as solved
0 Replies
719 Views
CMVideoFormatDescriptionCopyAsBigEndianImageDescriptionBlockBufferandCMVideoFormatDescriptionCreateFromBigEndianImageDescriptionBlockBufferseem like some useful utilities, but... they are not acting the way I expected. In my mind I should be able to pass the first a CMVideoFormatDescription then pass the created CMBlockBuffer to the second and get out a CMVideoFormatDescription that matches the first CMVideoFormatDescription. I don't. Am I misunderstanding what these utilities are for? Here are printouts of the original CMVideoFormatDescription:<CMVideoFormatDescription 0x600000ca7330 [0x7fff8d24f7d0]> { mediaType:'vide' mediaSubType:'avc1' mediaSpecific: { codecType: 'avc1' dimensions: 1280 x 720 } extensions: {{ CVImageBufferColorPrimaries = "ITU_R_709_2"; CVImageBufferTransferFunction = "ITU_R_709_2"; CVImageBufferYCbCrMatrix = "ITU_R_709_2"; CVPixelAspectRatio = { HorizontalSpacing = 1; VerticalSpacing = 1; }; FormatName = "H.264"; SampleDescriptionExtensionAtoms = { avcC = {length = 42, bytes = 0x014d0020 ffe1001b 274d0020 898b6028 ... 40010004 28ee1f20 }; }; }} }and the copy via the utilities:<CMVideoFormatDescription 0x600000cb40c0 [0x7fff8d24f7d0]> { mediaType:'vide' mediaSubType:'avc1' mediaSpecific: { codecType: 'avc1' dimensions: 1280 x 720 } extensions: {{ CVFieldCount = 1; CVImageBufferChromaLocationBottomField = Left; CVImageBufferChromaLocationTopField = Left; CVImageBufferColorPrimaries = "ITU_R_709_2"; CVImageBufferTransferFunction = "ITU_R_709_2"; CVImageBufferYCbCrMatrix = "ITU_R_709_2"; CVPixelAspectRatio = { HorizontalSpacing = 1; VerticalSpacing = 1; }; Depth = 24; FormatName = "'avc1'"; FullRangeVideo = 0; RevisionLevel = 0; SampleDescriptionExtensionAtoms = { avcC = {length = 42, bytes = 0x014d0020 ffe1001b 274d0020 898b6028 ... 40010004 28ee1f20 }; }; SpatialQuality = 0; TemporalQuality = 0; VerbatimISOSampleEntry = {length = 171, bytes = 0x000000ab 61766331 00000000 0000ffff ... 00000001 00000001 }; Version = 0; }} }
Posted Last updated
.