说明

在过去的一段时间中一直使用xcode5进行项目工作,同时xcode中安装了些插件,前几天更新了xcode6发现其中的插件基本废掉了,故而自己研究了下为什么xcode中的插件失效问题,现在将解决办法总结

原因

是由于使用Xcode使用的UUID在插件的DVTPlugInCompatibilityUUIDs 设置中没有导致,知道原因就好解决了,只需添加最新的XCode的UUID进DVTPlugInCompatibilityUUIDs 就应该Ok了

解决办法与操作

  1. 打开terminal 输入命令:

    1
    $ open ~/Library/Application\ Support/Developer/	Shared/Xcode/Plug-ins/
  2. 看到的插件后使用鼠标查看包内容会看到 info.plist

  3. 打开info.plist 找到DVTPlugInCompatibilityUUIDs添加对应的UUID后重启Xcode对应的插件就可以使用了

附上UUID

  • xcode6 UUID:C4A681B0-4A26-480E-93EC-1218098B9AA0

结论

使用此办法解决了我的插件不能用的问题,分享出来希望帮到遇到此问题的iOSer

前几天升级了EI Captian 系统,在进行App Store 自动登陆时,总是出现 “偏好设置 未能载入偏好设置面板 ‘iCloud’” 的问题,一直没当回事。想着Apple做系统不会出现这种问题,进行过重启,系统升级等操作之后,问题依然存在,然后就搜索了下相关问题,其他系统升级中也出现过这种问题,都是因为字体的问题引起。
其实,出现偏好设置 未能载入偏好设置面板 ‘XXX’这种都是由于字体的原因
下面说明下解决类似问题的办法。

开始解决问题

Launchpad-> 其他 -> 字体册 (或者spotlight->字体册)

然后找到出现黄色叹号的字体,进行手动修复或者自动修复,会出现副本字体关闭

将所有关闭的字体,重新启用,重复的副本字体移除,保证字体册中没有叹号,没有关闭的字体

重新打开偏好设置,点击你的问题设置面板,一切正常了。

概念

iOS开发中经常会碰到”空”的使用,这里提到的空包含NULL,nil,NSNull,Nil。在计算的逻辑世界中用逻辑的’存在’来表示现实世界中的”不存在”,这个概念来自NSHipster

NULL 空指针

C 语言中0表示”不存在”表示空,在Objective-C中 NULL表示指针环境中的0,这是Objective-C是C的一个超集而引入的,可以理解为是空值,值类型。

nil 空对象指针

Objective-C在表示”不存在”的基础上定义了nil,用来表示指向一个不存在的对象指针,对象指针,对象指针,重要的话说三遍,虽然nil也可以表示0,当做值类型使用,但是要明确意义。

NSNull 空对象

NSNull在Foundation中使用,可以理解为将NULL或者nil进行包装或封装的对象,一般在NSArray,NSSet与NSDictionary 中不能出现nil值时使用。

Nil 指向零的类指针

常在Foundation/NSObjCRuntime.h中,这个一般开发不使用,但是要了解。

表示 含义
NULL (void *)0 C指针的字面零值
nil (id)0 Objective-C对象的字面零值
NSNull [NSNull null] 表示零值的单独对象
Nil (Class)0 Objective-C类的字面零值

语义化版本号

语义化版本三个数字被定义为主要的(major),次要的(minor),和补丁(patch)版本号。例如,版本号1.2.3

  • 1是主要的(major)版本号
  • 2是次要的(minor)版本号
  • 3补丁(patch)版本号

当主要的(major)版本号数字增加时,意味着你做了一些不能兼容旧版本的更新。
当次要(minor)版本号增加时,意味着增加了新的功能,但同时兼容旧版本。
当补丁(patch)版本号增加时,意味着做了bug修复,没有增加也没有改变功能。

最高版本号(major>minor>patch)必须按照以上规则逐步增加,而较低的版本号必须从0开始。

简单例子,当前版本号1.2.3
如果做了一些不能向后兼容的改变,没有新的功能,但是修改了现有的bug,那么下一版将是2.0.0

练习理解

  1. 如果当前版本1.4.2,做了一些修复bug的改变,添加了一些向后兼容的功能,新版本应该是多少?
  2. 如果当前版本2.5.6,对当前的功能做了一些改变,新版本应该是多少?
  3. 如果当前版本2.10.22只修复了一些bug,新版本应该是多少?

如果一个版本低于1.0.0,被认为是测试版,次要版本号(minor)增加可能意味着向后兼容的改变。

Xcode使用Instrument(1)

UIAutomation

UIAutomation是随iOS4.0系统一起发布的一款旨在iPhone Device/Simulator上可执行的自动化测试框架。

使用UIAutomation准备

  1. 被测试app源代码
  2. 了解JavaScript

开始使用

  • 测试脚本的导入

    1. 使用Xcode打开被测试app工程
    2. command + i 打开Instrument
    3. 选择Automation template ->profile
    4. command + R 停止 profile
    5. 找到scripts 选择 add->import…
    6. 选择写好的测试脚本后会看到脚本list
    7. 在脚本list右边script可以看到脚本内容
    8. command + R执行脚本
    9. 可以看到脚本测试log

      附上一个显示遍历UI元素树的脚本,保存为本地的showUIAElementTree.js

      1
      DEMO_DELAY=2;
      var target = UIATarget.localTarget();
      var app = target.frontMostApp();
      
      //test functions
      
      function showCurrentViewInfo(){
      	UIALogger.logStart("show CurrentViewInfoTree");
      		try{
      			//show the target logElementTree
      			target.logElementTree();
      			UIALogger.logPass();
      		} catch(error){
      			UIALogger.logFail(error);
      		}
      	}
      
      //calling test functions
      showCurrentViewInfo();

  • 录制测试脚本
    录制测试脚本,是录制用户操作而生成的测试脚本,是没有断言操作的
    1. 打开被测试app工程
    2. command + i 打开Instrument
    3. 选择Automation template->profile
    4. command + R 停止profile
    5. 在scripts 选择add->create… 会看到一个新脚本文件 看到脚本代码的下法有3个操作按钮
    6. 点击红色录制按钮,会启动app,你在设备或是模拟器上进行操作都会生成代码,点击停止录制按钮录制完成,后command

note:

1: 在使用设备进行自动化测试有一点需要注意,在Release configuration 中选择使用Developer profile(不是Ad-Hoc Distrubution profile)。默认release 下profiling都已经完成。

2:文档

UIAutomation JavaScript API 参考文档:

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

苹果账户类型

个人帐号(Individual)

  • 费用 $99/Year
  • 单人使用
  • App Store 销售者只能显示个人ID
  • 100个iOS 设备UDID测试
  • 不需邓白氏编码(D-U-N-S)

公司团度账号(Company/Organization)

  • 费用 $99/Year
  • 账户权限管理(多人使用)
    1. Admin Legal权限:超级管理员。可以管理开发者和管理app store中的应用。
    2. Admin权限:管理员。可以管理开发者、管理测试机、管理团队证书、应用管理。
    3. Member权限:普通开发者。下载证书、使用证书。
    4. No Access权限:无权限。
  • App Store 销售者只能显示个人ID
  • 100个iOS 设备UDID测试
  • 需要邓白氏编码(D-U-N-S)
  • 企业帐号(Enterprise)

  • 费用 $299/Year
  • 账户权限管理(未知)
  • App Store不可销售,只能企业内部应用
  • 不限制iOS设备
  • 需要邓白氏编码(D-U-N-S)

教育帐号(University)

  • 费用 $0/Year
  • 苹果iOS开发者授权机构
  • App Store不可销售,只能内部应用