ArcGIS for iOS 开发系列(2) – 开发环境配置
来源:互联网 发布:h5制作的app源码下载 编辑:程序博客网 时间:2024/05/19 21:44
我们已经掌握了一些基本知识,在动手编程之前,还需先配置下开发环境:
2.1 iOS 配置
1) Mac电脑(MacBook Air/ Pro、Mac mini和iMac都可以);
2) Snow Leopard(小版本10.6.2以上)、Lion(小版本10.7以上)或Mountain Lion操作系统
3) 下载并安装Xcode开发工具(Xcode是苹果的集成开发环境):
a.最新的Xcode 4.5版本(附带了iOS 6 SDK,安装包大概1.56 G);
b.其他的Xcode 4.x版本(附带了iOS 5 SDK,安装包大概1.4 G)。
*Xcode可以从苹果开发者中心免费下载:https://developer.apple.com/downloads/index.action
4) 苹果开发者账号,99刀/年,没有Visa或学生可以考虑先用PJ账号进行开发,但最终应用发布时必须用合法的账号进行签名。
*假如手头没有Mac,也可以考虑使用虚拟机,见过有人用VMware Workstation 8.x创建Snow Leopard用的,聊胜于无嘛。
2.2 ArcGIS for iOS 配置
有了iOS开发环境,我们还需要配置ArcGIS for iOS:
1) 下载并安装ArcGIS runtime SDK for iOS v2.3.2;
*ArcGIS runtime SDK for iOS安装包(*.pkg文件)可以从Esri资源中心免费下载:
http://www.esri.com/apps/products/download/index.cfm?fuseaction=download.all#ArcGIS_Runtime_SDK_for_iOS
2) 查看SDK文件是否成功安装,默认安装路径是${HOME}/Library/SDKs/ArcGIS/,其中包括了ArcGIS框架库和一个MapViewDemo示例工程。框架库目录中包括了库文件,资源包,语言包等。
* 如果升级安装,建议先卸载老版本:
${HOME}/Library/ApplicationSupport/AGSiOSSDK/uninstallAGSiOSSDK
*如果Finder里看不到Library(资源库)目录,可以在终端里运行以下命令:
chflagsnohidden ~/Library/
3) 如果安装出现问题,会写日志到 /var/log/install.log,常见的原因是用户权限不够或安装包已损坏,需要升级为管理员权限和重新下载安装包。
2.3 Xcode工程配置
启动Xcode,新建一个iOS项目,选择Single View Application (单视图模板),接下来填写项目名称、机构信息等,其中“Class Prefix”是类的前置标识名称,“Device”选择对应的设备,勾上“Use Automatic Reference Counting”选项可以简化手动的内存管理、“Use Storyboard”和“includeUnit Tests”两项暂不选择,避免增加新手的入门负担。
图2-1 新建项目
选择项目的保存路径后,“HelloWorld Map”就创建成功了,Xcode挺好用,如下图所示从界面上可以划分成3大区域:菜单和工具栏、项目目录窗口和内容编辑窗口。
菜单和工具栏,包括了常规的项目管理、文件编辑、视图控制等,其中最常用的已经默认添加到工具栏上:运行/停止、目标选择、状态栏、设备管理项等。
项目目录窗口,包含文件目录视图、逻辑分层视图、查找视图、消息视图、调试视图、断点视图和日志视图,其中的文件目录视图可以很好的管理文件夹、代码、界面、引用库等。
内容编辑窗口,在文件目录视图选择某对象后,内容窗口就进一步展开该对象的内容,代码编辑和程序界面布局都在这里进行。
* 这里仅介绍Xcode大体功能划分,更为详尽的介绍还请查看其帮助文档或其他iOS开发入门资料。
图2-2 Xcode功能布局划分
第一步:添加ArcGIS框架引用,选择项目Targets,在“Build Setting”里搜索“Framework Search Paths”,双击进行编辑,添加:$(HOME)/Library/SDKs/ArcGIS/**。
图2-3 添加ArcGIS框架引用
第二步:添加其他引用,由于ArcGIS框架自身也引用很多iOS基础框架,需要在“Build Phases”的“Link Binary With Libraries”里添加以下引用:
- UIKit.framework
- Foundation.framework
- CoreGraphics.framework
- CoreLocation.framework
- QuartzCore.framework
- CoreText.framework (v1.8新引入)
- libstdc++.dylib (v1.8新引入)
- MediaPlayer.framework (v2.0新引入)
- MobileCoreServices.framework (v2.0新引入)
- libz.dylib (v2.1新引入)
- Security.framework (v2.1新引入)
图2-4 添加其他引用
*Mac的 Commond键功能类似与PC的Ctrl键,按住它可以进行多选。
第三步:修改编译标记,ArcGIS框架要正常运行还需要添加编译标记,在“Build Setting”里搜索“Other Linker Flags”,双击进行编辑,添加:-all_load -ObjC -framework ArcGIS。
图2-5 修改编译标记
第四步:添加资源包,ArcGIS框架提供了常用的图片、视图和语言包资源,都打包放在“ArcGIS.bundle”中,该文件位于:${HOME}/Library/SDKs/ArcGIS/ArcGIS.framework/Versions/Current/Resources。
*如果不喜欢资源包里的某个图标,比如GpsDisplay.png,想用自定义的图片代替,只需要把你的图片添加到项目中,并保持相同命名(GpsDisplay.png)即可。
第五步:添加地图,包括地图容器MapView和地图控制器Map Controller的创建,在下一节将详细说明。
*如果以上配置过程让你感到厌倦,就会问:干嘛不直接提供一个ArcGIS项目模板?这是个好问题,官方解释是苹果公司并不允许在Xcode里集成第三方模板,退而求其次,我们可以使用默认安装的MapViewDemo示例工程,其中已经配置并添加好了地图,该工程位于:
${HOME}/Library/SDKs/ArcGIS/Samples/MapViewDemo
另外:推荐博文:
ArcGIS Runtime SDK for iOS开发系列教程(1)——开发前准备:http://www.cnblogs.com/esrichina/archive/2012/09/01/2666398.html
ArcGIS Runtime SDK for iOS开发系列教程(3)——Objective-C语法基础:http://www.cnblogs.com/esrichina/archive/2012/10/25/2671149.html
- ArcGIS for iOS 开发系列(2) – 开发环境配置
- ArcGIS for iOS 开发系列(2) – 开发环境配置
- 【教程连载】ArcGIS for iOS 开发系列(2) – 开发环境配置
- ArcGis For iOS 开发配置
- ArcGIS for iOS 开发系列 - 前言
- ArcGIS SDK for iOS开发系列教程
- ArcGIS for iOS 开发系列(1) – 基本概念
- ArcGIS for iOS 开发系列(1) – 基本概念
- 【教程连载】ArcGIS for iOS 开发系列(1) – 基本概念
- ArcGIS Runtime for Android 开发环境配置
- ArcGIS Runtime SDK for iOS开发系列教程
- Arcgis for Android开发环境
- ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置
- 【教程连载】ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置
- Arcgis Engine for java 10 开发环境配置
- Arcgis Engine for java 10 开发环境配置 (eclipse)
- arcgis api for flex之二、开发环境配置
- 【iOS】ArcGIS for iOS环境配置
- 高级信号和槽的使用(几个信号被连接到同一槽上,并且槽需要处理每个不同的信号)
- hdu 1839 Delay Constrained Maximum Capacity Path
- Android AIDL使用详解
- 连接mysql数据库的配置
- C++语言怎么在main函数执行之前执行一段代码
- ArcGIS for iOS 开发系列(2) – 开发环境配置
- Android SDCard操作(文件读写,容量计算)
- Android杂谈--ListView之BaseAdapter的使用
- 网页连接数据库
- POJ 3450 Corporate Identity 、 POJ 3080 Blue Jeans
- 智能手机vs.桌面:SEO+Web开发重心转移?
- java 线程同步
- ALV控件内置功能码一览表
- android进程间通信:使用AIDL