Post

Replies

Boosts

Views

Activity

Mac App Store reviewers can't install my app
Hi everyone, Has this every happened to you? If so, how did you resolve it? Submitting my app for review, I got the following rejection: Guideline 2.4.5(ii) - Performance The package currently available in App Store Connect cannot be installed and may be corrupted. Next Steps Please rebuild your application and upload a new version. If this issue continues, please contact Apple Developer Technical Support for help investigating the issue. DTS referred me back to app review: We are unable to help you resolve this matter. Please circle back with the App Review team for assistance. I'm building the .pkg with productbuild: xcrun productbuild --product WFH\ Phone\ Webcam.app/Contents/Info.plist --component WFH\ Phone\ Webcam.app /Applications --sign "3rd Party Mac Developer Installer: Mansour Moufid (42A2D88R9U)" --timestamp WFH\ Phone\ Webcam.pkg and uploading it with altool: xcrun altool --username "..." --password "..." --validate-app --file WFH\ Phone\ Webcam.pkg --type osx xcrun altool --username "..." --password "..." --upload-app --file WFH\ Phone\ Webcam.pkg --type osx The .pkg signature looks fine: xcrun pkgutil --check-signature WFH\ Phone\ Webcam.pkg Package "WFH Phone Webcam.pkg": Status: signed by a developer certificate issued by Apple (Development) Signed with a trusted timestamp on: 2024-04-29 14:11:27 +0000 Certificate Chain: 1. 3rd Party Mac Developer Installer: Mansour Moufid (42A2D88R9U) Expires: 2025-03-13 20:11:55 +0000 SHA256 Fingerprint: CB 8A 12 1D 4D 16 29 27 08 30 07 1C 6C F6 1C F4 85 6E AE F1 B1 34 68 F7 81 6D C3 3B 1B 8C 5D 32 ------------------------------------------------------------------------ 2. Apple Worldwide Developer Relations Certification Authority Expires: 2030-02-20 00:00:00 +0000 SHA256 Fingerprint: DC F2 18 78 C7 7F 41 98 E4 B4 61 4F 03 D6 96 D8 9C 66 C6 60 08 D4 24 4E 1B 99 16 1A AC 91 60 1F ------------------------------------------------------------------------ 3. Apple Root CA Expires: 2035-02-09 21:40:36 +0000 SHA256 Fingerprint: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24 The app's signature also checks out: codesign --strict --deep --verbose --verify WFH\ Phone\ Webcam.app WFH Phone Webcam.app: valid on disk WFH Phone Webcam.app: satisfies its Designated Requirement I have no idea what "cannot be installed and may be corrupted" means and app review is not responding to my request for more information...
1
0
616
Apr ’24
CMIOExtensionStreamSource supported pixel formats
Hello. I'm working on a Core Media IO camera extension, including a source and sink stream. My application sends sample buffers to the sink stream, which are passed to the source stream. The sample buffers' pixel format is 420v. This format is determined in the application (not the camera extension) by a VTDecompressionSession, which has the image buffer attribute requested: kCVPixelBufferIOSurfaceCoreAnimationCompatibilityKey; and a decoder specification that requests the key kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder. However, no client can connect to the extension's source stream. Photo Booth shows a blank screen. I noticed the second argument to the function CMVideoFormatDescriptionCreate, which has type CMVideoCodecType, doesn't explicitly support 420v. In fact there is no 4:2:0 format in the list at all. Comparing the headers, the only format in common between CoreVideo and CoreMedia is 422YpCbCr8... % sed -n -e 's/.*\(kCMVideoCodecType_[a-zA-Z0-9_]*\).*/\1/p' < /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreMedia.framework/Versions/A/Headers/CMFormatDescription.h | sort | uniq > kCMVideoCodecType.txt % sed -n -e 's/.*\(kCVPixelFormatType_[a-zA-Z0-9_]*\).*/\1/p' < /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Versions/A/Headers/CVPixelBuffer.h | sort | uniq > kCVPixelFormatType.txt % comm <(sed -e 's/kCMVideoCodecType_//' < kCMVideoCodecType.txt) <(sed -e 's/kCVPixelFormatType_//' < kCVPixelFormatType.txt) What is the guidance for pixel formats in camera extensions? The sample camera extension code produced by Xcode uses kCVPixelFormatType_32BGRA. Should camera extensions all be using this format? That's an extra step of YUV→RGB conversion that I'd rather avoid if possible.
4
0
1.3k
Feb ’23
CVPixelBufferGetBytesPerRowOfPlane strange result
Hello everyone. I'm decoding an H264 elementary stream with VideoToolbox. The VTDecompressionSession's output callback returns a CVImageBuffer successfully. While attempting to convert this YUV image to RGB, I prepare a luma vImage_Buffer and chroma vImage_Buffer, but I get strange values from CVPixelBufferGetBytesPerRowOfPlane: CVPixelBufferGetBaseAddressOfPlane(0) 0x10e98c000 CVPixelBufferGetHeightOfPlane(0) 1080 CVPixelBufferGetWidthOfPlane(0) 1440 CVPixelBufferGetBytesPerRowOfPlane(0) 46080 CVPixelBufferGetBaseAddressOfPlane(1) 0x10eb2b000 CVPixelBufferGetHeightOfPlane(1) 540 CVPixelBufferGetWidthOfPlane(1) 720 CVPixelBufferGetBytesPerRowOfPlane(1) 23040 If I use this value (46080) in initializing the vImage_Buffer's rowBytes field, vImageConvert_420Yp8_CbCr8ToARGB8888 crashes. If I simply set rowBytes=width, the conversion is successful. Has anyone seen this before? Notice the value returned is 32 × width. Why?
2
0
1.1k
Aug ’22
Child process on iOS
Hello, On macOS, I can include a second executable in the app bundle, which the main executable can launch and communicate with via pipes (standard input/output). I've done this before (with app sandbox inheritance). I've read on other forums that this is not possible on iOS. Is that correct? I tried popen() and it always fails with the error "Operation not permitted." 😔 I just wanted to confirm before I move on to using frameworks. Thanks for your time.
1
0
1.7k
May ’22
Automatic code signing
Hello, I've always used a package manager (pkgsrc), it installs to my home directory (~/pkg). I noticed today that if I manually copy a binary (not build by the package manager) to that location (~/pkg/bin), it gets terminated by EXC_BAD_ACCESS (Code Signature Invalid), but runs fine in its original location. I was confused because I don't remember signing anything in there. So Xcode clang is signing everything by default: % codesign --display --verbose ~/pkg/bin/python ... Format=Mach-O thin (arm64) CodeDirectory v=20400 size=514 flags=0x20002(adhoc,linker-signed) hashes=13+0 location=embedded Signature=adhoc ... "linker-signed"..? I guess I have to "re-link" binaries every time they get moved? Since the linker is doing this on its own, maybe the "install" utility could do that for us? Update: Nevermind. TIL about -adhoc_codesign and -no_adhoc_codesign linker options. 😅
1
0
1.6k
Dec ’21