相关疑难解决方法(0)

在IOS6 SDK上编译最新版本的admob时不断收到错误消息

我已经下载了最新版本的googles admob sdk.但是现在我在使用最新的sdk编译xcode 4.5时会遇到以下错误.

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

什么可能是错的?

xcode admob ios ios6

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

Xcode 4单元测试链接器错误

注意:"使用GHUnit"不是这个问题的可接受答案.我知道大多数人认为GHUnit比Xcode4 OCUnit更好,但这不是我所要求的.我会另外评估一下.

我有一个从头开始在Xcode4中创建的Xcode项目,在创建过程中选中了"Include unit tests"复选框.我还包括了我在之前项目中开发的一些库.它们通过"Add Files to x ..."对话框添加到项目中,并且仅添加到应用程序目标(而不是测试目标).它们在运行应用程序时工作正常,所以我认为它们设置正确.我还为这个项目编写了许多不同的类.

我的测试文件以标准方式设置,名为[AppName] Tests.h和.m.
标题代码:
#import < SenTestingKit/SenTestingKit.h >

@interface [AppName]Tests : SenTestCase {
@private
}
@end
Run Code Online (Sandbox Code Playgroud)

实施守则:
#import "[AppName]Tests.h"

@implementation [AppName]Tests

- (void)setUp
{
    [super setUp];
    // Set-up code here.
}

- (void)tearDown
{
    // Tear-down code here.
    [super tearDown];
}  
// Test methods go here
@end
Run Code Online (Sandbox Code Playgroud)

这只是基本的骨架.它在我的其他项目中工作正常,并且在此项目中,只要我不导入任何其他文件.当我从该项目导入另一个文件并使用它时,我在Xcode输出日志中看到以下错误:
The test bundle at /Users/[Me]/Library/Developer/Xcode/DerivedData/[AppName]-dwuuuwcpmdqxqmgxomoniplwhlpb/Build/Products/Debug-iphonesimulator/[AppName]Tests.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework …

linker ocunit ios xcode4

18
推荐指数
4
解决办法
8056
查看次数

OCUnit测试嵌入式框架

更新:我最终放弃并将GHUnit添加到我的项目中.我在几分钟内就开始使用GHUnit.

更新:您可以在此处下载Xcode项目:http://github.com/d11wtq/Cioccolata

我已经为我的Xcode项目添加了一个单元测试目标,但它在构建时找不到我的框架,说:

Test.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.

我的框架(主项目目标)旨在嵌入,因此具有安装路径@executable_path/../Frameworks.

我已将框架标记为测试目标的直接依赖关系,并将其添加到"Link Binary with Libraries"构建阶段.

另外,我添加了"复制文件"的第一步(在它构建了依赖项之后),它只是将框架复制到单元测试包的Frameworks目录中.

有人有这方面的经验吗?我不确定我错过了什么.

编辑| 我很确定我不应该,因为框架不可执行,但我没有设置"测试主机"和"捆绑加载器".这应该(据我的理解)一切正常,因为测试包与框架链接并将像任何其他包一样加载它.

编辑| 我想我差不多了.我阅读了以下文章,该文章规定使用@rpath而不是@executable_path.

http://www.dribin.org/dave/blog/archives/2009/11/15/rpath/

在这种情况下,它非常有意义,因为OCUnit测试包不是可执行文件,它是一个普通的旧包,所以@executable_path不兼容.所以现在我的框架将其安装目录设置为@rpath,并且Test目标将其运行时搜索路径(rpath)定义为构建目录.这节省了我不得不将框架复制到测试包中,这意味着整个生成的框架本质上更灵活,因为它可以在任何地方生活.

现在,我也意识到我应该在Test目标上设置Bundle Loader,所以现在将其设置为框架二进制文件的路径.

我可以构建测试目标,我可以从框架中#import类,没有错误.但是一旦我尝试从框架中实例化一个类,我就会收到以下错误:

/Developer/Tools/RunPlatformUnitTests.include:412: note: Started tests for architectures 'i386' /Developer/Tools/RunPlatformUnitTests.include:419: …

xcode cocoa objective-c ocunit gh-unit

5
推荐指数
1
解决办法
4601
查看次数

XCode找不到错误的.app文件

我将我的应用程序的名称从X更改为Y.它之前正在工作,但由于某种原因,它在执行新的拉动之后不再起作用.它给了我这个错误(来自YTests):

ld: file not found: <DerivedData Directory>/X.app/X
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

它正在寻找X.app而不是Y.app.我查看了构建设置,到处都是Y.app.它正在寻找测试中的错误文件.当我禁用测试时,我可以运行应用程序,但仍然会收到错误.有什么建议?

注意:我正在使用Xcode6-Beta5.

xcode ios xcode6

0
推荐指数
1
解决办法
500
查看次数

标签 统计

ios ×3

xcode ×3

ocunit ×2

admob ×1

cocoa ×1

gh-unit ×1

ios6 ×1

linker ×1

objective-c ×1

xcode4 ×1

xcode6 ×1