• iOS 无宿主App源码时,真机环境一键调试动态库


    背景

    合作项目,一方提供宿主App,一方提供动态库。双方囿于合规而不能为对方提供源码,所以双方提供的产物都是二进制产物。
    运行时双方融合是没有问题的,但是对开发(尤其是动态库开发方)是不友好的。

    当然,这场景要是在其他操作系统是没有什么大问题的。但对于iOS而言,因为苹果的硬性限制,真机环境调试是有些麻烦的。为解决开发阶段的调试需求,本文提供了一种思路并实践可行。

    一些准备

    • 开发者证书(调试)是必需的
    • Xcode ,本文成文时使用的是13.4.1
    • fastlane 工具,本文使用其重签名工具

    手动调试

    在介绍一键调试前,先大致介绍下如何手动调试。
    若要在真机环境调试,需要先将部署到真机的所有可执行文件进行签名,这包括App主程序和动态framework

    获取开发者证书列表

    运行命令,获取可用的证书列表

    security find-identity -v -p codesigning
    
    • 1

    结果一般是十六进制字符串和证书名字,例如

      1) 十六进制串  "Apple Development: xxxxx(yyyyyyy)"
         1 valid identities found
    
    • 1
    • 2

    动态库重签名

    codesign  -f -s 证书标识(十六进制串)   xxxx.framework
    
    • 1

    ipa包重签名

    本文使用fastlane工具

    # 安装fastlane
    sudo gem install fastlane
    
    • 1
    • 2

    安装成功后,执行重签名

    fastlane sigh resign
    #然后安装提示输入ipa包文件路径、证书文件路径
    #期间也可填写证书的十六进制串
    
    • 1
    • 2
    • 3

    特别注意:重签名证书必需使用开发证书
    重签名成功后,获得同名的ipa包,使用Xcode提供的Devices and Simulators

  • 相关阅读:
    从存储角度看自动驾驶必经之路
    黑*头条_第7章_kafka实战应用&文章自动审核
    vue cli和vite区别
    Linux系统基础知识
    目录IO及小练习
    Redis的持久化机制
    APP备案流程详细解读
    Java Heap Space问题解析与解决方案(InsCode AI 创作助手)
    网络攻击者和防御者利用AI的攻防战愈演愈烈
    WPF 依赖属性原理、 附加属性
  • 原文地址:https://blog.csdn.net/holdsky/article/details/126707894