exploit ARKit's face tracking feature to build .obj face model files. It generally follows practices in Tracking and visualizing faces. The app gets the anchor in func renderer( renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor), and update the geometry in func renderer( renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor).
For the face model export, the following function is used, which wraps the ARSCNFaceGeometry in a MDLAsset and export the asset. The code is as follows.
func exportMesh(_ geometry: SCNGeometry, to url: URL, completion: (() -> ())?) {
		DispatchQueue.global().async {
				let mesh = MDLMesh(scnGeometry: geometry)
				let asset = MDLAsset()
				asset.add(mesh)
				do {
						try asset.export(to: url)
				} catch {
						print("Can't write mesh to url")
				}
				DispatchQueue.main.async {
						completion?()
				}
		}
}
l
The application works fine before on iOS 13. However, when I installed it on iOS 14, the app crashes on the line try asset.export. The do-catch syntax did not catch the error, it directly crashes with EXCBADACCESS. I tried to export only a SCNBox in this step and it worked fine, seems it has something to do with the ARSCNFaceGeometry.
My Mac and the test device are all updated to the newest system, the test device is an iPhone X.
Post
Replies
Boosts
Views
Activity
trying to use GARAugmentedFaceSession for an image.
So I need to convert UIImage to CMSampleBuffer or CVImageBuffer.
Is that possible? If so, is there any sample/codes related with?
I got the following message when I tried to send my build to TestFlight.
And I got the ARCore/AugmentedFaces when I searched for that Non-public symbols
% find . -type f -exec grep -l 'ddReplaceEii' {} ;
./Pods/ARCore/AugmentedFaces/Frameworks/ARCoreAugmentedFaces.framework/ARCoreAuentedFaces
Is there any way to solve this issue?
ITMS-90338: Non-public API usage - The app references non-public symbols in MYAPP: ZN3icu5Edits10addReplaceEii, ZN3icu5Edits12addUnchangedEi. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/