My CODE:
the mediaURL.path is obtained from UIImagePickerControllerDelegate
guard UIVideoEditorController.canEditVideo(atPath: mediaURL.path) else { return }
let editor = UIVideoEditorController()
editor.delegate = self
editor.videoPath = mediaURL.path
editor.videoMaximumDuration = 10
editor.videoQuality = .typeMedium
self.parentViewController.present(editor, animated: true)
Error description on console as below.
Video export failed for asset <AVURLAsset: 0x283c71940, URL = file:///private/var/mobile/Containers/Data/PluginKitPlugin/7F7889C8-20DB-4429-9A67-3304C39A0725/tmp/trim.EECE5B69-0EF5-470C-B371-141CE1008F00.MOV>: Error Domain=AVFoundationErrorDomain Code=-11800
It doesn't call
func videoEditorController(_ editor: UIVideoEditorController, didFailWithError error: Error)
After showing error on console, UIVideoEditorController automatically dismiss itself.
Am I doing something wrong? or is it a bug in swift?
Thank you in advance.
Post
Replies
Boosts
Views
Activity
Thread 9 name:
Thread 9 Crashed:
0 libswiftCore.dylib 0x0000000188d21398 _assertionFailure(_:_:file:line:flags:) + 1504 (AssertCommon.swift:132)
1 libswiftFoundation.dylib 0x0000000188c8beec specialized static Int32._forceBridgeFromObjectiveC(_:result:) + 372 (NSNumber.swift:207)
2 HaishinKit 0x0000000102fbe46c VideoIOComponent.attachScreen(_:useScreenSize:) + 496 (<compiler-generated>:0)
3 HaishinKit 0x0000000102f7e188 closure #1 in NetStream.attachScreen(_:useScreenSize:) + 156 (NetStream+Extension.swift:18)
4 HaishinKit 0x0000000102f2ff7c thunk for @escaping @callee_guaranteed () -> () + 20 (<compiler-generated>:0)
5 libdispatch.dylib 0x0000000184fbf2b0 _dispatch_call_block_and_release + 24 (init.c:1466)
6 libdispatch.dylib 0x0000000184fc0298 _dispatch_client_callout + 16 (object.m:559)
7 libdispatch.dylib 0x0000000184f9c344 _dispatch_lane_serial_drain$VARIANT$armv81 + 568 (inline_internal.h:2557)
8 libdispatch.dylib 0x0000000184f9ce2c _dispatch_lane_invoke$VARIANT$armv81 + 400 (queue.c:3862)
9 libdispatch.dylib 0x0000000184fa666c _dispatch_workloop_worker_thread + 692 (queue.c:6589)
10 libsystem_pthread.dylib 0x00000001cd8bd5bc _pthread_wqthread + 272 (pthread.c:2436)
11 libsystem_pthread.dylib 0x00000001cd8c086c start_wqthread + 8
Thread 10:
0 libsystem_pthread.dylib 0x00000001cd8c0864 _pthread_dependency_fulfill_slow + 192 (pthread_dependency.c:57)
Thread 11:
0 libsystem_pthread.dylib 0x00000001cd8c0864 _pthread_dependency_fulfill_slow + 192 (pthread_dependency.c:57)
Thread 9 crashed with ARM Thread State (64-bit):
x0: 0x0000000282abc480 x1: 0x0000000188fe7840 x2: 0x0000000000000007 x3: 0x0000000193edad18
x4: 0x0000000000000000 x5: 0x000000016da46630 x6: 0x0000000000000032 x7: 0x000000000000003e
x8: 0x0000000282abc488 x9: 0xfffffffe00000000 x10: 0x0000000200000003 x11: 0x0000000000000001
x12: 0x0000000000000003 x13: 0x000000009740682d x14: 0x0000000097607000 x15: 0x0000000000007000
x16: 0x0000000017600000 x17: 0x02000001000001f8 x18: 0x0000000000000000 x19: 0x0000000282abc480
x20: 0x000000016da466c0 x21: 0x0000000188cd5688 x22: 0x0000000000000019 x23: 0x0000000000000000
x24: 0x00000000000000cf x25: 0x000000000000000b x26: 0x0000000000000002 x27: 0x0000000188cd6040
x28: 0x000000016da46700 fp: 0x000000016da467b0 lr: 0x0000000188d21398
sp: 0x000000016da46700 pc: 0x0000000188d21398 cpsr: 0x60000000
esr: 0xf2000001 Address size fault
When the app try to live stream on Youtube, this crash occur.
Only some device experience this crash.
Thank you in advance!
Tenna
I don't know this is the correct place to ask this, but Apple has not replied to my message in the Resolution Center.
My app was rejected because of the "Guideline 5.2.2 - Legal", and they said I have to provide documentary evidence demonstrating that I have all necessary rights or permissions to facilitate transactions and charge for access to third-party services in your app.
My app access YouTube, and let users live stream.
Similar app like "Swither".
I asked exactly what information do I need to provide, but they haven't replied for over 3 days.
When I re-submit the app, they just reject and send me the same "Guideline 5.2.2 - Legal" rejection message.
Do I need to ask google to make documentation??
Or anyone experienced this, how could you solved this?
Thank you in advance.
When my app tries to start CMMotionManager, it crashes with 'ahpl_main (30): EXC_BAD_ACCESS (code=1, address=0x4230)' error.
It's not always, but sometimes like when I tries to start CMMotionManager right after app is launched.
motionManager = CMMotionManager()
motionManager?.deviceMotionUpdateInterval = 1.0
guard motionManager.isDeviceMotionAvailable else { return }
motionManager?.startDeviceMotionUpdates(to: OperationQueue.current!, withHandler: { [weak self] (motion, error) in
})
This might be a memory issue..?
If I need to provide more information, I am happy to do so.
Thank you for your help.
Our app was rejected with above reason.
In fact, the quality of the app was really poor before, it received 2 negative reviews. However, we included huge improvements on this update that would resolve all the negative reviews.
App Store Reviewer said:
--
We've identified a pattern of behavior associated with your Apple Developer Program account that is not consistent with the Developer Code of Conduct. Your action is required to address these serious issues:
Your app has received numerous negative reviews from App Store users. These reviews describe a poor user experience, including poor feature and functionality.
The paid digital content and services in your app do not provide long-lasting value and utility to App Store users.
Per guideline 5.6.4, apps on the App Store must provide the high quality experience our users expect.
To maintain your app's availability on the App Store, please provide a written statement detailing the improvements you plan to make. Your statement should include the following information:
A thorough explanation of the issues we identified
Specific, verifiable steps you will take to resolve this issue and prevent its recurrence
--
So, I provided several features to make the paid content valuable and improvement plans based on the negative reviews.
However, It seem it was not enough, and our app was removed from App Store.
What can I do?
I feel like there is no use givng more improvement plans because the AppStore reviewers is just trying to remove the app and no intension of taking it back no matter what.
My app was working fine until just now.
I have changed a few code, and tried to run the app, then it started to crash on launch.
I have un-changed the code, and tried to run again, same crash keep occurring.
How can I find where the cause is??
MyCode:
class VideoComposeHelper {
static func create(assets: [AVAsset], textSections: [TextSectionView], duration: Double, onDone: @escaping (AVMutableComposition,AVMutableVideoComposition) -> Void) {
let composition = AVMutableComposition()
let videoTrack = composition.addMutableTrack(withMediaType: .video, preferredTrackID:Int32(kCMPersistentTrackID_Invalid))!
let audioTrack = composition.addMutableTrack(withMediaType: .audio, preferredTrackID:Int32(kCMPersistentTrackID_Invalid))!
var duration = 0.0
do {
for videoAsset in assets {
print("videoAsset",duration)
let cmTime = CMTimeMakeWithSeconds(duration, preferredTimescale: 1000)
// video
try videoTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: videoAsset.duration),
of: videoAsset.tracks(withMediaType:.video)[0] as AVAssetTrack, at: cmTime)
// audio
try audioTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: videoAsset.duration),
of: videoAsset.tracks(withMediaType:.audio)[0] as AVAssetTrack, at: cmTime)
duration += videoAsset.duraSec()
}
} catch {
print("darn")
}
let size = videoTrack.naturalSize
let fillRect = CGRect(x: 0, y: 0, width: size.height, height: size.width)
print("naturalSize",size)
let parentlayer = CALayer()
parentlayer.frame = fillRect
parentlayer.zPosition = 100
let videolayer = CALayer()
videolayer.frame = fillRect
parentlayer.addSublayer(videolayer)
videolayer.isHidden = false
parentlayer.isHidden = false
for textSection in textSections {
let imglayer = CALayer()
imglayer.contents = textSection.getImage().cgImage
imglayer.frame = fillRect
imglayer.opacity = 1
parentlayer.addSublayer(imglayer)
}
let layercomposition = AVMutableVideoComposition()
layercomposition.frameDuration = CMTimeMake(value: 4, timescale: 30)
layercomposition.renderSize = size
layercomposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videolayer, in: parentlayer)
// instruction for watermark
let instruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(start: .zero, duration: composition.duration)
let videotrack = composition.tracks(withMediaType: .video)[0] as AVAssetTrack
let layerinstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: videotrack)
instruction.layerInstructions = [layerinstruction]
layercomposition.instructions = [instruction]
let FirstAssetScaleFactor = CGAffineTransform(scaleX: 1, y: 1)
layerinstruction.setTransform(videoTrack.preferredTransform.concatenating(FirstAssetScaleFactor), at: .zero)
onDone(composition,layercomposition)
}
func exportVideo(duration: Double, composition: AVMutableComposition, videoComposition: AVMutableVideoComposition) {
let outputURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
.appendingPathComponent("result.mp4")
if FileManager.default.fileExists(atPath: outputURL.path) {
do {
try FileManager.default.removeItem(at: outputURL)
} catch {
print(error)
}
}
print("outputURL",outputURL)
let exporter = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetPassthrough)!
exporter.videoComposition = videoComposition
exporter.outputURL = outputURL
exporter.outputFileType = .mp4
exporter.shouldOptimizeForNetworkUse = true
let start = CMTimeMakeWithSeconds(0, preferredTimescale: 1000)
let range = CMTimeRangeMake(start: start, duration: CMTimeMakeWithSeconds(duration, preferredTimescale: 1000))
exporter.timeRange = range
exporter.exportAsynchronously {
switch exporter.status {
case .completed:
//self.checkDuration(for: fileName, at: outputURL)
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: outputURL)
}) { completed, error in
if let error = error {
print("Failed to save video in photos", error)
return
}
DispatchQueue.main.async {
//self.view.isUserInteractionEnabled = true
if completed {
print("Video has been saved to your photos.")
} else {
print("Video saving has NOT been completed")
}
}
}
case .failed:
print("failed with:", exporter.error ?? "no error")
case .cancelled: break
default: break
}
}
}
}
When I run the code, it saves plain video with no texts which supposed to be handled by parentlayer.
static func create(videoTrack: AVAssetTrack, composition: AVMutableComposition, videoComposition: AVMutableVideoComposition) {
let fillRect = CGRect(x: 0, y: 0, width: videoTrack.naturalSize.width, height: videoTrack.naturalSize.height)
let parentlayer = CALayer()
parentlayer.frame = fillRect
parentlayer.zPosition = 100
let videolayer = CALayer()
videolayer.frame = fillRect
parentlayer.addSublayer(videolayer)
videolayer.isHidden = false
parentlayer.isHidden = false
for textSection in [""] {
let imglayer = CALayer()
imglayer.contents = UIImage(systemName: "circle")!.cgImage// textSection.getImage().cgImage
imglayer.frame = fillRect
imglayer.opacity = 1
parentlayer.addSublayer(imglayer)
}
videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videolayer, in: parentlayer)
// instruction for watermark
let instruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(start: .zero, duration: composition.duration)
let videotrack = composition.tracks(withMediaType: .video)[0] as AVAssetTrack
let layerinstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: videotrack)
layerinstruction.setTransform(videoTrack.preferredTransform.concatenating(CGAffineTransform(scaleX: 1, y: 1)), at: .zero)
instruction.layerInstructions = [layerinstruction]
videoComposition.instructions.append(instruction)
static func exportMovie(assets: [AVAsset], fileType: AVFileType, completion: (() -> Void)?) {
let destinationURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("square.mov")
let mixComposition = AVMutableComposition()
// video composition に、先程の instruction を設定する。また、レンダリングの動画サイズを正方形に設定する
let croppedVideoComposition = AVMutableVideoComposition()
croppedVideoComposition.frameDuration = CMTimeMake(value: 1, timescale: 30)
for avAsset in assets {
let videoTrack = avAsset.tracks(withMediaType: AVMediaType.video)[0]
let audioTrack = avAsset.tracks(withMediaType: AVMediaType.audio)[0]
let compositionVideoTrack = mixComposition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)!
let compositionAudioTrack = mixComposition.addMutableTrack(withMediaType: .audio, preferredTrackID: kCMPersistentTrackID_Invalid)!
try! compositionVideoTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: avAsset.duration), of: videoTrack, at: .zero)
try! compositionAudioTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: avAsset.duration), of: audioTrack, at: .zero)
compositionVideoTrack.preferredTransform = videoTrack.preferredTransform
let size = CGSize(width: videoTrack.naturalSize.height, height: videoTrack.naturalSize.width)
let squareEdgeLength = size.height
let squareEdgeWidth = size.width
let instruction = cropVideo(size: size, videoTrack: videoTrack, compositionVideoTrack: compositionVideoTrack, avAsset: avAsset)
create(videoTrack: videoTrack, composition: mixComposition, videoComposition: croppedVideoComposition)
croppedVideoComposition.instructions.append(instruction)
croppedVideoComposition.renderSize = CGSize(width: squareEdgeWidth, height: squareEdgeLength)
}
// エクスポートの設定。先程の video compsition をエクスポートに使うよう設定する。
let assetExport = AVAssetExportSession.init(asset: mixComposition, presetName: AVAssetExportPresetMediumQuality)
assetExport?.outputFileType = fileType
assetExport?.outputURL = destinationURL
assetExport?.videoComposition = croppedVideoComposition
if FileManager.default.fileExists(atPath: (assetExport?.outputURL?.path)!) {
try! FileManager.default.removeItem(atPath: (assetExport?.outputURL?.path)!)
}
assetExport?.exportAsynchronously(completionHandler: {
print("assetExport",assetExport?.error)
VideoComposeHelper.didCompone(url: destinationURL)
})
}
static func cropVideo(size: CGSize, videoTrack: AVAssetTrack, compositionVideoTrack: AVAssetTrack, avAsset: AVAsset) -> AVMutableVideoCompositionInstruction {
let croppingRect = CGRect(x: (videoTrack.naturalSize.width - size.height) / 2,
y: (videoTrack.naturalSize.height - size.width) / 2,
width: size.height, height: size.width)
let transform = videoTrack.preferredTransform.translatedBy(x: -croppingRect.minX, y: -croppingRect.minY)
// layer instruction を正方形に
let layerInstruction = AVMutableVideoCompositionLayerInstruction.init(assetTrack: compositionVideoTrack)
layerInstruction.setCropRectangle(croppingRect, at: .zero)
layerInstruction.setTransform(transform, at: .zero)
// instruction に、先程の layer instruction を設定する
let instruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(start: .zero, duration: avAsset.duration)
instruction.layerInstructions = [layerInstruction]
return instruction
}
static func didCompone(url: URL) {
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
}) { completed, error in
if let error = error {
print("Failed to save video in photos", error)
return
}
DispatchQueue.main.async {
//self.view.isUserInteractionEnabled = true
if completed {
print("Video has been saved to your photos.")
} else {
print("Video saving has NOT been completed")
}
}
}
}
}
Above code fails with error below:
assetExport Optional(Error Domain=AVFoundationErrorDomain Code=-11841 "操作が停止しました" UserInfo={NSLocalizedFailureReason=ビデオを作成できませんでした。, NSLocalizedDescription=操作が停止しました, NSUnderlyingError=0x2823c8000 {Error Domain=NSOSStatusErrorDomain Code=-17390 "(null)"}})
Failed to save video in photos Error Domain=PHPhotosErrorDomain Code=-1 "(null)"
What could be wrong??
Code:
`
let url = URL(string: "instagram://app")!
if !UIApplication.shared.canOpenURL(url) {
showAlert(title: "Error", message: "インスタグラムがインストールされていません")
return
}
var activityItem: [Any] = []
if let videUrl = videUrl {
activityItem = [ImageActivityItem(videUrl)]
} else {
activityItem = [ImageActivityItem(image)]
}
let activityVC = UIActivityViewController(activityItems: activityItem, applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = view
self.present(activityVC, animated: true)
activityVC.completionWithItemsHandler = { (activity, success, items, error) in
print("Activity: \(activity) Success: \(success) Items: \(items) Error: \(error)")
DispatchQueue.main.async {
if success {
print("onDone")
self.deleteFile(url: url)
}
}
}`
Log:
2023-05-23 12:41:34.550747+0900 noFilterApp[21146:7539324] [default] LaunchServices: store (null) or url (null) was nil: Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=66, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler} 2023-05-23 12:41:34.550819+0900 noFilterApp[21146:7539324] [default] Attempt to map database failed: permission was denied. This attempt will not be retried. 2023-05-23 12:41:34.550858+0900 noFilterApp[21146:7539324] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=66, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler} 2023-05-23 12:41:34.551352+0900 noFilterApp[21146:7539324] [default] LaunchServices: store (null) or url (null) was nil: Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=66, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler} 2023-05-23 12:41:34.551383+0900 noFilterApp[21146:7539324] [default] Attempt to map database failed: permission was denied. This attempt will not be retried. 2023-05-23 12:41:34.551417+0900 noFilterApp[21146:7539324] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=66, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler} 2023-05-23 12:41:34.551615+0900 noFilterApp[21146:7539324] [default] -imageForImageDescriptor: can do IO please adopt -imageForDescriptor: for IO free drawing or -prepareImageForDescriptor: if IO is allowed. (This will become a fault soon.)
I am trying to get crash logs.
organizer is showing "Downloading... " indefinitely.
Internet connection is fine.
I get this error after updating Xcode to 15. It was working fine just before updating.
The app is created with Flutter containing flutter-unity-widget plugin.
Full error
... continue ...
Function: createItemModels(for:itemModelSource:)
Thread: <_NSMainThread: 0x124e0a050>{number = 1, name = main}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
2023-11-22 09:44:57.461 xcodebuild[64038:2655521] [MT] DVTAssertions: Warning in
/System/Volumes/Data/SWE/Apps/DT/BuildRoots/BuildRoot11/ActiveBuildRoot/Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEF
rameworks-22269/IDEFoundation/Provisioning/Capabilities Infrastructure/IDECapabilityQuerySelection.swift:103
Details: createItemModels creation requirements should not create capability item model for a capability item model that
already exists.
Function: createItemModels(for:itemModelSource:)
Thread: <_NSMainThread: 0x124e0a050>{number = 1, name = main}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
** BUILD FAILED **
Xcode's output:
↳
Writing result bundle at path:
/var/folders/cv/yb103sl92sn87wng_mvscb_80000gn/T/flutter_tools.T5NLXl/flutter_ios_build_temp_dirjmiuWj/temporary_xcresult_bund
le
/Users/tenna/Desktop/ai_chara/ios/UnityLibrary/Il2CppOutputProject/IL2CPP/build/deploy_arm64/il2cpp --compile-cpp
--platform=iOS --architecture=arm64 --outputpath=libGameAssembly.a --libil2cpp-static
--baselib-directory=/Users/tenna/Desktop/ai_chara/ios/UnityLibrary/Libraries --additional-defines=IL2CPP_DEBUG=0
--incremental-g-c-time-slice=3 --configuration=Release --dotnetprofile=unityaot-macos --profiler-report
--profiler-output-file=/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Intermediates
.noindex/Unity-iPhone.build/Debug-iphoneos/artifacts/profile.json --print-command-line
--external-lib-il2-cpp=/Users/tenna/Desktop/ai_chara/ios/UnityLibrary/Libraries/libil2cpp.a
--data-folder=/Users/tenna/Desktop/ai_chara/unity/AIChara-App/Library/Bee/artifacts/iOS/il2cppOutput/data
--generatedcppdir=Il2CppOutputProject/Source/il2cppOutput --architecture=arm64
--outputpath=/Users/tenna/Desktop/ai_chara/build/ios/Debug-iphoneos/libGameAssembly.a
--cachedirectory=/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Intermediates.noind
ex/Unity-iPhone.build/Debug-iphoneos/artifacts/arm64 --configuration=Debug
Starting:
/Users/tenna/Desktop/ai_chara/ios/UnityLibrary/Il2CppOutputProject/IL2CPP/build/deploy_arm64/bee_backend/mac-arm64/bee_backend
--profile="/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Intermediates.noindex/Uni
ty-iPhone.build/Debug-iphoneos/artifacts/arm64/buildstate/backend_profiler0.traceevents" --beedriver-listener
--dagfile="/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Intermediates.noindex/Uni
ty-iPhone.build/Debug-iphoneos/artifacts/arm64/buildstate/bee.dag" --continue-on-failure FinalProgram
WorkingDir:
/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Intermediates.noindex/Unity-iPhone.b
uild/Debug-iphoneos/artifacts/arm64/buildstate
ExitCode: 4 Duration: 0s152ms
ExitCode: 1 Duration: 0s2ms
Build failed with 0 successful nodes and 0 failed ones
Error: Internal build system error. BuildProgram exited with code 1.
Unity.IL2CPP.Bee.BuildLogic.ToolchainNotFoundException: IL2CPP C++ code builder is unable to build C++ code. In order to build
C++ code for Mac, you must have Xcode installed.
Building for Apple Silicon requires Xcode 9.4 and Mac 10.12 SDK.
Xcode needs to be installed in the /Applications directory and have a name matching Xcode*.app. Or be selected using
xcode-select.
It's also possible to use /Library/Developer/CommandLineTools if those match the listed requirements.
More information and installation instructions can be found here:
https://developer.apple.com/support/xcode/
Specific Xcode versions can be downloaded here:
https://developer.apple.com/download/more/
Unable to detect any compatible iPhoneOS SDK!
at Unity.IL2CPP.Bee.BuildLogic.iOS.iOSBuildLogic.GetCompatibleXcodeInstallation(Architecture architecture, Version
xcodeMinVersion, Version platformSdkMinVersion, Identifier platformSdkIdentifier, XcodePlatformSdk& compatiblePlatformSdk,
XcodeInstallation& compatibleXcodeInstallation)... continue ...
Error: Unity.IL2CPP.Building.BuilderFailedException: Build failed with 0 successful nodes and 0 failed ones
Error: Internal build system error. BuildProgram exited with code 1.
Unity.IL2CPP.Bee.BuildLogic.ToolchainNotFoundException: IL2CPP C++ code builder is unable to build C++ code. In order to build
C++ code for Mac, you must have Xcode installed.
Building for Apple Silicon requires Xcode 9.4 and Mac 10.12 SDK.
Xcode needs to be installed in the /Applications directory and have a name matching Xcode*.app. Or be selected using
xcode-select.
It's also possible to use /Library/Developer/CommandLineTools if those match the listed requirements.
More information and installation instructions can be found here:
https://developer.apple.com/support/xcode/
Specific Xcode versions can be downloaded here:
https://developer.apple.com/download/more/
Unable to detect any compatible iPhoneOS SDK!
at Unity.IL2CPP.Bee.BuildLogic.iOS.iOSBuildLogic.GetCompatibleXcodeInstallation(Architecture architecture, Version
... continue ...
note: Removed stale file
'/Users/tenna/Library/Developer/Xcode/DerivedData/Runner-bcftqgeocxzxveemrkiekqlvuozs/Build/Products/Debug-iphoneos/google_sign
_in_ios/google_sign_in_ios.framework'
... continue ...
warning: Run script build phase 'Run Script' will be run during every build because it does not specify any outputs. To address
this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on
... continue ...
I found this thread, but downgrading Xcode causes other issues, so rather not do that.
https://forum.unity.com/threads/project-wont-build-using-xode15-release-candidate.1491761/
I tried to run the app from Xcode, also did not work.
I want to send APN to update a pass in the Wallet app.
Followed this guideline.
https://developer.apple.com/documentation/walletpasses/adding_a_web_service_to_update_passes#3733254
I tried with Typescript (Firebase Functions) like this.
var path = "/3/device/"+pushToken
var url = "https://api.push.apple.com:443"+path
const response = await fetch(url, {
method: 'POST',
body: null,
headers: {
'apns-topic': 'com.colorfull.walletPass',
'apns-push-type': 'background',
'connection': 'keep-alive'
}
});
Got this error.
TypeError: fetch failed
Tried with Flutter like this.
var path = "/3/device/$pushToken";
var url = "https://api.push.apple.com:443$path";
Response resp = await post(Uri.parse(url), headers: {
'apns-topic': 'com.colorfull.walletPass',
'apns-push-type': 'background',
'connection': 'keep-alive'
}, body: {});
Got this error.
ClientException: Invalid request method, uri=https://api.push.apple.com/3/device/688a3d6bf83526f00f6fb3d8dd197578f665dea0eeba7aebbe68c61f06bad198
Obviously I'm doing it all wrong, but there is no clear guideline.
How can I send APN??
I implemented a universal link according to this guidance.
https://developer.apple.com/videos/play/wwdc2019/717
However, my universal links seem to never work.
apple-app-site-association
https://hajimenavi.web.app/.well-known/apple-app-site-association
Xcode settings
The link I am trying to open
https://hajimenavi.web.app/familyId/ZBEJSJXyPNT7G
team id
I validated with apple's analyzation that the server has no problem (with Setting app>Developer>Universal Links analysis.
What else should I check??
I am wasting a whole day with this. Please please help.