使用Xcode过程中遇到的问题

前言:记录一下使用Xcode过程中遇到的问题

1.关于开发者的Team的问题,是选用自己的个人Team还是选用公司的付费的Team(本机环境:Xcode9 + iPad :iOS11.0.3

  问题:在用自己的账号的时候,最开始是发现的您的账号在每7天内只能创建10个 APP IDs,之前出现这种情况,我都是用公司的Team,现在离职了,写自己的测试app还是用自己的账号吧。图片示例:

  解决方案:那么我在Xcode->preferences->Accounts 添加另外一个账号

  衍生问题:提示如下:

  衍生问题:那么说我们怎么注册设备到某个Apple ID呢?

  思考过程:是否是像我们之前在使用加入付费账号的成员那样到Apple Developer那里添加设备

  解决过程:登录后发现没有成为付费账号的成员的网站的样子并没有发现有让我们注册设备的地方。

  解决方案:再试一次,把模拟器改成了连接的真机,然后重新command + B一下就没错了。
 
网上是这么说的:
  博客:iOS Provisioning Profile(Certificate)与Code Signing详解
  文档:Launching Your App on Devices
文档中有这么几句话:
Xcode automatically creates your development certificate and registers a connected device or your Mac. Xcode uses this information to create a provisioning profile that it installs on the device before it launches the app on a device.
简单翻译:Xcode自动创建属于你的开发证书;并且注册一个已经连接的iOS设备或者是Mac;Xcode使用这些信息创建描述文件,在设备装应用前,这个描述文件就会装载在设备上。
  这个是在Xcode7才有的新增的内容,不知道相应的WWDC的视频是哪个找到了一张图如下:图片地址

 

  衍生问题:这就完了吗?并没有。我们要注意到,上边的文档和博客都有说明,这是在Xcode7之后才能自动注册的,那么之前如果只是个人账号,又没有付费是怎么测试的呢?刚好我搜到了另外的一篇文章(注意文章是针对于Xcode 4.5.2的文章地址

注意文章中的几句话:
Usually, to test apps on a device, you need to be a registered developer which costs about $99/year. For people who want to learn IOS Application security, it is very important that they should be able to run applications on device so that they can perfom tests on them. For some people who do not want to publish any apps on the app store, it may not be worth it to pay the $99/year fees. In this article we will be looking at how we can build and install an application on a jailbroken idevice without having a registered developer account. 
 
  感想:看样子是Xcode7之前还是需要越狱之类的,才能够在个人的真机上使用没付费的账号进行app测试,不过当时应该taobao上就有了相应的卖家可以解决相关问题了
 

2.App installation failed.Could not write to the device. (本机环境:Xcode9 + iPad :iOS11.0.3

图片展示:

  解决办法:把原来安装到真机设备上的应用删除掉,重新Run

  网上说App installation failed

 

3. 当Xcode版本低但是使用的真机版本高的时候应该怎么办?(比如说Xcode8对应iOS11.0 或者是Xcode9.0对应iOS11.1这种不匹配的情况)

目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

参考网址:

部分高版本设备支持文件Use Xcode 8 with iOS 11https://stackoverflow.com/questions/44381860/use-xcode-8-with-ios-11

 

如需下载更全的高版本的设备支持文件可查看这里:

Model is running iOS 10.2 (14C92), which may not be supported by this version of Xcodehttps://stackoverflow.com/questions/41220525/model-is-running-ios-10-2-14c92-which-may-not-be-supported-by-this-version-of/41928402#41928402

 

那么他们这些支持高版本的设备支持文件是怎么得到的呢?

下边的链接可以告诉我们怎么获得到低版本的Xcode获取到高版本的设备支持文件的方法:

How to use iOS 11 Beta installed device with Xcode 8https://medium.com/swiftist/how-to-use-ios-11-beta-installed-device-with-xcode-8-c255b916aca5

 

  我的总结是这样的:

  1.下载高版本的Xcode;

  2.到高版本的Xcode的设备支持文件的目录下,复制出来支持的高版本的设备支持文件;

  3.把第2步得到的高版本的设备支持文件放到低版本的Xcode的设备支持文件的目录下。

这样就可以在低版本的Xcode上Run高版本的真机了

 

  下载不同版本的Xcode:https://developer.apple.com/download/

 

  就下载低版本的Xcode说几句:有的时候我们升级了,有可能需要退回去到低版本Xcode,就像我前一段时间遇到的一个问题,就是使用了某直播点播的SDK,后来发现使用Xcode8可以正常的播放视频,但是使用Xcode9只有声音,没有画面,当时虽然是有适配了关于iOS11的内容还是得又退回到了Xcode8;等待着所用SDK的更新,或者是选取别的方案。

  别的解决方案有多种:

  如:1.虽然是Xcode的问题和他们的SDK有不兼容,但是可能web端能够正常地使用,那么其实我们也可以把视频的播放这部分,用web来处理;如果是项目紧急的情况下,我们就可以在集成进来别的相关的SDK,在避免冲突的情况下。然后我们的新增的直播的点播的内容就可以选用新的SDK来处理,之前的可以由web端来处理

  2.存在的一个问题是,可能不同的直播的SDK之间不能播放对方的点播,那么怎么解决呢,其实直播的平台之间他们都可以相互拉取视频,都有相应的后台接口,可以进行视频的迁移。这样的话,我们就可以都统一转向另外一个稳定的平台。

4.Xcode9的打印日志的问题

2017-11-30 22:32:39.998534+0800 WWCollection[5329:6598716] refreshPreferences: HangTracerEnabled: 0

2017-11-30 22:32:39.998673+0800 WWCollection[5329:6598716] refreshPreferences: HangTracerDuration: 500

2017-11-30 22:32:39.998699+0800 WWCollection[5329:6598716] refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0

清楚地记得当时从Xcode7转向用Xcode8的时候,也是在console有一堆的打印的日志,也是这个方法设置的相同的内容。

不大好的一个去除日志的办法:https://stackoverflow.com/questions/46392382/refreshpreferences-hangtracerenabled-hangtracerduration-messages-in-ios-11-x

这里之所以说不好,是因为如果按照上边的网址说的设置了之后,会影响到NSLog就无法输出了

 

 

 

如有错误 敬请指正

如需转载 请注明出处 谢谢

 

我会不定期分享 iOS 相关技术文章

posted on 2017-11-06 12:27  ITCoderW  阅读(866)  评论(0编辑  收藏  举报

导航