相关疑难解决方法(0)

Xcode 4 - 性能下降

我有一个问题,Xcode 4对用户交互的响应非常缓慢,例如编辑代码,滚动区域等.特别是对于具有许多控制器/视图文件等的大型项目.

我完全擦拭了硬盘,并在另一周内重新安装了Snow Leopard和Xcode,但是它再次(令人沮丧的)响应时间(过了几天)大大扰乱了工作流程.

我有时也通过Organizer - > Projects删除了项目的"派生数据",但收效甚微.

我想知道除了在第一个实例中获得更高规格的机器之外,我还能做些什么来提高性能.

仅供参考我正在使用2GHz的Intel Core 2 Duo处理器和4GB的RAM运行MacBook.

如果我们需要升级,我还想知道人们是否正在使用Xcode 4在性能良好的机器上遇到这种糟糕的性能(这会使我们的硬件升级变得毫无意义,因为只有Xcode在MacBook上有任何性能问题).

如果有人有任何建议或建议,或者甚至可以告诉我们硬件如何改进Xcode在大型项目树上的表现,那么这将非常有用,也是其他处于类似位置的开发人员的宝贵资源.

performance xcode xcode4

128
推荐指数
5
解决办法
5万
查看次数

Xcode 4无法从静态库依赖项中找到公共头文件

替代标题以帮助搜索

  • Xcode找不到标题
  • 在Xcode中缺少.h
  • 找不到Xcode .h文件
  • 未找到词法或预处理器问题文件

我正在开发一个来自Xcode 3的iOS应用程序项目.我现在已经转移到Xcode 4,我的项目构建了许多静态库.

这些静态库还声明了公共头文件,这些头文件由应用程序代码使用.在Xcode 3.x中,标题被复制(作为构建阶段)public headers directory,然后在应用程序项目中public headers directory被添加到headers search list.

在Xcode 4下,构建目录被移动到~/Library/Developer/Xcode/DerivedData/my-project.

问题是我如何在标题搜索设置中引用这个新位置?看起来:

  • public headers directory是相对于DerivedData目录,但是
  • headers search 目录是相对于其他东西(可能是项目位置)

我应该如何在Xcode 4中为iOS开发设置静态库目标,以确保在尝试编译为依赖项时,使用静态库的客户端可以使用头文件?

preprocessor header static-libraries xcode4

91
推荐指数
4
解决办法
7万
查看次数

Xcode 4存档版本未指定

我正在尝试在Xcode 4中构建我的iPhone应用程序的发布版本,当它完成并启动Organizer时,没有版本号,它只是说"未指定".这使我无法使用Xcode 4的验证和提交功能.

有想法该怎么解决这个吗?我的版本号是在我的项目设置中设置的,因此不确定导致问题的原因.

iphone xcode xcode4

43
推荐指数
3
解决办法
2万
查看次数

如何在Xcode 4中使用隐式依赖项来处理工作空间?

我想使用Xcode 4和Cocoa Touch静态库项目管理工作区中的项目,这些项目包含我可以从其他项目引用的共享代码.根据WWDC 2010视频和Xcode 4文档,Xcode 4中的工作空间有一个"隐式依赖"功能.我一直试图让它工作,我没有取得多大成功.

示例工作区:DependenciesInXcode4.zip

您可以看到最基本的示例项目有2个静态库项目,我将其命名为Library1和Library2.然后我在每个项目中都有一个类,我从名为PrimaryApp的iPhone项目中引用它.在添加import语句时,我得到了Code Sense的支持,但构建失败了.

构建失败

您可以看到构建失败的原因,因为它无法找到依赖项.

构建错误

为解决这些问题,我手动链接了Library1和Library2项目.

手动链接

我还必须将这些项目的路径添加为标题搜索路径.

手动参考标题

现在,当我构建两个依赖库,然后在iPhone模拟器中运行PrimaryApp时,它会成功构建并运行.我发现它并不总是确保在必要时构建依赖项目,这显然是一个手动过程.这不是我认为的"隐式依赖",因为Xcode视频和文档暗示它应该工作.我一直在寻找更具体的例子,但到目前为止我没有运气.即使在Stackoverflow上,我还没有看到令人满意的答案.

看起来开发人员正在回归旧技术而不是真正使用新的"隐式依赖"功能.

我非常感谢帮助理解如何在Xcode 4中使用"隐式依赖"来处理工作空间.

这是我的问题:

  • 如何在工作空间的Xcode 4中使用"隐式依赖"?
  • 为什么不能在PrimaryApp中自动找到Libary1和Library2中的代码?
  • 是否需要进行其他更改才能使依赖项在工作空间中运行?

ios4 xcode4

32
推荐指数
1
解决办法
2万
查看次数

Xcode 4&three20&create IPA archive:没有这样的文件或目录

在Xcode 3.2.5中,我使用"Build and Archive"创建一个没有任何问题的IPA文件.我怎么能在Xcode 4中做到这一点?我想我必须使用"Product - > Archive",但我在three20框架中收到了100多条错误消息.大多数是"没有这样的文件或目录".("产品 - >构建 - >构建存档"工作.没有错误.)

例如,这是第一条错误消息:

../scripts/Protect.command: line 23: cd: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[PROJECTNAME]-blabla/ArchiveIntermediates/[PROJECTNAME]/BuildProductsPath/Release-iphoneos/../three20/Three20Core: No such file or directory
Run Code Online (Sandbox Code Playgroud)

该路径"/[PROJECTNAME]/BuildProductsPath/three20/"确实不存在,但此路径存在:"/[PROJECTNAME]/three20/"

我能做什么?

iphone xcode three20 xcode4

14
推荐指数
3
解决办法
2万
查看次数

为什么Xcode不能找到这个头文件?

嗨,我得到一个xcode"没有这样的文件或目录":

#import "Three20Core.h"
Run Code Online (Sandbox Code Playgroud)

我还注意到当我输入#import语句时它识别并帮助自动完成"Three20Core.h"文件,但是当我编译时我得到了错误?

这是Three20库(来自Facebook)的主库文件头.所以我的three20目录与我的app目录处于同一级别.在Xcode应用程序目标构建设置中:

  1. 标题搜索路径 - "$(BUILT_PRODUCTS_DIR)/../../../ three20"和递归,以及
  2. 用户标题搜索路径 - 与上面相同.

任何错误的建议?

iphone three20 ios xcode4

7
推荐指数
2
解决办法
3万
查看次数

当库包含在我自己的iOS自定义框架中时,无法归档

我按照本教程https://code.google.com/p/ios-static-framework/创建了自己的iOS框架,该教程使用静态库模板和聚合目标以及自定义运行脚本来创建框架.

起初它工作正常.在框架项目中包含另一个库后,在存档或构建设备时会创建错误.我认为问题在于该库的一些错误设置.但我只是不知道该尝试什么.我试过从https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ld.1.html设置一些明智的其他链接标志,但没有运气.任何人都可以帮忙;(

哪些步骤将重现该问题?

  1. 按照教程,但将聚合脚本架构从更改armv6 armv7armv7 armv7s.这是我更改的聚合目标脚本的一部分.其他一切都是一样的.

    if [[ "$SF_SDK_PLATFORM" = "iphoneos" ]]
    then
    SF_OTHER_PLATFORM=iphonesimulator
    SF_ARCHS=i386
    else
    SF_OTHER_PLATFORM=iphoneos
    SF_ARCHS="armv7 armv7s"
    fi
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将一个外部库添加到项目中,这里我使用libBlocksKit.a.

  3. 构建框架,成功.
  4. 另一个儿童项目中.包括我的构建框架.
  5. -ObjC在应用程序中添加目标>构建设置>其他链接器标志
  6. 存档并获取错误.设备构建(iPhone5)也会出错.但建立模拟器似乎工作.

错误是什么?

这个错误,基本上是"ld:warning:找不到选项的目录...... ld:lto:无法合并...符号乘法定义!".

ld: warning: directory not found for option '-L/Users/hlung/Dropbox/- Notes/stackoverflow/RealFrameworkApp/RealFrameworkApp/External/BlocksKit'
ld: lto: could not merge in /Users/hlung/Library/Developer/Xcode/DerivedData/RealFrameworkTest-evagqzwzyyolhjenkkjbvzibxppf/Build/Products/Debug-iphonesimulator/RealFrameworkTest.framework/RealFrameworkTest(NSObject+BlockObservation.o) because 'Linking globals named 'OBJC_CLASS_$_BKObserver': symbol multiply defined!', using libLTO version 'LLVM version 3.2svn, from Apple Clang 4.2 (build 425.0.28)' …
Run Code Online (Sandbox Code Playgroud)

xcode frameworks objective-c static-libraries ios

7
推荐指数
1
解决办法
1466
查看次数

包括Xcode 4中的C/C++头文件

我一直在使用Xcode 3构建的项目上没有问题的C++库,但我现在在使用Xcode 4构建的项目上遇到构建问题.

将库放入Xcode 4项目并构建正常,但是一旦#include我得到它,就会在其主头文件的第4行出现"Lexical or Preprocessor Issue"错误,更具体地说是"'string'文件未找到.

仔细检查,错误指定 'string' file not found in ~/my project's directory/include/mainheader.h

我已经尝试过这里列出的解决方案,但都没有效果.

所以它认为头文件在我的项目目录中,但它显然是一个C/C++头...我怎么能告诉Xcode寻找这些C/C++头?

c c++ header xcode4 string.h

4
推荐指数
1
解决办法
8583
查看次数

更新到 Xcode 10.2、Swift 5 后找不到“NBPhoneNumberDesc.h”文件

我正在使用 pod chronotruck/FlagPhoneNumber我刚刚更新为High Sierra/Xcode 10.1/Swift 4.2/Cocoapoods v-1.5.3to Mojave 10.14.15/Xcode 10.2.1/Swift 5/Cocoapoods v-1.7.3,但无法构建,因为在NBRegExMatcher.m文件内我收到错误

找不到“NBPhoneNumberDesc.h”文件

在此输入图像描述

升级之前一切正常,我从未遇到过任何此类错误。

Podfile.lock 里面有这个:

- FlagPhoneNumber (0.7.6):
- FlagPhoneNumber/libPhoneNumberiOS (= 0.7.6)
- FlagPhoneNumber/libPhoneNumberiOS (0.7.6)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,该 pod 中的其他几个文件也使用该#import "NBPhoneNumberDesc.h"模块,但它们都工作正常并且没有任何错误

在此输入图像描述

我尝试了这个答案,但 NBPhoneNumberDesc.h 已经在公共部分:

在此输入图像描述

我还尝试了这个答案来设置 SWIFT_OBJC_INTERFACE_HEADER_NAME 以匹配我的项目的桥接标头,但没有任何结果

在文件内NBRegExMatcher.m(发生错误的地方)我注释掉#import NBPhoneNumberDesc.h以查看会发生什么,然后 NBPhoneNumberUtil.h 得到相同的错误:

在此输入图像描述

我注意到它libPhoneNumber-iOS捆绑在FlagPhoneNumber吊舱内,它的版本是libPhoneNumberiOS (0.7.6). 然后,我手动将 pod 添加到我的项目中,看看会发生什么,但这也没有什么区别,错误仍然存​​在。我唯一注意到的是,当我手动添加 Pod 时,Podfile.lock 版本是- libPhoneNumber-iOS (0.9.15)其中,而 FlagPhoneNumber 正在使用的版本是libPhoneNumberiOS (0.7.6) …

module header-files ios cocoapods swift

4
推荐指数
1
解决办法
1589
查看次数

静态库公共标头不会复制到Build/Products文件夹

我有两个项目,每个项目构建一个静态库,以及另一个使用两个静态库的项目.

两个静态库中的一个构建正常.另一个没有,原因是它的公共头文件在自定义shell脚本运行之前没有复制到build文件夹.

以下是对所发生情况的演示:

SampleA(工作的那个)

Compile MyClass1.cpp ...
Compile MyClass2.cpp ...
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Create universal binary libSampleA.a ...
Copy SampleA.h ...in /Users/user/....
Copy MyClass1.h ...in /Users/user/....
Copy MyClass2.h ...in /Users/user/....
Run custom shell script 'Prepare Framework'
Stripping libSampleA.a 
--- Build complete
Run Code Online (Sandbox Code Playgroud)

SampleB(不起作用的那个)

Compile OtherClass1.cpp ...
Compile OtherClass2.cpp ...
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Create universal binary libSampleB.a ...
// >>>>> NO HEADER FILES ARE COPIED <<<<<<
Run custom shell script …
Run Code Online (Sandbox Code Playgroud)

xcode archiving static-libraries ios xcode5

3
推荐指数
1
解决办法
5404
查看次数