4.1 如何在Swift项目下使用AliHotFix

为 Swift 项目制作 Patch 补丁需要注意以下几点:

  1. 只支持调用继承自 NSObject 的 Swift 类,暂不支持 Swift 原生类热更新。
  2. 继承自 NSObject 的 Swift 类,其继承自父类的方法和属性可以在 JS或lua 调用或更新,其他自定义方法和属性需要加 dynamic 关键字。
  3. 若方法的参数/属性类型为 Swift 特有(如 Character / Tuple),则此方法和属性无法通过 JS 调用。

4.2 依赖了alipay、友盟等阿里系SDK,导致编译报utdid冲突,怎么办?

  • 在集成项目的podfile中去除pod 'UTDID'依赖,如果项目中的UTDID库不是通过cocoapods集成依赖的,请找到冲突的SDK,在该SDK的开放平台中找去除UTDID依赖的版本。(例如:alipay解决UTDID冲突SDK版本地址)

4.3 iOS9中ATS配置问题

  • 由于iOS9引入了AppTransportSecurity(ATS)特性,要求App访问的网络使用Https协议,如果不做特殊设置,http请求会失败。
    解决方法: 需要开发者在工程中增加设置以便可以发送http请求,如下:在info plist中增加字段:

    <key>NSAppTransportSecurity</key>
    <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    </dict>

4.4 iOS10中获取相机权限问题

  • iOS10中如果不在info.plist提前设置申请获取相机权限,在使用到相机的时候直接crash。
    解决方法: 在info.plist中增加如下字段(使用source code模式):

    <key>NSCameraUsageDescription</key>    
    <string>cameraDesciption</string>

4.5 iOS9+系统app在模拟器运行时报错:Patch run error:Invalid token

  • 在iOS9+系统中,模拟器无法访问keychain中的密码,导致校验服务端返回token的时候失败,从而触发patch run error:Invalid token.问题。
    解决方法: targets中选中工程项目 -> Capabilities -> Keychain Sharing 打开’ON’

4.6 请妥善保管好使用tool工具在本地自签名的证书

  • 保证集成到app中的自签名证书与本地加密打包patch所使用的证书一致,切记本地的自签名证书要妥善保管,否则即成到app的AliHotFixSDK解码patch包会不一直失败。

4.7 环境支持

  • AliHotFix.framework、AliHotFixDebug.framework 支持iOS7+
  • 本地打包工具AliHotFixCommand 支持OS X10.9+

FAQ

关于此文档暂时还没有FAQ
返回
顶部