东莞服务器租用,请问大家都是哪里租的呢

iOS项目更新之升级Xcode7 & iOS9 - 推酷
iOS项目更新之升级Xcode7 & iOS9
Apple 的WWDC所发布内容在给大家带来惊喜之际,给各位iOS开发的同仁却也带来了不同程度的麻烦。首先不讲新功能,就单指原来老版本的项目升级、代码升级,就是一堆问题,而且是不得不面临的问题。下面就跟着笔者一起来回顾下,此次在项目升级过程中,所遇到的各个问题点,以及解决方案,与各位已经做过和正在做iOS代码升级的同仁共勉,也给各位将要做Xcode 7和iOS9兼容的同仁以参考。
开发环境安装
原本运行得好好的项目,要升级Xcode7,首先就得安装Xcode7,具体的可以从开发者官网下载(目前最新版本是Xcode_7_GM_seed).下载好后,就双击下载好的dmg包,当然,前提还是需要我们的Mac环境升级到Mac OS 10.10.4+(图1.1),就可以打开Xcode安装镜像,如图1.2:
图1.1 Mac OS 更新示意图
图1.2 Xcode 7 GM安装
接下来,我们只要将图1.1所示的Xcode拖动到指定文件夹,即可完成安装,接下来,我们只要双击运行即可。
开发环境运行
各位可能会觉得,笔者在此还要讲开发环境的运行,是不是多此一举。其实并非如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个需要格外小心的事情,讲起来都是血泪史。
在运行Beta 版本Xcode时,我们需要特别注意以下几个方面:
- 在运行Beta版本Xcode前,务必要退出原来正式版本Xcode(如Xcode 6.4)
- 在运行Beta版本Xcode时,务必要避免双击打开工程文件(也是为了避免新旧版本同时运行)。
- 如果要切换回原来版本时,一定要先退出Beta版本,而且尽可能将Xcode的缓存数据清除。
当然,可能在实际的过程中,还是会有不少朋友就这么干了,当然,如果我们App后续只需要使用新版本Xcode,自然是没有太大关系,只是对于还需要用旧版本来开发或者发布App的朋友,可能就会有点麻烦,可能在用旧版本编译App在运行的时候,就会出现各种诡异的现象(如打印信息明明是正常,App运行逻辑却不正常等)。这时,可能大家要考虑的就是把Xcode删除掉,重新来过,甚至是重装操作系统。当然,不知道是否有朋友有更好的方案。不过笔者是不再想经历这种事情了。
App 项目运行
待项目运行,首先会碰到的问题就是配置兼容,会出现如下错误
图2.1 BitCode 错误
当我们看到App编译报错的时候,首先想项目不兼容Xcode7,再仔细一看
ld: ‘/Volumes/MacintoshHD/…/AnimationDesk Universal/Sources/AnimaitonDesk Universal/Classes/Supporting Files/GoogleLibrary/libGoogleAnalyticsServices.a(TAGDataProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
其中 ENABLE_BITCODE 吸引了我们的注意,看结合其它的描述信息,基本可以确定是我们使用的第三方静态库(.a)不支持BitCode,当然,我们对应就有如下两种方案来解决:
方法一:更新对应的第三方静态库(现在更新的静态库,基本都能支持BitCode)
方法二:可以将Xcode7默认开启的BitCode功能关闭,如图2.2所示
图2.2 关闭BitCode 操作示意图
当然,除了上面的问题外,当我们在添加Framework的时候,会发现此前导入的动态链接库(dylib)他部变成了红色,如图2.3所示,所幸的是,就算不替换成Xcode 7新的动态库文件(.tbd),仍然可以正常运行.
图2.3 动态链接库丢失示意图
最后,部分App在编译的时候,可能还会收到如下报错,小编也遇到过一次
All interface orientations must be supported unless the app requires full screen.
看到这句提示,就是说App默认是有开启了多任务功能,而多任务功能是需要App支持所有方向,如果我们App是有需要支持多任务,则需要开启App对各个方向(上、下、左、右)的支持;如果App不需要开启多任务,则只需要将如下示意图的 requires full screen 勾选上就ok(如图2.4)。
图2.4 勾选 Requires full screen示意图
不出意外,接下来,App应该是能正常编译运行(小编的AnimationDesk Cloud接下来是可以正常运行),但紧接着,发生了更诡异的事情,以前的的网络访问,现在完全访问不通;大家也许会觉得这可能是服务器挂了,或是外网被墙了,小编最初也是这么想的,但事实上,服务器(从Safari)还是能照常被访问,只是App访问不了,于是后来联想到iOS9 WWDC讲到的网络数据传输安全部分,经过一翻折腾,最终,网络访问的部分也恢复了正常。
其实只要在App的Info.plist里面加入如下信息就可以
&key&NSAppTransportSecurity&/key&
&key&NSAllowsArbitraryLoads&/key&
添加成功后的示意图如下图(图2.4)
图2.4 添加Transport Security 示意图
可能还有部分朋友跟小编一样,有碰到另外一个现象,就是UITextView,无论怎么设置它的textColor显示的总会是黑色,小编已找到具体的原理,准确地讲,应该是Xcode的一个Bug。
当小编在App开发时,在Xib上面设置过UITextView的背景色(BackgroundColor)为非默认颜色(WhiteColor)时,UITextView的文字颜色(textColor)无论怎么设置,都将会是黑色,如果想要颜色值正常,可以在设置好文本后,再重设一次颜色即可正常。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致iOS 问题:最近使用xcode5.1.1,基于sdk7.1,Deployment Target是5.1,开发的一个程序,直接通过xcode在ios5.1.1的iPhone4上可以正常运行,打包成ipa后通过itools安装后,也可以正常运行,而将ipa放到服务器上,通过网页进行安装时,在ios7的iPhone5上可以正常安装,但是在ios5.1.1的iPhone4上,下载正常,但是显示正在安装之后一会儿,安装的图标就消失了,任何地方都找不到该安装的软件了,一直找不到解决方法,请问有人知道这是什么情况吗?万分感谢~ -
最近使用xcode5.1.1,基于sdk7.1,Deployment Target是5.1,开发的一个程序,直接通过xcode在ios5.1.1的iPhone4上可以正常运行,打包成ipa后通过itools安装后,也可以正常运行,而将ipa放到服务器上,通过网页进行安装时,在ios7的iPhone5上可以正常安装,但是在ios5.1.1的iPhone4上,下载正常,但是显示正在安装之后一会儿,安装的图标就消失了,任何地方都找不到该安装的软件了,一直找不到解决方法,请问有人知道这是什么情况吗?万分感谢~
共有 2 个回答
iOS7.1以上 通过itms-service 需要 itms-services:xxxx url=https:
iOS7.1一下需要使用 http。
不知道是不是这个原因
登录后方可回复
登录后方可回复
登录后方可回答播放列表加载中...
正在载入...
分享视频:
嵌入代码:
拍下二维码,随时随地看视频
IOS开发教程 第一讲 用xcode做一个简单的app
上 传 者:
内容介绍:
IOS开发教程 第一讲 用xcode做一个简单的app
我来说点啥
版权所有 CopyRight
| 京网文[0号 |
| 京公网安备:
互联网药品信息服务资格证:(京)-非经营性- | 广播电视节目制作经营许可证:(京)字第403号
<img src="" width="34" height="34"/>
<img src=""/>
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img width="132" height="99" src=""/>
在线人数:
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img src="///img/blank.png" data-src=""/>
<img src="///img/blank.png" data-src="http://"/>
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/>
<i data-vid="" class="ckl_plays">
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/><i data-vid="" class="ckl_plays">
没有数据!
{upload_level_name}
粉丝 {fans_count}
{video_count}
{description}内容字号:
段落设置:
字体设置:
Xcode进行iOS开发中Build与version区别?build自增设置?build随
xcode开发中,version和build可能总是让大家迷惑。
其实&version&平时大家叫做&发布版本号&,&build&叫做&编译版本号&。
图1.xcode中version与build
一 、发布相关:
1.0 发布app到AppStore时候:
version相同&时候,&build相同&提交构建版本&失败&,
version相同&时候,&build不相同&提交构建版本&成功
2.0 列表:
发布&版本号
编译&版本号
二、装逼技能:build的自增?跟随时间变化?
图2.0 添加步骤.gif
Xcode&&&&&target&&&&&general&&&&&&Build Phases&&&& &&+&&&&&&Run scripe&&&&&复制代码
跟随时间变化(release和Debug不同情况)
#!/bin/bash
// 判断是哪个configuration
// Release Debug 或者只自定义的配置
if [ &Release& != &${CONFIGURATION}& ]
// 如果是Release做哪些事情
// 如果不是Release做哪些事情
// exit 0 退出 不执行下面的代码
// 获取info.plist信息 CFBundleVersion 可以更改为想获取的信息的名字
buildNumber=$(/usr/libexec/PlistBuddy -c &Print :CFBundleVersion& &${PROJECT_DIR}/${INFOPLIST_FILE}&)
shortVersion=$(/usr/libexec/PlistBuddy -c &Print :CFBundleShortVersionString& &${PROJECT_DIR}/${INFOPLIST_FILE}&)
buildNumber=`date +&%m%d&`
buildNumber=&$shortVersion.$buildNumber&
// 设置info.plist
/usr/libexec/PlistBuddy -c &Set :CFBundleVersion $buildNumber& &${PROJECT_DIR}/${INFOPLIST_FILE}&
跟随时间变化
#!/bin/bash
buildNumber=$(date +%Y%m%d%H%M%S)
/usr/libexec/PlistBuddy -c &Set :CFBundleVersion $buildNumber& &$INFOPLIST_FILE&
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c &Print CFBundleVersion& &$INFOPLIST_FILE&)
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c &Set :CFBundleVersion $buildNumber& &$INFOPLIST_FILE&
修改项目显示名称为版本号
(适用于不同版本号装到一个机器里面,便于区分是哪个版本)
if [ &Release& != &${CONFIGURATION}& ]; then
DisplayName=$(/usr/libexec/PlistBuddy -c &Print CFBundleShortVersionString& &$INFOPLIST_FILE&)
DisplayName=&ep${DisplayName}-I&
/usr/libexec/PlistBuddy -c &Set :CFBundleDisplayName $DisplayName& &$INFOPLIST_FILE&
DisplayName=&真正的项目名称&
/usr/libexec/PlistBuddy -c &Set :CFBundleDisplayName $DisplayName& &$INFOPLIST_FILE&
三 、 build与version的区别
首先,&Version&是显示对外的版本号,(&itunesconect&和&Appstore&用户可以看到),对应O-C中获取version的值&:[[[NSBundle mainBundle]infoDictionary]valueForKey:@&CFBundleShortVersionString&]&;
该版本的版本号是三个分隔的整数组成的字符串。
第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。
第二个整数表示的修订,实现较突出的特点。
第三个整数代表维护版本例如:1.0.12或者 1.2.3等等
build&别人看不到,只有&开发者&自己才能看到,相当于&内部版本号&。
【更新版本的时候,也要高于之前的build号】&对应获取方式:&[[[NSBundle mainBundle]infoDictionary]valueForKey:@&CFBundleVersion&];&
标示(发布或者未发布)的内部版本号。
这是一个单调增加的字符串,包括一个或者多个分割的整数。
附加解释&InfoDictionary version CFBundleInfoDictionaryVersion Info.plist格式的版本信息,一般这个值不改动;
图3.苦逼程序猿
Version&:
Bundle versions string, short:&用于&iTunes&上显示的版本号,即&对外的版本&。
(最多是3个部分组成即 x.y.z)。
Bundle version:&内部项目管理的版本号,&不对外&。
所以,可以定义任意形式一般要&检查版本更新&,要用到的是&Version&,而不是用build&;
图4.快乐一刻.gif
四、参考链接
分享给小伙伴们:
本类最热新闻
48小时最热
01020304050607089101112
CopyRight &#169; 2015- , All Rights Reserved.有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用
iOS-Universal-Framework ,随着Xcode 6的发布,相信小伙伴们已经都知道了,Xcode 6支持做Framework了.
同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用Xcode
6制作,目前网上也有很多制作iOS Framework的资料,但大多都不够详细,接下来本文会详情介绍一下在Xcode 6下制作iOS
Framework.关于静态库和动态库的概念,网上资料很多,这里不做叙述,只讲解制作过程。创建iOS动态库新建工程并选择默认Target为Cocoa Touch Framework, 如图: 做编码工作,在这里我简单的写了一个Utils的类,并写了一个log方法 设置开放的头文件:Framework中有些类可能是一些私有的辅助工具,不需要使用者看到,在这里只需要把开放出去的类放到Public下, 如图 这样生成的Framework的Headers目录下也只能看到Public的头文件 编码完成之后,直接Run就能成功生成Framework文件了,选择
xCode-&Window-&Organizer-&Projects-&Your Project,
打开工程的Derived Data目录,这样就能找到生成的Framework文件了,如图
新建测试工程,使用生成的Framework将Framework文件导入到测试工程,调用Framework中的代码MyUtils *utils = [MyUtils new];
[utils log:@&didFinishLaunchingWithOptions&];运行报错(Reason: Image Not Found) 为什么会这样的?因为我们做的是动态库,在使用的时候需要额外加一个步骤,要把Framework同时添加到‘Embedded Binaries’中 注意: 在 XCode
6之前是没有这个选项的(我没发现),所以理论上XCode 5及之前的版本无法使用 Xcode 6下生成的Framework动态库。到这里,假定你整个过程都是使用的模拟器做的,那看上去会很顺利。这时候尝试将测试工程部署到真机上,问题来了ld: warning: ignoring file
/work/ios/MyFrameworkTest/MyFrameworkTest/MyFramework.framework/MyFramework,
file was built for x86_64 which is not the architecture being linked
/work/ios/MyFrameworkTest/MyFrameworkTest/MyFramework.framework/MyFrameworkUndefined symbols for architecture armv7:&_OBJC_CLASS_$_MyUtils&, referenced from:objc-class-ref in AppDelegate.old: symbol(s) not found for architecture armv7clang: error: linker command failed with exit code 1 (use -v to see invocation)为什么会这样?错误提示已经很明显了,因为我们制作动态库的时候,选的设备是模拟器,如果选真机的话,那生成的库也只能在真机上使用,那我们该怎
样制作一个通用的动态库呢?
简单的方法是分别生成模拟器和真机上运行的库,然后在合并,这个方法,在每次生成动态库的时候,过程都会很繁琐,下面我们用一个脚本来自动完成它。制作通用动态库新建Aggregate Target 添加script到新建的Target FMK_NAME=${PROJECT_NAME}INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.frameworkWRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.frameworkxcodebuild -configuration &Release& -target &${FMK_NAME}& -sdk iphoneos clean build
xcodebuild -configuration &Release& -target &${FMK_NAME}& -sdk iphonesimulator clean buildif [ -d &${INSTALL_DIR}& ]
rm -rf &${INSTALL_DIR}&fimkdir -p &${INSTALL_DIR}&cp -R &${DEVICE_DIR}/& &${INSTALL_DIR}/&lipo -create &${DEVICE_DIR}/${FMK_NAME}& &${SIMULATOR_DIR}/${FMK_NAME}& -output &${INSTALL_DIR}/${FMK_NAME}&rm -r &${WRK_DIR}&open &${INSTALL_DIR}&选中新建的Target,Run, 如果没有异常的话,会自动弹出生成的Framework文件 这样生成的动态库就能同时支持模拟器和真机了。Xcode 6下制作通用静态库上面我们也提到了,这样生成的动态库恐怕很难在Xcode 5上使用,那我们为什么非要用动态库呢,一般情况下不是用静态库就好了吗? So Easy!只需要修改一个参数即可生成静态库了。 使用静态库的话,就可以把Framework从‘Embedded Binaries’中删除了. 亲测在 Xcode 5下可用。把新生成的库导入到测试工程,试试在模拟器和真机上运行,一切OK.不巧,如果你用的真机是iPhone5 C, 那悲剧又要发成了,生成的Framework竟然不支持armv7s,不知是 Xcode
6的bug,还是因为苹果认为使用armv7s的设备太少,可以不支持了. Xcode
新建工程,默认的Architectures竟然不包含armv7s. 想要生成的库支持armv7s,把armv7s添加到Architectures中,重新生成Framework即可 判断一个Framework支持哪些架构我们该怎么验证生成的Framework支持哪些平台呢,总不能一个个测试吧?当然不用.下面的命令是加上armv7s前后生成的framework的对比Yearsdembp:Products Years$ lipo -info ./MyFramework.framework/MyFramework Architectures in the fat file: ./MyFramework.framework/MyFramework are: i386 x86_64 armv7 arm64
Yearsdembp:Products Years$ lipo -info ./MyFramework.framework/MyFramework Architectures in the fat file: ./MyFramework.framework/MyFramework are: armv7 armv7s i386 x86_64 arm64如果你喜欢这篇文章,欢迎分享给更多的朋友(点击【右上角图标 -& 分享到朋友圈】)。iOS开发 iOSDevTip?最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!
iOS开发(iOSDevTip) 
 文章为作者独立观点,不代表大不六文章网立场
iOSDevTip最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!热门文章最新文章iOSDevTip最新iOS、iPhone资讯,万名iOS开发者、swift开发、果粉聚集,参与技术讨论,整理开发技巧,分享创业经验!享受生活、热爱编程!&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 东莞服务器租用 的文章

 

随机推荐