敏捷个人应用主要是在Andorid下开发,发布的也主要是Andorid。之所以没有急着退出iOS版本,主要是因为开发iOS需要iOS的开发环境,发布还需要开发者账号,这些都需要资源或钱。而最近越来越多的敏友们期待着iOS版本的出现,为了感谢会员们的加入,所以还是决定投入开发iOS版本。

如果看过我之前写的关于敏捷个人应用开发的博客,应该知道我使用的是Phoengap。那么Phonegap在iOS下开发会遇到一些什么需要注意的事项呢?下面简要记录一下这次我遇到的一些问题,方便初次使用PhoenGap进行iOS下开发的朋友们。

开发环境

  1. XCode 6.1
  2. PhoneGap 4.1.2-0.22.7

生成iOS项目

 $ cordova platform add ios

添加插件

$ cordova plugin add org.apache.cordova.device

配置Phonegap

  1. PhoneGap的配置文件在 【Staging】目录下的config.xml
  2. 设置启动页:   <content src="html/login.html"/>
  3. 添加可访问页面:    <access origin="http://www.zhoujingen.cn/*" />  ,否则会出现类似 ERROR whitelist rejection: url='http://www.zhoujingen.cn/ 的错误

设置XCode 项目

  • ARC forbids explicit messag send of'release'

    • Targets-[Build settings]- CLANG_ENABLE_OBJC_ARC :No
  • 整个窗口与ToolBar重合了,解决这个问题是设置Target: General :"Hide during..."  will work

    • XCode6后是找到plist文件,添加一项:View controller-based status bar appearance,设置为no
  • 遇到类似“ Undefined symbols for architecture x86_64:

    "_SCNetworkReachabilityCreateWithAddress", referenced from:

    +[AFNetworkReachabilityManager managerForAddress:] in AFNetworkReachabilityManager.o”的错误,就上网找一下是缺少什么类库,例如这个示例显示的错误解决办法就是添加 CFNetwork.framework 类库

SVN在XCode放弃所有改变后

cordova/lib/copy-www-build-step.sh: Permission denied

解决办法:

cd platforms/ios/cordova/lib

sudo chmod 777 copy-www-build-step.sh

在Chrome下调试

Mac下打开Chrome跨域调试:open -a "Google Chrome" --args --disable-web-security

ARC forbids explicit message send of release

在ios中经常会遇到:ARC forbids explicit message send of 'autorelease' 或“ARC forbids explicit message send of release”这样的错误。原因可能是项目使用了arc机制而有些文件禁止使用而报错,

解决方法:

1.禁用在Xcode中的特定文件的ARC

点击项目名,在中间一栏选择targets,然后选择build phases选项。

展开Compile Sources,找到你报错的文件名,然后双击添加-fno-objc-arc:如下图:

Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_CATransaction", referenced from:
objc-class-ref in CDVBarcodeScanner.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Try to add QuartzCore framework to link with your project. Go Build Phases -> Link Binary With Libraries and add QuartzCore.

PhoneGap在iOS开发下的注意事项的更多相关文章

  1. IOS 开发下拉刷新和上拉加载更多

    IOS 开发下拉刷新和上拉加载更多 简介 1.常用的下拉刷新的实现方式 (1)UIRefreshControl (2)EGOTTableViewrefresh (3)AH3DPullRefresh ( ...

  2. UNITY3D在IOS开发下的反射机制限制

    IOS上的反射是部分支持,支持使用反射读取源代码,但不支持使用反射动态生成可执行代码,下面是限制反射的命名空间:ProfilerReflection.EmitReflection.Emit.Save ...

  3. ios开发下的点透处理

    界面上有一个浮动的div,这个div下面有一个文本框,当给这个div绑定touchstar后,做了冒泡的处理代码,还是会出现点透现象,触发下面的的文本框事件.立马弹出一个输入法出来. 1.网上有一种方 ...

  4. XE7 & IOS开发之开发账号(3):证书、AppID、设备、授权profile的申请使用,附Debug真机调试、Ad hoc下iPA文件生成演示(XCode5或以上版本推荐,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...

  5. iOS开发MAC下配置svn

    版本控制对于团队合作显得尤为重要,那么如何在iOS开发中进行版本控制呢?在今天的博客中将会介绍如何在MAC下配置SVN服务器,如何导入我们的工程,如何在Xcode中进行工程的checkOut和Comm ...

  6. Windows下搭建IOS开发环境(一)

    原文:http://blog.csdn.net/shangyuan21/article/details/18153605 我们都知道开发iPhone等ios平台的移动应用时需要使用Mac本,但是Mac ...

  7. IOS开发-phonegap上的数据库

    phonegap提供的本地数据库功能不可用,最终请教高手后使用SQLitePlugin插件来实现.网上很多都是介绍IOS插件如何编程,少有介绍如何使用插件: 一.插件安装: 1.下载,解压,复制以下文 ...

  8. IOS开发-phonegap及免证书及真机调试

    回头补记(Last edited at 2015.5.24). 第一步:建立项目 参见:Xcode5 + phoneGap2.9搭建ios开发环境 下载phonegap2.9.1,解压. 命令行,进入 ...

  9. 【IOS】分享下近一年IOS开发的经验总结

    从上个暑假末到现在,自己做IOS开发也快一年了.从一开始的什么都不知道,到现在大多事都能搭上一两手,期间经历了很多事情.下面来和大家分享一下心得和感触. 1.现在移动领域的知识更新的很快,无论是IOS ...

随机推荐

  1. [转]全面理解Unity加载和内存管理

    [转]全面理解Unity加载和内存管理 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质 ...

  2. C# System.Threading.Timer 使用方法

    public class TimerHelper { System.Threading.Timer timer; public TaskSendMMS tasksendmms { get; set; ...

  3. 【C语言学习】《C Primer Plus》第5章 运算符、表达式和语句

    学习总结 1.有了一定的语言基础,运算符和表达式这些都大同小异,无外乎赋值运算符(=).算术运算符(+.-.*./.%.++.——)和其他的一下运算符(sizeof.(type)). 2.声明一个参数 ...

  4. 【C语言学习】《C Primer Plus》第1章 概览

    学习总结 1.C语言于1972年由贝尔实验室的Dennis Ritchie在与Ken Thompson一起设计UNIX操作系统的时候开发的.的的设计构想来源于Ken Thompson的B语言.Anyw ...

  5. SignalR + KnockoutJS + ASP.NET MVC4 实现井字游戏

    1.1.1 摘要 今天,我们将使用SignalR + KnockoutJS + ASP.NET MVC实现一个实时HTML5的井字棋游戏. 首先,网络游戏平台一定要让用户登陆进来,所以需要一个登陆模块 ...

  6. java数学函数库 API(转)

    原文地址:http://www.24xuexi.com/w/2011-11-08/98206.html 首先给大家看看Math类所提供的主要方法,下面的列表给出了Math类的主要方法,如果要理解Mat ...

  7. netstat 1

    lsof -i   :8086 第二个参数需要:开头 netstat linux  -a (all)显示所有选项,默认不显示LISTEN相关 理解这个很关键, 这是为什么我们netstat -a 不显 ...

  8. vi 卡住怎么办

    http://zhidao.baidu.com/question/93283359.html ---------- 我貌似好像按了ctrl+s... 用惯了windows人,会习惯性地按Ctrl+S来 ...

  9. 前端chrome浏览器调试总结

    引言 "工欲善其事,必先利其器" 恩,这句话我觉得说的特别有道理,举个例子来说吧,厉害的化妆师都有一套非常专业的刷子,散粉刷负责定妆,眼影刷负责打眼影,各司其职,有了专业的工具才能 ...

  10. 手把手教你搭建SpringMVC——最小化配置

    为什么需要Spring MVC 最开始接触网页的时候,是纯的html/css页面,那个时候还是用Dreamweaver来绘制页面. 随着网站开发的深入,开始学习servlet开发,记得最痛苦的就是se ...