Post not yet marked as solved
update: binary upload just worked. it failed several times this morning with aforementioned request timed out.
Post not yet marked as solved
now the test flight downloads seem to be working again. strange.
Post not yet marked as solved
the AVMetadataItem writing indeed seems fraught with peril. i tried a bunch of examples with basic stuff like title and description in the "common" metadata family, and none of them seem to write data to the file using AVAssetWriter for mp4 files. checked by mpls command line. does anyone know the difference between the .key and the .identifier ? i see examples with .key and examples with .identifier. why we should use one over the other = ?
Post not yet marked as solved
update: user can now download the app (we get the download progress meter and it proceeds) but the app disappears immediately after download and instead of the Open button showing in test flight, it goes back to the Update button. so still no-go.
Post not yet marked as solved
continued: this is the error we get fairly often (same file works other times). this is a file from the photos folder.
Error Domain=NSCocoaErrorDomain Code=260 "The file “IMG_2685.mp4” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/var/mobile/Media/DCIM/102APPLE/IMG_2685.mp4, NSUnderlyingError=0x281af1cb0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Post not yet marked as solved
strange, we are having the opposite problem, videos not playing in wkwebview on ios14.8 but working properly in ios15
Post not yet marked as solved
thanks for the clarification about how DSYM works w/ bitcode. we typically disable bitcode on upload.
Post not yet marked as solved
hi, thanks for the response. the problem seems to be at some low level. example case is: get a movie longer than 1 hour into your camera roll. try to clip it to 1 hour with the built-in video tools in the iOS photo app. it clips it to something like 43 minutes instead of 1 hour. we have temporarily worked around the problem by only allowing 40 minute videos max in our app. it is interesting that you say there might be a problem w/ the video, i will try other videos when we get back to this issue.
if anyone else is running into this error, just ran into this in Feb 2021, i found a clue that helped me solve it via this other forum post
https://developer.apple.com/forums/thread/662300
when i would go to the keychain app on mac and click on the auto-generated developer certificate (not provisioning profile, but certificate), keychain was showing a message about the certificate being "not trusted"
delete that cert, it seems to be bad.
this led me to the above link, which tells you to re-download an intermediate certificate. then do the automatic provisioning in apple xcode as usual (like unclick automatic button and reclick it). then try to run on device. works, finally first time in a couple weeks i got this to work.
what a terrible error message it gives for this problem. why not just say the intermedidate certificate is untrusted, so get a new one from this link here?
Post not yet marked as solved
Note: this seems to have been fixed.
Post not yet marked as solved
Yes I have seen notes about this behavior in Stackoverflow etc. Thanks for the response! Do you know offhand if it is allowed to run the AVAssetWriter from a true background process: BGTaskScheduler? Apparently those allow more time than the app just going off into the background. Another alternative might be a software implementation of an MP4 writer that takes an AVAsset as input. Something like ffmpeg or something. Not as efficient, but pausing due to app sleeping might be less of an issue then.
Post not yet marked as solved
If anyone wants to know, I finally figured this out after how long? The TouchBar has a man page button above the "2" key and it is easy to hit that when you try to hit one of the keys below it. You can use View menu in Terminal/Customize Touch Bar to drag that virtual button off the touch bar.
Post not yet marked as solved
If anyone has this issue, I seem to have found it:
I implemented viewDidAppear:(BOOL)animated in the MessagesViewController.m,
but i did not call [super viewDidAppear:animated]. Adding the call to super fixed the missing touch events.
The problem seems unrelated to the CFMessagePort error, because those are still showing in xcode console.
Post not yet marked as solved
This is an interesting thread, thanks for the orig post. I was under the impression that Metal was almost always faster than OpenCL because OpenCL is and old and clunky higher level API, but Metal "goes right to the metal" as they say. I guess not? I would suggest looking into the global memory access times if you can, e.g. the read-write refs to the "device" declared arrays. I am unsure of the latest tools for this, but you can try to check into the problem by removing device arrays from the picture and just doing fake calculations. E.g. try to set up some local arrays in thread or threadgroup storage instead of device storage for the arrays xyin, xyout and spherical_params (see https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf section 4.3) and dont even bother to initialize them. Just let the array dereferences and calculations stay the same in your kernel and let it run on bogus float data in those threadgroup arrays. See if it is faster. It should be a lot faster. If it is faster, then you can see the problem is the GPU / kernel code "reaching out" to global memory space for reads and writes. I have seen that sometimes the performance tools show slow calculations on a given line of code, but that may be due to memory read-write access, not the computation itself. A common pattern is copying "device" or global arrays into a chunk of threadgroup array storage e.g. in parallel, then let the kernel calcs read/write on the threadgroup arrays, then block copy in parallel the threadgroup results back into device/global memory. There are some cool CUDA examples of this in the CUDA intro tutorials... there may be some for Metal also.
Oh I also see that "mattke" in this thread has the threadlocal mem / sync example. Before going down that more complicated path (which may be required eventually).../ you could try stuff like this:
Copy globals to a local variable (not threadgroup), do all processing on local variables, then copy out to global in one step. E.g. for the 2 lines that use the "params" global:
xyout[index].x = params->x + params->scale * x;
xyout[index].y = params->y + params->scale * y;
Instead, you could try:
sphericalparams localparams;
float2 localxyout;
localparams = params; // copy whole struct to local mem
// now all mem refs are local in these 2 lines:
localxyout.x = localparams.x + localparams.scale * x;
localxyout.y = localparams.y + localparams.scale * y;
// copy the float2 back to global mem w/ one index/deref operation
xyout[index] = localxyout;
PS: this Apple service is making some words italic but not in the preview I am typing...that is not intentional.
Similarly, you could access the input array only once at the top of the kernel:
float2 localxyin;
localxyin = xyin[index];
Now use localxy_in where you compute lambda and phi.
Post not yet marked as solved
fyi, found the problem if anyone needs it:
in the asset catalog, select the 1024x1024 icon, then on one of the xcode right side menus, there are
check boxes for ios and mac. check the mac box. then it opens up the asset catalog to have
more spaces for mac icons,
and you can add the required 1024x1024 icon for mac. this must be a new requirement,
as this app had been shipped recently w/ only ios assets to mac app store (catalyst app)