移动开发

zeroc Ice自动生成 (iOS)

2018-12-28  本文已影响73人  划落永恒

安装教程

Object-C使用ICE

  1. 下载IceTouch-1.2.1-Xcode-4.3.dmg:http://www.zeroc.com/icetouch/download.html

  2. 安装IceTouch-1.2.1-Xcode-4.3.dmg,安装完成后,会在/Developer/SDKs/IceTouch-1.2.0下面生成相应的文件。

  3. 配置Xcode:http://doc.zeroc.com/display/Ice/Xcode+Plug-in#XcodePlug-in-AddingSliceFilestoanXcodeProject
    配置Xcode有两种方式:
    一种是使用ICE官方的SDK,
    这种方式的好处是:
    1. 不需要手动去处理.ice文件,只需要把.ice文件拖动到工程中,ICE的SDK的会自动处理.ice文件以生成该.ice文件对应的.h和.m文件。
    2. 不需要手动配置使用ice的头文件路径和库文件路径,这些东西ICE的SDK都已经配置好了。
    这种方式的不足:
    使用这种方式,代码不能打包成静态库让别的工程调用,因为官方提供的SDK现在还不支持这种方式。
    另一种是不使用官方的SDK,
    这种方式的好处是:
    1. 使用ICE的的代码可以编译成静态库供别的工程使用。
    这种方式的不足是:
    1. 需要手动去配置使用ICE需要的头文件路径、库文件路径以及在Other Link flag中指定链接标志。
    2. 需要手动处理ice文件,并需要把处理ice文件后生成的.h和.m文件添加到工程中。
    关于手动处理ice文件请参考4。
    下面分别进行说明:
    3.1 使用ICE官方的SDK:
    1. 设置Xcode的Build Settings->Additional SDKs的值为:$(DEVELOPER_DIR)/SDKs/IceTouch-1.2/$(PLATFORM_NAME).sdk
    2. 设置Xcode的Build Settings->Code Signing Resource Rules Path的值为:$(SDKROOT)/ResourceRules.plist
    3. 添加以下的框架:
    CFNetwork.framework
    Security.framework
    Foundation.framework
    ExternalAccessory.framework

    3.2 不使用ICE官方的SDK
    1. 设置Xcode的Build Settings->Header search Paths值为: /Developer/SDKs/IceTouch-1.2.0/$(PLATFORM_NAME).sdk/usr/local/include
    目前工程的目录设置: /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/$(PLATFORM_NAME).sdk/usr/include /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/iphoneos.sdk/usr/include/objc/
    2. 设置Xcode的Build Settings->Library search Paths值为: /Developer/SDKs/IceTouch-1.2.0/$(PLATFORM_NAME).sdk/usr/local/lib
    目前工程目录的设置: /usr/local/Cellar/icetouch36/3.6.1/lib/IceTouch/ObjC/$(PLATFORM_NAME).sdk/usr/lib

  4. 设置Xcode的Build Settings->Other Linker Flags值为: -ObjC、-lGlacier2ObjC、-lIceObjC

  5. 处理ice文件
    如果使用ICE官方的SDK配置Xcode,则不需要手动处理ice文件。 如果自己手动配置,则需要使用命令工具slice2objc处理ice文件。
    安装IceTouch-1.2.1-Xcode-4.3.dmg时,会将slice2objc安装到目录/Developer/SDKs/IceTouch-1.2.0/bin下。
    处理ice文件方式为:
    在命令行上执行:slice2objc filename.ice
    执行这个命令后,会生成filename.h和filename.m文件

在Xcode10中发现ice编译ice文件会出现not found file,这是因为在编译的时候顺序不正确,导致了文件无法找到,解决方法如下:
选择Target-> Build Phases -> 在Copy Bundle resources中找到对应的ICE文件 ->拖进Compile Sources中。
如果解决了你的问题,点个赞呗!

image.png
上一篇下一篇

猜你喜欢

热点阅读