标签: xcodebuild

在XCode中编译多个目标时,如何确保某些文件不会包含在一个目标中

我在stackoverflow上搜索了很长时间,使用我能想到的每个关键字来解决这个问题.我正在为iphone编程,我有一个精简和付费版本的我的应用程序.我按照此处的说明创建iPhone游戏/应用程序的精简版本以复制目标.这有效,现在我正在努力减少Lite版本.

主要问题?图片.精简版需要比付费版少几百张图片.所以,我在XCode中创建了两个组.Xcode中的一个"文件夹组" - 名为"FreeImages",另一个名为"ProImages".我希望所有FreeImages 包含在lite应用程序中,所有FreeImages ProImages都包含在付费应用程序中.我不在乎XCode认为这些组是虚拟文件夹.我将指令反转到一个点,并在XCode"PLUS_VERSION"中设置了环境标志(-D)我希望XCode基本上执行以下操作:

If (PLUS_VERSION)
{
 copy contents of FreeImages *and* ProImages where normally they go
}
else
{
copy contents of FreeImages where they normally go.
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道从哪里开始告诉XCode有条件地将组内容复制到目标中?

iphone xcode copy conditional-compilation xcodebuild

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

在类别中实现时未识别的协议方法

我有一个视图控制器类,必须实现几个协议.为了保持整洁,我习惯将每个协议的方法放在视图控制器类的一个类别中.

这次我从链接器收到警告,该类没有实现其中一个协议.这些方法在运行时工作,链接器似乎无法识别类别中的实现.

我在不同的项目中简化了类,我在同一个地方得到了同样的错误.

类标题:

#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>

@interface TopVC : UIViewController 
<
    UINavigationControllerDelegate,
    ABPeoplePickerNavigationControllerDelegate  
>
{}
@end
Run Code Online (Sandbox Code Playgroud)

TopVC.m(未显示)是自动生成的,没有任何变化.的UINavigationControllerDelegate协议方法此类别中实施:

#import <Foundation/Foundation.h>
#import "TopVC.h"

@interface TopVC (UINavigationControllerDelegate)
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;    
@end

#import "TopVC+UINavigationControllerDelegate.h"

@implementation TopVC (UINavigationControllerDelegate)
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    NSLog(@"navigationController:willShowViewController:animated:");
}

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    NSLog(@"navigationController:didShowViewController:animated:");
}
@end
Run Code Online (Sandbox Code Playgroud)

链接器不会在此类别中抱怨此方法.但是,如果我尝试以ABPeoplePickerNavigationControllerDelegate相同的方式实现协议的类别,它抱怨:

#import "TopVC.h"

@interface TopVC (ABPeoplePickerNavigationControllerDelegate)

- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker;

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person; …
Run Code Online (Sandbox Code Playgroud)

iphone protocols objective-c xcodebuild categories

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

xcodebuild代码签署错误配置配置文件,即使所有配置文件都在正确的文件夹中

我有一个构建服务器来检查我的xcode项目,但有几个问题.如果结帐发生,我需要构建应用程序,但我不提交.xcworkspace文件,因为不止一个人在项目上工作.

我在项目目录中的终端中运行以下代码:

sudo xcodebuild -configuration Debug
Run Code Online (Sandbox Code Playgroud)

它最终因错误而失败:

Code Sign error: Provisioning profile '7DXXX-XXXX-XXXX....' can't be found
Run Code Online (Sandbox Code Playgroud)

我打开了我的目录:

~/Library/MobileDevice/Provisioning\Profiles/
Run Code Online (Sandbox Code Playgroud)

配置文件肯定存在,证书是正确的,我的调试版本不编码符号.

有什么想法吗?谢谢.

xcode xcodebuild ios

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

Xcode 5 xcodebuild单元测试似乎在测试失败时返回状态成功

嗨,我正在关注测试驱动的iOS开发中的示例,并且我已经使用新的Xcode 5和XCTest编写了一些单元测试.我的测试因Xcode GUI客户端而失败,但是当我使用xcodebuild时,状态代码为0.

xcodebuild -target TemperatureConverterTests build

echo $?

返回0.

测试假设失败了.运行测试用例的命令是否正确?

unit-testing xcodebuild ios xctest

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

xcodebuild PRODUCT_NAME

我可以使用CLI xcodebuild更改我的产品名称但是当我打开我的项目时,我仍然有旧名称.我想用CLI永久地影响我的产品名称项目.

可能吗 ?或许我做错了什么:

/usr/bin/xcodebuild -configuration Debug PRODUCT_NAME="NewName"
Run Code Online (Sandbox Code Playgroud)

xcode command-line-interface xcodebuild ios

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

xcodebuild工作时xctool测试失败 - Travis CI

我正在尝试将我的项目集成到Travis CI中,并且我的构建失败并出现以下错误:

对于i386硬件架构未定义符号未定义的符号体系结构x86_64的

基本上我的项目中的每个类都没有将这些错误添加到目标成员资格下的测试目标中.我可以通过添加每个.m文件作为测试目标的成员来解决这个问题,但这并没有多大意义,而且我的

我试图通过运行以下两个命令在本地复制此问题:

xcodebuild -workspace myWorkspace.xcworkspace -scheme MyProjectTests -sdk iphonesimulator build test

xctool -workspace myWorkspace.xcworkspace -scheme MyProjectTests -sdk iphonesimulator build test
Run Code Online (Sandbox Code Playgroud)

使用xcodebuild,运行,运行,测试通过.使用xctool测试失败时Travis使用的错误与Travis使用的错误相同,因为Travis使用xctool.

如果对此问题有最佳解决方案,有没有人有任何想法?我想我错过了某个地方,但我遵循标准的Travis '入门'演练.

xcodebuild undefined-symbol travis-ci xctest xctool

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

在使用xcodebuild从命令行构建Cocoa应用程序之后如何运行它?

我正在使用像这样的Xcode项目从命令行构建Mac OS X Cocoa应用程序:

xcodebuild -scheme MyApp -configuration Debug
Run Code Online (Sandbox Code Playgroud)

一旦完成构建,我该如何运行它?

macos xcode cocoa xcodebuild

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

Xcode命令行测试执行问题

我在一个奇怪的情况下,我可以xctool运行我的测试,但我无法找出相同的命令行来获得xcodebuild和/或fastlane scan运行我的测试.我有一个只有iPad的应用程序,有一个方案和两个目标(otto和ottoTests)

使用XCTool命令行

xctool -scheme otto \
       -sdk iphonesimulator \
        CODE_SIGN_IDENTITY=""\
        CODE_SIGNING_REQUIRED=NO \
       -reporter pretty\
       -reporter junit:./test-reports/otto.xml\
        build test
Run Code Online (Sandbox Code Playgroud)

Xcodebuild - 失败

xcodebuild -sdk iphonesimulator \
           -scheme otto \
      test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
Run Code Online (Sandbox Code Playgroud)

我得到这个错误

仅构建设备不能用于运行此目标

在此输入图像描述

所以我在这里完全不知道正在运行的是xcodebuild什么xctool.

xcode unit-testing xcodebuild ios xctool

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

xcodebuild引发了libSwiftCore错误

我试图用xcode8 iOS 10为模拟器构建我的应用程序,我对此错误感到困惑.它为发布而构建,很好,然而,它很难为模拟器构建.我目前在源代码中都有Objective-c和swift文件.有没有人看过这个错误?

libswiftCore.dylib couldn't be copied

这是控制台日志:

13:42:35 Copying /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/libswiftRemoteMirror.dylib to /Users/myUser/dir/artifacts/Debug-iphonesimulator/myApp.app/libswiftRemoteMirror.dylib
13:42:35 Probing signature of /Users/myUser/dir/artifacts/Debug-iphonesimulator/myApp.app/Frameworks/libswiftCore.dylib
13:42:35   /usr/bin/codesign '-r-' '--display' '/Users/myUser/dir/artifacts/Debug-iphonesimulator/myApp.app/Frameworks/libswiftCore.dylib'
13:42:35 error: "libswiftCore.dylib" couldn't be copied to "(A Document Being Saved By xcodebuild)".
13:42:35 
13:42:36 ** BUILD FAILED **
13:42:36 
13:42:36 
13:42:36 The following build commands failed:
13:42:36     CopySwiftLibs /Users/myUser/dir/artifacts/Debug-iphonesimulator/myApp.app
13:42:36 (1 failure)
13:42:36 Build step 'Execute shell' marked build as failure
13:42:39 Archiving artifacts
13:45:06 Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

xcodebuild ios

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

使用嵌入式库进行xcode测试时,手动签名失败。可以分解吗?

我正在尝试运行Facebook的WebDriverAgent,以便在真实设备上进行测试:https : //github.com/facebook/WebDriverAgent

我们的管理员不喜欢Apple自动签名,因此我们正在尝试手动。当我放

 xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id='4xxx9' test DEVELOPMENT_TEAM=xxxx PROVISIONING_PROFILE=xxxxx
Run Code Online (Sandbox Code Playgroud)

它说

Testing failed:
WebDriverAgentLib has conflicting provisioning settings. WebDriverAgentLib is automatically signed, but provisioning profile xxxx has been manually specified. Set the provisioning profile value to "Automatic" in the build settings editor, or switch to manual signing in the project editor.
Run Code Online (Sandbox Code Playgroud)

我对所有内容(在xcode中)设置了手动签名,然后重试:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id='4xxx9' test DEVELOPMENT_TEAM=xxxx PROVISIONING_PROFILE=xxxxx

Testing failed:
WebDriverAgentLib does not support provisioning profiles. WebDriverAgentLib does not support …
Run Code Online (Sandbox Code Playgroud)

testing xcodebuild ios

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