- 博客(380)
- 资源 (2)
- 收藏
- 关注
原创 R.swift & SwiftGen 资源使用指南
拖动当前 Run Script Phase 到 Check pods Manifest.lock 和 Compile Sources 之间。拖动当前 Run Script Phase 到 Check pods Manifest.lock 和 Compile Sources 之间。在Xcode 中 新建一个 R.generated.swift 文件 位置在 项目根目录 即 当前项目文件夹下。在项目根目录下创建 swiftgen.ym 文件。在项目根目录下创建 swiftgen.ym 文件。
2024-01-19 18:37:48 1071 2
原创 Xcode Build Script path
如果你需要引用脚本所在的“当前目录”,在 Shell 脚本中,你可以直接使用 . 来表示当前目录,或者使用 $(pwd) 来获取当前目录的完整路径。不过,在 Xcode 的 Build Script 中,通常更倾向于使用这些特定的环境变量,因为它们能够提供更准确和一致的路径信息,特别是在复杂的项目结构中。关于表示当前路径的变量,Xcode 提供了一系列环境变量来引用不同的路径和设置。例如,如果你想引用位于项目根目录下的一个脚本,你可以使用${SRCROOT}/path/to/script.sh这样的路径。
2024-01-18 16:03:08 480
原创 Could not find ‘rexml‘ (~> 3.2.4) - did find: [rexml-3.1.9.1] (Gem::MissingSpecVersionError)
添加到。
2023-10-24 18:58:05 506
原创 kCVPixelFormatType_32BGRA 格式的CMSampleBuffer sampebuffer 如何转化为 AVFrame
这是因为图像数据在内存中不一定是连续存储的,特别是当图像的宽度不是内存对齐的倍数时。为了提高内存访问性能,图像每行的末尾可能会有一些填充字节,使得每行都对齐到某个字节边界(如4字节或8字节边界)。它可能等于图像宽度乘以每像素的字节数(对于BGRA是4字节),也可能更大,取决于是否有填充字节。而是需要逐行拷贝数据,确保每行的数据都被正确地复制到AVFrame中。简而言之,逐行拷贝是为了确保正确处理任何可能存在的行填充,并确保AVFrame的数据布局与CMSampleBuffer匹配。
2023-09-21 15:09:41 336
原创 WebRTC 的多媒体音视频帧传输协议
创建自定义的媒体源:对于视频,你可以创建一个类,该类继承自 VideoSourceInterface。此接口提供了将视频帧输入到 WebRTC 系统的方法。对于音频,你可以创建一个类,该类继承自 AudioSourceInterface。输入数据到你的媒体源:一旦你有了自定义的媒体源,你需要有一种方法将数据(如音视频帧)输入到这些源中。你可能会从外部设备、文件、网络流或其他来源获取数据。创建自定义的接收器:对于视频,你需要实现一个与 VideoSinkInterface 相关的类。
2023-09-18 09:01:51 464
原创 WebRTC 如何指定 H265解码器
WebRTC 本身支持多种视频编解码器,但 H.265/HEVC 编解码器的支持主要取决于浏览器或应用的实现。不过,如果你确定你的 WebRTC 实现和对端支持 H.265,可以通过修改 SDP 来优先选择 H.265 编解码器。当你创建或接收一个 offer 或 answer 时,你将会得到一个 Session Description,也叫做 SDP (Session Description Protocol)。搜索 SDP 中与 H.265 有关的 “m=” 行。设置修改后的 SDP。
2023-09-12 19:43:23 867
原创 WebRTC 源码 编译 iOS端
这将为 ARM64 架构(最常用于现代 iOS 设备)编译 WebRTC。如果你需要为其他架构(如 x86_64,用于模拟器)编译,你可以通过调整。使用 git 克隆 depot_tools 并将其添加到你的 PATH 中: /path/to/depot_tools 替换为自己的路径。如果 fetch --nohooks webrtc_ios 拉取代码太多 失败可以改为 就可以了。你可以将此框架添加到你的 Xcode 项目中,并根据需要使用其 API。一旦编译完成,你会在。
2023-09-11 19:13:44 1107
原创 WebRTC +Signal + ICE
在 WebRTC 中,ICE(Interactive Connectivity Establishment)服务是用于解决网络地址转换(NAT)和防火墙障碍的关键组件。
2023-08-17 20:34:09 770
原创 解析 WebRTC
初始化WebRTC会话:在使用WebRTC之前,需要初始化WebRTC会话,以确保WebRTC框架的正确设置和配置。初始化步骤通常包括以下内容:创建PeerConnectionFactory:通过创建PeerConnectionFactory来初始化WebRTC会话,它负责管理音视频工厂和创建PeerConnection。配置媒体约束:在创建PeerConnection时,可以设置媒体约束来指定音视频的参数,如分辨率、帧率、码率等。
2023-07-25 14:20:56 965
原创 UnsafePointer, UnsafeMutablePointer, UnsafeBufferPointer, UnsafeMutableBufferPointer, UnsafeRawPoint
用途:UnsafeMutableRawPointer 用于以原始的字节形式访问可变内存,没有类型信息,适合用于与 C API 交互。用途:UnsafeRawPointer 用于以原始的字节形式访问内存,没有类型信息,适合用于与 C API 交互。用途:UnsafeRawBufferPointer 用于以原始的字节形式访问连续的不可变内存缓冲区。C/C++ 中对应:常规数组或指向不可变数据的指针。C/C++ 中对应:指向可变数据的数组或指针。C/C++ 中对应:指向不可变数据的指针。
2023-07-20 18:08:33 764
原创 deinitialize 和 deallocate 区别
deinitialize() 和 deallocate() 是 Swift 中用于处理原始内存的函数,但它们有不同的作用和用途。
2023-07-20 17:40:41 142
原创 Swift 中 Actor、 AnyActor 、 MainActor 、GlobalActor 异同点 和 用法
在 Swift Concurrency 中,有几个与 Actor 相关的特性和协议,包括 Actor、AnyActor、MainActor 和 GlobalActor。它们都是用于并发编程和处理异步任务的特殊类型和特性。
2023-07-20 16:03:41 691
原创 Swift Actor
通过使用 Actor,你可以将数据和操作封装在一个单独的执行上下文中,并保证它们在同一时间只能被一个任务访问和修改。这样可以避免多线程并发导致的数据一致性问题。这样,任何在 actor 中定义的代码都会在同一个队列上串行执行,确保数据的线程安全性。数据保护:通过将数据封装在 actor 中,并通过 await 和 async 来访问和修改数据,可以确保数据在多线程环境中的安全访问。通过将数据和操作封装在 actor 中,并使用 await 和 async 来访问和修改数据,可以实现更安全和可靠的并发处理。
2023-07-20 15:49:05 406
原创 error in Xcode File not found:odeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
解决办法:
2023-06-01 18:03:17 206
原创 java 实现开启异步线程的几种方式
需要注意的是,无论使用哪种方式,都应该根据具体情况选择合适的线程池和调度器,以确保异步操作在适当的线程上执行,并在需要更新UI时切换回主线程。在Java中,有多种方式可以实现异步线程以避免在主线程中执行耗时操作导致界面卡顿的问题。
2023-04-14 08:17:39 2859
原创 C++ 智能指针 实现代码
智能指针的底层实现是通过 C++ 标准库提供的模板类来实现的,其中包含了一些与对象管理和资源释放相关的成员函数和成员变量。用于记录有多少个智能指针共享同一个对象。通过在构造函数、拷贝构造函数、析构函数和赋值运算符中更新引用计数,并在引用计数为零时释放资源,从而实现了对对象生命周期的管理。上面的实现是一个简化版的智能指针,它包含了一个裸指针。用于指向动态分配的对象,一个引用计数。
2023-04-14 08:13:16 201
原创 C++ 虚函数表
派生类的虚函数表会继承基类的虚函数表,并可以通过重写虚函数来修改其中的函数指针,从而实现对虚函数的覆盖。当子类继承自父类并且覆盖(override)了父类的虚函数时,子类会在自己的虚函数表中存储覆盖后的函数指针,而不会影响到父类的虚函数表。父类的虚函数表中包含了父类的虚函数,子类的虚函数表中包含了子类的虚函数,以及可能的新增虚函数。当一个对象调用虚函数时,首先会通过对象的虚函数表指针找到虚函数表的地址,然后根据函数在虚函数表中的索引找到对应的函数指针,最后通过函数指针进行函数调用。
2023-04-13 23:33:14 682
原创 Import Local Swift Package No such module TestPackage
Import Local Swift Package No such module TestPackage
2022-11-02 23:05:53 543
原创 Delete Android Virtual Device for mac
Delete Android Virtual Device for mac
2022-07-14 12:20:15 605
原创 NSObject、Class 、objc_class 、objc_objct、 isa_t
NSObject Class objc_class objc_object isa_t
2022-06-03 20:39:36 133
原创 Error: Failed to download metadata for repo ‘epel‘: Cannot download repomd.xml: Cannot download repo
华为云CentOS 8.1系统:参考配置Yum源(CentOS 8.1)配置Yum源
2022-05-31 09:45:09 5394 2
原创 UICollectionView received layout attributes for a cell with an index path that does not exist
Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘UICollectionView received layout attributes for a cell with an index path that does not exist: <NSIndexPath: 0x28223ea40> {length = 2, path = 0 - 1}’open func ins
2021-08-10 11:14:09 614
原创 Command MergeSwiftModule failed with a nonzero exit code (Xcode12.5.1)
error:Command MergeSwiftModule failed with a nonzero exit codeMergeSwiftModule normal arm64 (in target ‘xxxx’ from project ‘Pods’)<unknown>:0: error: circular reference<unknown>:0: note: through reference here<unknown>:0: note: throu
2021-07-07 16:59:07 1770 1
原创 Frida-ios-dump 使用
安装 Frida-ios-dumphttps://iosre.com/t/frida-ios-dump/11640brew install pythonbrew install wget安装pip:wget https://bootstrap.pypa.io/get-pip.pysudo python3 get-pip.py安装usbmuxd:brew install usbmuxdrm ~/get-pip.py安装frida for macsudo pip install
2021-05-15 10:43:01 453
原创 dumpdecrypted 使用
手机安装文件 openssh app file Conduit ///查看 运行程序路径ps -Adumpdecrypted.dylib 编译make 修改 make的CFLAGS = -target arm64-apple-ios8.0签名ldid -S dumpdecrypted.dylib放入路径文件中放入var/root///动态库在注入路径DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/A
2021-05-15 10:41:58 340 2
原创 dumpdecrypted.dylib: code signature in (dumpdecrypted.dylib) not valid for use in process using Libr
yld: warning: could not load inserted library 'dumpdecrypted.dylib' into hardened process because no suitable image found. Did find: dumpdecrypted.dylib: code signature in (dumpdecrypted.dylib) not valid for use in process using Library Validation: mappe
2021-05-14 14:33:56 417
原创 dumpdecrypted Symbol not found: ___chkstk_darwin
dyld: Symbol not found: ___chkstk_darwin Referenced from: dumpdecrypted.dylib (which was built for iOS 14.5) Expected in: /usr/lib/libSystem.B.dylib in dumpdecrypted.dylib修改 MakefileCFLAGS = -target arm64-apple-ios8.0链接
2021-05-14 14:31:53 824
原创 completely unsigned? Code has to be at least ad-hoc signed
not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.解决办法链接
2021-05-07 20:13:40 891
原创 Metal iOS deployment target
Set iOS deployment target -mios-version-min= "10.0"
2021-04-20 14:29:22 165
原创 “You do not have permission to open the application “
标题你没权限来打开应用程序You do not have permission to open the applicationException Type: EXC_CRASH (Code Signature Invalid)Exception Codes: 0x0000000000000000, 0x0000000000000000Exception Note: EXC_CORPSE_NOTIFYTermination Reason: Namespa
2021-03-30 10:26:00 3479
原创 CMTimeRange start 不要单独去改变 start 而是从新赋值给 CMTimeRange
在做 视频轨道编辑的时候 使用了CMTimeRange在改变 CMTimeRange.start的时候 遇到了坑可能是自己理解错了 只改变了CMTimeRange 的start发现自己需要的TimeRange 不对 我猜测 duration是没有发生改变的 改变的只是起始时间 总的时间没有发生改变记录一下 后续使用CMTimeRange 直接 整体赋值 不单独使用 start 和 duration...
2021-01-12 20:28:00 208
原创 Errors were encountered while preparing your device for development. Please check the Devices
Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window解决办法:可能和TypeC 的驱动有关iphone手机关机 重启
2021-01-08 10:28:33 1590
原创 DYPShaderDebuggerErrorDomain:1 “Failed to find library source“
DYPShaderDebuggerErrorDomain:1"Failed to find library source"Library source required.Under the target's Build Settings, ensure the Metal Compiler Build Options produces debugging information and includes source code.If building with the 'metal' comm
2020-12-16 18:12:58 375
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人