常见Q&A

1. 如何去除不需要或者不应该存在的架构?

解答: 为了方便开发者调试,所有framework合并了模拟器和真机架构,上线前,使用lipo工具移除相关架构即可,参考:

cd lib
# 使用lipo -info 可以查看包含的架构
lipo -info xx.framework/xx  # Architectures in the fat file: xx are: i386 x86_64 armv7 armv7s arm64
# 移除x86_64, i386
lipo -remove x86_64 xx.framework/xx -o xx.framework/xx
lipo -remove i386 xx.framework/xx -o xx.framework/xx
# 再次查看
lipo -info xx.framework/xx # Architectures in the fat file: xx are: armv7 armv7s arm64

2.进行APP打包时,Xcode 进行Archive/IPA/Upload AppStore 时报错”Unsupported Architecture. Your executable contains unsupported architecture ‘[x86_64, i386]…”错误,如何解决?

解答: 由于AppStore在未来不再支持32位系统的软件更新,所有上传给AppStore的软件,不再支持**x86_64, i386 **这两种架构,可以通过删除SDK中x86_64, i386这两种架构的方式来解决此问题。

具体操作参考 1. 如何去除不需要或者不应该存在的架构?

3. 如何减少SDK大小

解答: 由于不同客户对于SDK架构要求不同,物联云平台提供的所有SDK都是全架构支持的。开发者可以通过去掉不需要的架构来减少SDK的体积。

具体操作参考 1. 如何去除不需要或者不应该存在的架构?

4. 如何将SDK进行降级?

解答: iOS和Android操作示例如下:

  • iOS

    • 应用首页模块ModuleIndex

      如果使用的初始化方法为registerWithConfigFileName:registerWithTokenExpiredCallBack: 在后缀名为.xlink配置文件中添加新的配置项BAModuleIndexVersion数值定死为1,示例如下:

      {
          "h5ContainerBaseURL" : "https://mobile.xlink.cn/estate-h5-apps",
          "apiServer" : "https://api2.xlink.cn",
          "apiGatewayServer" : "https://api2.xlink.cn",
          "BAModuleIndexVersion": 1
      }

      如果不是使用的registerWithConfigFileName:registerWithTokenExpiredCallBack: 这两种初始化方法,需要将原本的初始化方法的参数按照registerWithConfigFileName:或**registerWithTokenExpiredCallBack:**的要求进行修改。

    • 播放器模块IPCPlayer

      直接使用Podfile中的版本管理进行修改,具体的版本请参考开发人员给出的版本号。

  • Android

    • 应用首页模块ModuleIndex

      请确保使用的sdk版本为xlink-moudle-index 1.0.2

      import cn.xlink.moudle.Constatic;  //该类的路径为
          
       //建议在Application类中初始化时设置
      public void setXlinkConfig() {
              Constatic.isNewFullModel = false;
      }

      该参数调整为false 之后,将会调用降级版应用模块查询接口。默认为true。

    • 播放器模块IPCPlayer

      请确保使用的sdk版本为xlink-ipcplayer-manager:1.1.2

      如果需要针对播放器接口进行降级.

       //建议在Application类中初始化时设置
      public void setXlinkConfig() {
          IPCPlayConfig.setVideoLiknVersionDomainModel(false); 
          IPCPlayConfig.setEventPlayer(false);
      }

5. 启动应用时,出现提示“未受信任的企业级开发者”

请回到 iOS 系统桌面,然后依次打开 设置 - 通用 - 描述文件与设备管理,然后,点击对应描述文件进入后,再点击按钮 信任即可。

在 iOS 9 中及以后的版本中,苹果对企业签名的应用运行时,进行了更严格的限制。因此,在 iOS 9 中,企业签名后的应用安装好之后,是无法直接启动的。默认情况下,在 iOS 9 中运行一款企业签名的应用时,会弹出类似这样的提示:

1

可以看到,应用不再是像之前的版本那样直接启动,而是弹出了一个安全提示。此时,如果我们确认要运行的应用是安全的,可以按照以下步骤来设置:

在系统中打开 设置 - 通用 - 描述文件(在iOS 9.2以后叫:设备管理),此时,可以看到有一个和刚刚弹出的提示中文字类似的描述文件。然后,点击对应描述文件进入后,再点击按钮 信任,来让系统允许拥有这个证书的应用运行。如图所示:

1

1

1

1

之后,我们就可以回到桌面,重新运行刚才的应用,就会发现应用可以正常打开了。

  1. 进入页面时,Xcode报[UIView mas_topMargin]: unrecongnized selector sent to instance错误,如何解决?

解答: 由于Masonry库默认修改了最低版本,而低于iOS9的iOS系统不存在topMarginAPI,Masonry对iOS9以下的系统不提供mas_topMargin属性。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO'
      if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 9.0
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
  end
end

该代码复制到Podfile的最后一行

1

没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题