ijk从入死到入坑

项目需要视频播放和直播,决定 ZFPlayer 框架 其中包括ijkplayer

我的电脑是M1 问题真多

pod ZFPlayer

pod 'ZFPlayer/ijkplayer', '~> 4.0'
复制代码

模拟器报错 真机都不报错的

image.png

The linked framework 'Pods_Test.framework' is missing one or more architectures required by this target: x86_64.

解决: 删除 xxx.framework 然后即可运行

image.png

Excluded Architecture

排除的体系结构

pods zf之后,项目部分配置被改变

Pods模块

image.png

image.png

其他模块正常的

image.png

主工程:

image.png

image.png

总结: 真机没问题,模拟器报错。所以可能是包架构问题。ZFPlayer会自动给工程进行配置,只是之前编译的产物需要删除。重新编译即可。主要原因就是Xcode 12 会给模拟器产生arm64架构吧 说的也不一定对 暂时这样吧。

考虑到ZFPlayer需要修改源码 所以不通过cocopods导入。采取手动导入。所以IJK可以考虑手动和 pods

Pods IJK

移除zf 项目配置会自动恢复

image.png

image.png

image.png

image.png

pod 'IJKMediaFramework'
复制代码

模拟器报错 真机不报错

IJKMediaFramework(IJKAVMoviePlayerController.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/wangpanpan/Desktop/Test/Pods/IJKMediaFramework/IJKMediaFramework/Classes/IJKMediaFramework.framework/IJKMediaFramework' for architecture arm64

image.png

IJK没有改变项目配置 需要我们手动去改了

手动修改配置类似 pods ZFPlayer

image.png

手动修改后就可以运行正常了

补充 pods可以加入 剔除操作

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # 处理 M1 芯片上不支持 模拟器 运行问题:不仅仅编译活跃的架构,反之就是 i386、x86_64、arm64 等架构都编译。
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
    end
  end
end
复制代码

image.png

虽然这样 但是也没运行起来。我晕 这个暂时记录一下吧

手动导入IJK

导入前可以查看一下 编译过程 # 2022年-编译IJK

小计

自我修改还是自动修改 ## Excluded Architecture 都会导致模拟器启动变卡 内存 Memory飙升 暂时不知道咋解决

image.png

Warning: Error creating LLDB target at path '/Users/wangpanpan/Library/Developer/Xcode/DerivedData/Test-egovjxzzbyjdyydecsbijdxirabg/Build/Products/Debug-iphonesimulator/Test.app'- using an empty LLDB target which can cause slow memory reads from remote devices.

image.png

image.png

猜你喜欢

转载自juejin.im/post/7145000098789851150