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 中运行一款企业签名的应用时,会弹出类似这样的提示:
可以看到,应用不再是像之前的版本那样直接启动,而是弹出了一个安全提示。此时,如果我们确认要运行的应用是安全的,可以按照以下步骤来设置:
在系统中打开 设置
- 通用
- 描述文件
(在iOS 9.2以后叫:设备管理
),此时,可以看到有一个和刚刚弹出的提示中文字类似的描述文件。然后,点击对应描述文件进入后,再点击按钮 信任
,来让系统允许拥有这个证书的应用运行。如图所示:
之后,我们就可以回到桌面,重新运行刚才的应用,就会发现应用可以正常打开了。
- 进入页面时,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的最后一行