查看: 7805|回复: 137

[资源分享] 【产品更新】鹰眼iOS SDK 3.0.3版发布

[复制链接]
Zbatbupt 发表于 2017-4-17 18:02:21 | 显示全部楼层 |阅读模式
百度鹰眼
鹰眼产品: iOS SDK
产品版本号: 3.0.3
手机型号:
手机系统版本号:
效果截图: -
调用代码/参数:
本帖最后由 Zbatbupt 于 2017-5-23 16:10 编辑

鹰眼iOS SDK 3.0版本使用ObjC重构,目前完成了最基础的功能,链接中为Beta版,广大开发者可以下载试用。
说明:
1: 旧版SDK在Xcode8.3下无法使用,请开发者尽快使用新版SDK开发。
2: 版本号为3.0.0,只经过了简单测试,尽快发布Beta版的目的在于方便开发者及时适配Xcode8.3和iOS10.3
3: 功能包括轨迹采集、上传、实时位置查询、轨迹查询、终端实体的增删改查、服务端地理围栏的增删改查、地理围栏状态与报警查询等基础功能。其余功能将陆续开发,随时在此贴中更新。
4: 由于时间紧张,DEMO比较简陋,只是展示了各接口如何调用,及响应如何解析。详细的DEMO后续会进行开发,并在此贴中更新。
5: DEMO只需要在ViewController.m中设置上自己的serviceID,entityName,ak和mcode即可使用。
有任何关于新版SDK的疑问,请在此贴回复。

2017.04.18
更新说明:
1. 新版SDK只有一个版本,支持5种CPU架构。如果需要上架APP STORE,需要自行使用lipo 命令移除2种模拟器架构,避免遇到90087问题

2017.04.26 Beta3.0.1版本
更新说明:
【新增】
1.客户端地理围栏功能。包括客户端地理围栏的增删改查等管理功能,以及监控对象的状态查询、指定位置的状态查询、历史报警信息查询等功能。同时,客户端地理围栏的报警也会通过onPushMessage接口推送,和服务端的推送消息是同一个入口,根据type区分。
2.服务端地理围栏增加根据指定位置查询监控对象的状态接口。
【变更】
1. track相关查询将去燥、绑路、交通方式等封装为 BTKQueryTrackProcessOption类型。
【优化】
1. 修复了若干BUG
2. 提升了稳定性

2017.05.09 Beta3.0.2版本更新说明:
【新增】
1. entity终端实体检索相关接口(关键字模糊检索、矩形区域检索、圆形区域检索)
2. 轨迹分析相关接口(停留点分析、驾驶行为分析)
3. 客户端缓存管理功能(缓存信息查询、缓存清理、缓存占用磁盘空间设置)
4. 自定义轨迹点上传功能(除了SDK自动采集上传外,上传用户自定义的轨迹点)
【修改】
BTKFenceAlarmLocationPoint类中的坐标属性由location更改为coordinate。
【优化】
1. 提升了稳定性
2. 修复了断网时停止服务可能失败的BUG
3. 修复了地理围栏报警推送中的若干BUG
【注意】
由于数据表结构有修改,请开发者最好重新安装APP,否则可能对缓存管理相关功能有影响。

2017.05.23 3.0.3版本更新说明:
【新增】
1. 服务端行政区域地理围栏
【优化】
1. 提升了稳定性
2. 修复了部分头文件注释中的错误
3. 增加了开发指南,文档可以在本帖的附件中下载,也可以在下方链接的zip包中获取。

3.0.3版本的下载地址
链接: https://pan.baidu.com/s/1geDIQdH 密码: dtuc

【后续规划】
1. 3.0.3版本作为正式版的预览版,和正式版的功能完全一样。目前官网对应的文档正在编辑中,待编辑完之后,会在官网发布此正式版。
2. 现在的DEMO非常简陋,只是展示各个方法的调用方式。目前正在开发包含轨迹展示等功能的,较为完善的源码示例。

鉴于有些开发者反馈不熟悉 lipo 命令的使用,这里附上 lipo命令 的使用方法:

1. 检查当前库支持的CPU架构:
输入命令:lipo -info ./BaiduTraceSDK.framework/BaiduTraceSDK
终端回显:Architectures in the fat file: ./BaiduTraceSDK.framework/BaiduTraceSDK are: i386 x86_64 armv7 armv7s arm64

2. 剥离你需要的CPU架构,这里以你需要arm64和armv7为例:
输入命令:
mkdir armv7
mkdir arm64
lipo ./BaiduTraceSDK.framework/BaiduTraceSDK -thin arm64 -output ./arm64/BaiduTraceSDK
lipo ./BaiduTraceSDK.framework/BaiduTraceSDK -thin armv7 -output ./armv7/BaiduTraceSDK

3. 检查上一步剥离出来的库支持的CPU架构是否符合你的要求:
输入命令:lipo -info ./arm64/BaiduTraceSDK
终端回显:Non-fat file: ./arm64/BaiduTraceSDK is architecture: arm64
输入命令:lipo -info ./armv7/BaiduTraceSDK
终端回显:Non-fat file: ./armv7/BaiduTraceSDK is architecture: armv7

4. 将剥离出来的库合并成你需要的库,并替换framework中的库
输入命令:lipo -create ./armv7/BaiduTraceSDK ./arm64/BaiduTraceSDK -output ./BaiduTraceSDK.framework/BaiduTraceSDK

5. 清理刚才过程中的中间产物:
输入命令:
rm -rf ./arm64
rm -rf ./armv7

6. 检查framework中的库支持的CPU架构
输入命令:lipo -info ./BaiduTraceSDK.framework/BaiduTraceSDK
终端回显:Architectures in the fat file: ./BaiduTraceSDK.framework/BaiduTraceSDK are: armv7 arm64

7. 完成。
【】2ueryTrackProcessOption









鹰眼iOS SDK 开发指南.pdf

416.74 KB, 下载次数: 75

 楼主| Zbatbupt 发表于 2017-5-8 18:01:14 | 显示全部楼层

1. 服务是一个更大的概念,典型的场景是:startService -> startGather -> stopGather -> startGather -> stopGather .........  -> stopService。服务开启之后,SDK会和服务端建立长连接,此时可以接收服务端的推送信息,上传之前断网时缓存的数据等等。而startGather和stopGather只是控制SDK是否开始和结束采集当前的轨迹数据。只要采集了。SDK会根据网络状况,尽快地将轨迹上传到服务端去。

2. 由于目前所有的功能还没有开发完。参见本帖中之前楼层的解释,本周会发布最后一个Beta版。下周会发布包含所有功能的正式版。然后是逐步完善使用说明和最佳实践等详细地使用说明。在此之前,对于新接入鹰眼的开发者可能理解某些概念有些困难。目前来说,对于不清楚的地方,可以在论坛上提问。
回复 支持 2 反对 1

使用道具 举报

cookie199 发表于 2017-5-23 09:07:36 | 显示全部楼层
great申冠华 发表于 2017-5-22 18:02
确定本周发布正式版吧???

本周发布,已经测试完了,在补充文档,sdk和最新的3.0.2版本一样。完整版的demo还在开发中。
新版本的开发工作量非常大,我们的工程师每天都在加班,节假日也在加班,还请谅解。
回复 支持 1 反对 0

使用道具 举报

jiaer1022day 发表于 2017-5-4 19:05:57 | 显示全部楼层
Zbatbupt 发表于 2017-5-4 18:33
-(void)queryTrackLatestPointWith:(BTKQueryTrackLatestPointRequest *)request delegate:(id)delegate; ...

找到问题了,不支持Bitcode,关闭就可以了
回复 支持 1 反对 0

使用道具 举报

 楼主| Zbatbupt 发表于 2017-5-5 11:19:30 | 显示全部楼层
jiaer1022day 发表于 2017-5-4 19:08
也不对呀,关闭了Bitecode,但是会报错Image not find。。我看demo里面没有其他操作了呀 ...

你看下你的TARGETS里面General选项卡下面的Embedded Binaries栏中,有BaiduTraceSDK.framework吗?还是只导入到了Linked Frameworks and Libraries中去了?如果不是的话,你先都清空,然后手动将SDK拖入到Embedded Binaries栏中试试。
回复 支持 1 反对 0

使用道具 举报

 楼主| Zbatbupt 发表于 2017-5-8 21:52:56 | 显示全部楼层
上海双至 发表于 2017-5-8 20:20
Guideline 2.5.2 - Performance

鹰眼SDK内部没有热更新相关的代码。已经有非常多的APP使用鹰眼SDK上架,还没有接到过热更新相关的反馈。你再检查下你代码的其他部分吧?
回复 支持 1 反对 0

使用道具 举报

 楼主| Zbatbupt 发表于 2017-4-17 18:02:38 | 显示全部楼层
有疑问请在此贴下回复~
jimmytkw 发表于 2017-4-18 18:09:59 | 显示全部楼层
鹰眼集成没问题,测试也没问题,但是上传App Store的时候出现了好几个错误,ERROR ITMS-90087: "Unsupported Architectures. The executable for FreeCar-Driver.app/Frameworks/BaiduTraceSDK.framework contains unsupported architectures '[x86_64, i386]'."

ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at 'FreeCar-Driver.app/Frameworks/BaiduTraceSDK.framework/BaiduTraceSDK' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."

ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."

WARNING ITMS-90080: "The executable 'Payload/FreeCar-Driver.app/Frameworks/BaiduTraceSDK.framework' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables. For more information refer to Technical Q&A QA1788 - Building a Position Independent Executable in the iOS Developer Library."
jimmytkw 发表于 2017-4-18 18:26:00 | 显示全部楼层
本帖最后由 jimmytkw 于 2017-4-18 18:27 编辑

这个是打包后的截图

D70102A9-D42C-4C68-B46B-E9C8A51F3761.png
 楼主| Zbatbupt 发表于 2017-4-18 18:39:56 | 显示全部楼层
jimmytkw 发表于 2017-4-18 18:26
这个是打包后的截图

90087那个问题,是因为你没有使用 lipo thin命令把模拟器的架构剥离出去吧?上架应用要求应该不支持模拟器才对。新版的鹰眼SDK是支持所有CPU架构的,你需要自己剥离一下。

90209问题,是Xcode没升级到最新的8.3.1版本?
jimmytkw 发表于 2017-4-18 18:48:42 | 显示全部楼层
Zbatbupt 发表于 2017-4-18 18:39
90087那个问题,是因为你没有使用 lipo thin命令把模拟器的架构剥离出去吧?上架应用要求应该不支持模拟 ...

Xcode确实没升级到8.3.1,,,,,,,,不过分离怎么做啊,,,,,demo里没看到,,,
 楼主| Zbatbupt 发表于 2017-4-18 18:56:51 | 显示全部楼层
jimmytkw 发表于 2017-4-18 18:48
Xcode确实没升级到8.3.1,,,,,,,,不过分离怎么做啊,,,,,demo里没看到,,,

lipo 命令 thin create
百度一下,你就知道啊。
jimmytkw 发表于 2017-4-18 19:07:45 | 显示全部楼层
Zbatbupt 发表于 2017-4-18 18:56
lipo 命令 thin create
百度一下,你就知道啊。

=-=百度到的结果,,,我表示看得我一脸懵逼,搞不懂
jimmytkw 发表于 2017-4-18 19:14:36 | 显示全部楼层
Zbatbupt 发表于 2017-4-18 18:56
lipo 命令 thin create
百度一下,你就知道啊。

=-=有没有具体步骤,,,,,百度到的结果那些路径都不知道咋搞,是不是要把.framework放到哪个文件夹下面才可以啊
jimmytkw 发表于 2017-4-18 19:20:39 | 显示全部楼层
Zbatbupt 发表于 2017-4-18 18:56
lipo 命令 thin create
百度一下,你就知道啊。

=-=能不能SDK那边提前弄好啊,,
jimmytkw 发表于 2017-4-18 19:32:00 | 显示全部楼层
Zbatbupt 发表于 2017-4-18 18:56
lipo 命令 thin create
百度一下,你就知道啊。

我把BaiduTraceSDK.framework直接放桌面了,,,,,=-=求指点怎么剥离模拟器的那两个CPU
jimmytkw 发表于 2017-4-18 19:48:13 | 显示全部楼层
我来科普一下,我没用终端去运行lipo命令,用的这个连接里的方法,Xcode版本8.3.1,,,,,

http://www.cnblogs.com/yeng/p/6077072.html


现在可以上传了

点评

这个方法果然牛逼 不用分离了呵呵哈哈哈  发表于 2017-5-6 10:26
 楼主| Zbatbupt 发表于 2017-4-19 12:07:56 | 显示全部楼层
jimmytkw 发表于 2017-4-18 19:48
我来科普一下,我没用终端去运行lipo命令,用的这个连接里的方法,Xcode版本8.3.1,,,,,

http://www.cnblogs.c ...

嗯,可以这么搞的。你的APP叫什么名字?方便的话可以贴出来做做广告~
justlikeido 发表于 2017-4-24 15:26:37 | 显示全部楼层
查询监控对象在服务端地理围栏内外状态为unknown
monitored_statuses" =     (
                {
            "fence_id" = 1;
            "monitored_status" = unknown;
        }
tianchengmap 发表于 2017-4-24 15:58:13 | 显示全部楼层
Zbatbupt 发表于 2017-4-17 18:02
有疑问请在此贴下回复~

iOS鹰眼开发版sdk能上线吗?如果不能,那么替换两个sdk时需要注意什么?谢谢!
 楼主| Zbatbupt 发表于 2017-4-25 10:39:15 | 显示全部楼层
tianchengmap 发表于 2017-4-24 15:58
iOS鹰眼开发版sdk能上线吗?如果不能,那么替换两个sdk时需要注意什么?谢谢!

新版SDK不区分开发版和上架版。只有一个版本,支持5种CPU架构,如果要上架,自己用lipo命令合成需要的版本即可。
烟火698 发表于 2017-4-25 17:30:15 | 显示全部楼层
本帖最后由 烟火698 于 2017-4-25 17:47 编辑

我在模拟器上没问题,真机上跑就crash了,iPhone6、iOS 9.3.5的系统

dyld: Library not loaded: @rpath/BaiduTraceSDK.framework/BaiduTraceSDK
  Referenced from: /var/containers/Bundle/Application/E0676F11-90DC-4818-BC1C-47E145939593/BaiduTraceSDKObjCDEMO.app/BaiduTraceSDKObjCDEMO
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/E0676F11-90DC-4818-BC1C-47E145939593/BaiduTraceSDKObjCDEMO.app/Frameworks/BaiduTraceSDK.framework/BaiduTraceSDK: mmap() errno=1 validating first page of '/private/var/containers/Bundle/Application/E0676F11-90DC-4818-BC1C-47E145939593/BaiduTraceSDKObjCDEMO.app/Frameworks/BaiduTraceSDK.framework/BaiduTraceSDK'

解决了,我取消了Xcode自动管理证书的功能,自己导入证书就可以了。。。
 楼主| Zbatbupt 发表于 2017-4-26 11:22:07 | 显示全部楼层
烟火698 发表于 2017-4-25 17:30
我在模拟器上没问题,真机上跑就crash了,iPhone6、iOS 9.3.5的系统

dyld: Library not loaded: @rpath/Ba ...

嗯,Xcode有的时候真机测试的证书设置就会出这种奇怪的问题~
顾春刚abc 发表于 2017-4-27 11:57:46 | 显示全部楼层
我是用的swift3.0 开发的,桥接了你给的那个beta版本,现在报错,
dyld: Library not loaded: @rpath/BaiduTraceSDK.framework/BaiduTraceSDK
  Referenced from: /Users/guchungang/Library/Developer/CoreSimulator/Devices/1CF783E2-EE08-4117-9010-1FB00EA743C7/data/Containers/Bundle/Application/EF956555-5296-4F7A-92B9-3BC9F3100C17/LogisticsDriver.app/LogisticsDriver
  Reason: image not found
顾春刚abc 发表于 2017-4-27 13:29:25 | 显示全部楼层
我用的是xcode8.3.2
 楼主| Zbatbupt 发表于 2017-4-27 17:35:00 | 显示全部楼层
顾春刚abc 发表于 2017-4-27 11:57
我是用的swift3.0 开发的,桥接了你给的那个beta版本,现在报错,
dyld: Library not loaded: @rpath/BaiduT ...

你先在你的环境下,运行zip包里面的DEMO,可以正常运行不?
新的SDK使用OC编写,Swift应该也可以正常调用的。
顾春刚abc 发表于 2017-4-27 20:45:04 | 显示全部楼层
Zbatbupt 发表于 2017-4-27 17:35
你先在你的环境下,运行zip包里面的DEMO,可以正常运行不?
新的SDK使用OC编写,Swift应该也可以正常调用 ...

这个问题解决了,现在有新的问题,我传入entityName,想通过这个查看一段时间内的历史数据,但是
func onQueryHistoryTrack(response:NSData)  {
        let dict:NSDictionary = (try! JSONSerialization.jsonObject(with: response as Data, options: JSONSerialization.ReadingOptions.mutableLeaves)) as! NSDictionary
        print(dict);
    }
这个方法不被调用,onStartService这个方法调用了
顾春刚abc 发表于 2017-4-27 20:47:09 | 显示全部楼层
Zbatbupt 发表于 2017-4-27 17:35
你先在你的环境下,运行zip包里面的DEMO,可以正常运行不?
新的SDK使用OC编写,Swift应该也可以正常调用 ...

我可以加一下你的qq吗,我的qq是1013610730
逆逆少 发表于 2017-5-2 16:01:08 | 显示全部楼层
哎。。百度lipo命令一脸懵逼。。。。添加脚本提交也不行。。搞了一天了,可不可以写个文档教一下怎么分离模拟器框架啊,快晕了
 楼主| Zbatbupt 发表于 2017-5-3 10:28:05 | 显示全部楼层
顾春刚abc 发表于 2017-4-27 20:45
这个问题解决了,现在有新的问题,我传入entityName,想通过这个查看一段时间内的历史数据,但是
func on ...

-(void)queryHistoryTrackWith:(BTKQueryHistoryTrackRequest *)request delegate:(id<BTKTrackDelegate>)delegate;

查询一段时间内的历史轨迹,使用这个方法。
 楼主| Zbatbupt 发表于 2017-5-3 11:00:42 | 显示全部楼层
逆逆少 发表于 2017-5-2 16:01
哎。。百度lipo命令一脸懵逼。。。。添加脚本提交也不行。。搞了一天了,可不可以写个文档教一下怎么分离模 ...

你好,主贴已经更新,最后增加了lipo命令的使用方法
315389li 发表于 2017-5-3 16:58:06 | 显示全部楼层
Zbatbupt 发表于 2017-5-3 11:00
你好,主贴已经更新,最后增加了lipo命令的使用方法

,分离完怎么在弄回来模拟器运行
 楼主| Zbatbupt 发表于 2017-5-4 10:32:24 | 显示全部楼层
315389li 发表于 2017-5-3 16:58
,分离完怎么在弄回来模拟器运行

用之前完全版的那个就可以模拟器啊
jimmytkw 发表于 2017-5-4 12:12:45 | 显示全部楼层
开始导航就突然崩溃了,打印这个
[SDKPlayback] MPMusicPlayerController] MPMusicPlayerController: Server is not running, deferring check-in
爵r 发表于 2017-5-4 13:23:40 | 显示全部楼层
很气。。为什么官网不传最新的SDK和代码   iOS运行个百度地图的demo都得调试半天  
为啥不像安卓那样弄个直接可以运行的demo

小黑屋|手机版|百度地图开放平台 ( 京ICP证030173号 )

GMT+8, 2017-9-21 05:45 , Processed in 0.406239 second(s), 30 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表