Xcode开发的常见问题与解决方案

举报
Serendipity·y 发表于 2022/02/17 00:38:27 2022/02/17
【摘要】 Xcode是最常见的开发工具,我们在用其进行开发和调试的时候,经常会遇到各种各样的问题,在这里我就将这些错误梳理一下,并附上相应的解决方案,希望能帮到有需要的人。后续,我将会一直进行更新自己在开发中遇到的...

Xcode是最常见的开发工具,我们在用其进行开发和调试的时候,经常会遇到各种各样的问题,在这里我就将这些错误梳理一下,并附上相应的解决方案,希望能帮到有需要的人。后续,我将会一直进行更新自己在开发中遇到的问题,如果大家有更好的解决方法,欢迎随时与我交流或者给我留言,希望我们能共同在IT的道路上进步与成长,不胜感激。

  • Xcode工程文件打不开,出现“cannot be opened because the project file cannot be parsed”的错误。
    问题原因:在svn上更新代码后,打开xcode工程文件,会出现 xxx..xcodeproj cannot be opened because the project file cannot be parsed。这是因为.xcodeproj工程文件冲突了,然后还是会强制更新,内部文件出现了冲突,所以解析不了文件。如下:
    .<<<<<<< .mine
    9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,
    .=======
    52FD7F3D15DCEAEF009E9322 ... in Resources */,
    .>>>>>>> .r269

    解决方案:
    1.对.xcodeproj文件右键,点击“显示包内容“;
    2.双击打开project.pbxproj 文件;
    3.找到以上类似的冲突信息(可以用commad + f 搜索);
    4.删除“<<<<<<<,======,>>>>>>”这些行;
    5.保存后退出;
    6.重新打开.xcodeproj文件即可。

  • 调试时出现了Certificate identity ‘iPhone Developer: XXXXXXXX’ appears more than once in the keychain. The codesign tool requires there only be one。
    问题原因:多次为同一台计算机生成私有证书,并且每次都生成了proversionning文件,下载并按照到同一个iOS设备上,那么再次编译程序到设备上的时候就会出现这个问题。
    解决方案:在Xcode中,选择菜单Window->Organizer,在LIBRARY下面,选择Provisioning Profiles.找到前面几次生成的Provisioning profiles.删除。在系统的keychains,即钥匙串管理程序中,在登录下面,我的证书,删除早期的私有证书,再次编译即可。

  • Xcode Cannot run using the selected device
    No provisioned IOS devices are available.Connect an IOS device or choose an IOS simulator as the destination. 如下:

    问题如下:

    问题原因:虽然提示没有认证文件,可是认证文件确实是存在的。打开另一个项目用真机调试竟然可以。最后找到了原因:调试手机的sdk版本低于了编译项目的SDK版本。
    解决方案:修改IOS Deployment Target,不要高于真机的版本。

  • 编译可执行文件时,报object file format invalid or unsuitable的错误。
    解决方案:
    打开终端
    sudo su
    查看/usr/bin目录下是否存在codesign_allocate程序,如果存在,执行改名操作。
    sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old
    将xcode目录下的codesign做一个软链接
    sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin。

  • 真机编译时报“Code Sign error: The identity doesn’t match any valid certificate/private key pair in the default keychain”。
    解决方案: 修改工程Targets的get info\build 中的code signing identity为空。

  • 在Archive项目时,出现了“Your build settings specify a provisioning profile with the UUID….. however, no such provisioning profile was found”的出错。
    解决方案:
    1.找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容);
    2.打开后找到project.pbxproj文件,用文本编辑器打开,其实就是右键,点击open就好了;
    3.打开这个文件后,按command+F,在这个文件中查找“PROVISIONING_PROFILE”,找到和这个“
    PROVISIONING_PROFILE = “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”; “PROVISIONING_PROFILE[sdk=iphoneos*]” = “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”;”类似的都删除。
    4.然后保存文件,重新打开项目。xcode会提示你重新下载安装provisioning profile文件,下载后安装上就可以。
    注意:如果上面的步骤还没有解决问题,有可能是Provisioning Profile中选择不正确,查看并选择当前工程对应的Profile然后运行。如下图:
    这里写图片描述

  • 在Xcode中,在更新了证书而再重新编译程序,真机调试会出现“Your build settings specify a provisioning profile with the UUID‘XXX’, however, no such provisioning profile was found. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.”
    解决方案(先确保证书设置没有问题):
    1.关闭项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择“显示包内容”(Show Package Contents),会新打开一个Finder。
    2.在新打开的Finder中找到project.pbxproj,并且打开,找到所有包含报错的UUID‘XXX’的行(包含UUID后面的一串数字的行,可能不包含”UUID”),整行删除。
    3.保存,重新启动项目,再编译。

  • The working copy is locked due to a previous
    使用CornerStone工具update最新SVN代码报的错,不仅无法上传,也无法更新,错误提示被锁。如图:
    这里写图片描述
    解决方案:
    1.在CornerStone找到本地代码工程--右键--点击clean即可。
    2.如果cleanup没有效果的话只好手动删除锁定文件。在终端中cd到svn项目目录下,然后执行如下命令del lock /q/s,就把锁删掉了。

  • “OBJC_CLASS_$_某文件名”, referenced from:的问题
    解决方案:
    1.首先检查改文件名下面的类(.h和.m)是否全加进去了,如果没有,手动加进去;
    2.其次,如果1还没有解决,在Build Phases里的Compile Sources 中添加报错的文件;
    3.再次,如果2没有解决的话,检查.framework文件有没有导入,静态库编译时往往需要一些库的支持,查看你是否有没有导入的库文件,同样是在Build Phases里的Link Binary With Libraries中添加。
    4.最后,如果3没有解决,可能是重复编译,你之前复制过两个地方,在这里添加过两次,删除时系统没有默认删除编译引用地址。在Build Settings里搜索Search Paths 将里面Library Search Paths 中没有用到的地址删除。

文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Forever_wj/article/details/50859426

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。