[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fLhsYMXMJt8l2-qlodlX5Ozi_SBtK0I5pAnziMFqsn1s":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":28,"notice":28,"visitCount":29,"commentCount":30,"keywords":31},91,"2024-03-02T08:42:52.504Z","iOS 海康威视sdk的集成","# 海康威视的设备网络iOS sdk 集成记录\n\n下载地址（海康提供的硬件产品下载地址）：[https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10&id=5cda5902f47ae80dd41a54b7](https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10&id=5cda5902f47ae80dd41a54b7)\n\n![](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709366837263.png)\n\n如图所示，直接点击“立即下载”的按钮可以下载sdk，查看开发指南也是下载的pdf版使用手册。\n\n下载下来的文件结构：\n![](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709366940703.png)\n\n## 接入步骤\n1. 首先在`SimpleDemo`中，用Xcode运行一下，确保demo是可以正常运行的。正常情况下，demo是可以正常run起来的。至少我写这篇文章时的版本是正常运行的。\n2. 需要注意demo中的几个配置的点：\n- 当前版本的海康威视sdk的demo，使用的是`mrc`，而不是`arc`。通过在build setetings中搜索`counting`来搜索引用计数的配置项：\n![海康威视iOS demo 截图](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709367254416.png)\n从截图中可以看出，配置项`Objective-C Automatic Reference Counting`是`NO`。\n\n- SimpleDemoViewController文件是`.mm`文件\n![](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709367434377.png)\n所以这里面使用一些C、C++的代码。\n那么当你集成海康威视的sdk时，切记在使用C、C++代码的时候，需要使用.mm的扩展文件名。\n3. 海康威视的开发文档中，并没有明确说明在引入他们的静态库和文件时，需要link那些library，但是在demo中，是可以从`build phrases`中的`link binary with libraries`选项中得到需要add的一些库。\n![](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709367866210.png)\n切记：在导入sdk的静态库、动态库、文件到项目中后，一定要在`link binary with libraries`选项中添加demo中所示的library，否则编译肯定会各种报错。\n4. 按照上述的步骤，是可以正常集成海康的sdk的。\n\n接下来会说明异常情况。\n\n## 其他场景\n1. 当下基本大多数的iOS工程都是`arc`的，而不是`mrc`，如何在`arc`工程中集成`mrc`的第三方库？\n\n在arc出现之前，至少在我的记忆中，iOS7出现之前，接触的基本都是mrc的工程。\n\n把sdk中的静态库、动态库、文件引入工程后，也引入了link的library后，可以先尝试进行编译，看具体报错。\n\n出现错误大概就是`'release' is unavailable: not available in automatic reference counting mode`\n\n查看编译报错的所在文件，在`build prases`配置中的`Compile Sources`下，找到报这个错误的文件，双击配置一下`-fno-objc-arc`，如下截图：\n![-fno-objc-arc](https://image.xinwei.ltd/Snipaste_2024-03-02_16-38-431709368745019.png)\n通过这种方式，使编译该文件时使用手动引用计数。\n\n如果有其他异常情况，欢迎一起讨论。\n","这篇文章记录一下我使用海康威视sdk的经历，通过简单的铺陈介绍，希望给在集成这个sdk时可能遇到问题的同学们一点借鉴。","https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-03-02%20161709366837263.png",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",3,{"id":24,"name":26,"parentId":21},"iOS",[],"",1033,0,"海康威视,hk vision,hk vision sdk,海康威视sdk,hk ios sdk"]