当您指定工作空间和方案时,我对xcodebuild命令行工具会发生什么感到困惑.
我理解配置的方案如何在XCode IDE GUI中工作.构建操作列出了要构建的目标以及每个操作(分析,测试,运行,配置文件,存档),您可以选择要执行构建操作的目标.
因此,如果我在构建操作中选择了每个操作(分析,测试,运行,配置文件,存档),那么当我执行以下命令时会发生什么.
xcodebuild clean install -workspace MyWorkspace.xcworkspace -scheme MyScheme
-configuration AdHoc SYMROOT=PATH DSTROOT=PATH...
Run Code Online (Sandbox Code Playgroud)
它在主xcodeproj中搜索MyScheme.xcscheme,它在XCode中编辑方案时指定了所有这些配置.
xcodebuild从这个文件中读取了什么?它是否仅使用AdHoc配置构建配置的目标并忽略其他所有内容?
前言:我确实看过类似的问题,但没有一个答案能解决我的问题.
我正在尝试使用以下方法构建我的xcode(版本5.1.1)项目:
xcodebuild clean build -sdk iphonesimulator7.0 -arch "armv7s" ONLY_ACTIVE_ARCH=NO,
当我运行这个时,我得到:No architectures to compile for (ARCHS=armv7s, VALID_ARCHS=i386 x86_64)作为一个错误.我尝试使用所有VALID_ARCHS(rm64 armv7 armv7s)作为输入的上述命令.所以我尝试运行此命令:
xcodebuild clean build -sdk iphonesimulator7.0 -arch "i386" ONLY_ACTIVE_ARCH=NO
然后我得到No architectures to compile for (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)一个错误.我尝试用所有其他VALID_ARCHS(i386 x86_64)运行上面的命令,也没有运气.我不知道为什么会出现这些架构错误.我的项目中有cocoapods,上面链接中的第一个答案并没有解决我的问题.
这是我的测试设置:2台计算机(MacPro 8核心,Mac mini 2核心),相同的MacOSX版本(10.6.5 10H574,i386),相同的Apple clang版本2.0,相同的Xcode版本(版本3.2.5)
它根本不会开始.当我清理mac mini上的所有目标并开始分布式构建时,mac pro上没有看到任何活动.在Xcode首选项 - >分布式构建中,它们彼此看到.没有涉及防火墙或类似.网络是千兆以太网...我甚至尝试使用相同的用户运行,并且在32位模式下,就像许多人所说的那样.
有谁知道如何让它工作?
假设我在Linux机器上有一个Xcode项目,我想,就像我可以在Mac上做的那样,安装和使用xcodebuild来简单地编译项目,而不是运行它或任何花哨的东西,只是简单地编译它来检查错误.
是否可以xcodebuild在Linux机器上安装,或者它是完全不可能的,如果有的话,我的替代方案是什么?
在OS X 10.8.2上安装Xcode CLT 4.5.1之后,我在安装需要编译的本机ruby gem时遇到问题.
输出错误与运行xcrun -find相同:
xcode-select:错误:未选择Xcode.使用xcode-select -switch,或
查看xcode-select手册页(man xcode-select)以获取更多信息.
哪个CLT位置应该xcode-select指向,因为它不再是/ Developer?
编辑:我没有安装Xcode应用程序,只有CLT.
我的库有一些类型转换器.我正在注册一些OSX和iOS类型转换器,如下所示:
当我为iOS编译时,我遇到了一些与无法找到UIKit相关的错误.这是我为iOS编译的方式:
xcodebuild -destination OS=${module.sdk.version},name=iPhone -workspace ${workspace} -scheme '${library.ios.scheme}'
Run Code Online (Sandbox Code Playgroud)
$ {}令牌由我的构建系统修补.
建设时我得到:
__build.library.ios.simulator:
[exec] Details: Failed to register "/System/Library/CoreServices/CoreTypes.bundle/Contents/Library/MobileDevices.bundle" with Launch Services, error code: -10811.
[exec] Function: __RegisterUTIsIfNeeded_block_invoke
[exec] Thread: <NSThread: 0x7faca140e5c0>{name = (null), num = 1}
[exec] Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我有以下目标:.app使用xcodebuild和构建和运行应用程序ios-sim.
我正在使用以下脚本来构建应用程序.
xcrun xcodebuild \
-scheme $XCODE_SCHEME \
-project $XCODE_PROJECT \
-configuration Debug \
-destination generic/platform=iOS \
-derivedDataPath \
build
Run Code Online (Sandbox Code Playgroud)
然后运行它,我正在使用
ios-sim launch MyApp.app/ --devicetypeid "iPhone-6-Plus, 9.1"
Run Code Online (Sandbox Code Playgroud)
每次收到以下消息:
服务指定的程序不包含所请求的体系结构之一:
发生了什么,该应用程序没有运行?
注意:如果我ios-sim...针对.app从Xcode构建的第二个命令()(派生数据中包含的那个),该过程可以正常工作.
我有一个企业分布式应用程序,它使用xcodebuild构建在构建服务器上.去年我们进行了更改,使用"自动管理签名"功能和"-allowProvisioningUpdates"标志.使用此技术可以很好地生成配置文件,但是我们使用此配置文件可以使用一年,并且会在31天后到期.
最初我的印象是使用"allowProvisioningUpdates"将导致在每个新构建上重新生成供应配置文件,但如果是这样的话,它将不会过期.我们需要使用更新的配置文件进行新的构建,以便我们的用户在几个月的时间内不会丢失应用程序.但是,生成的配置文件未显示在Apple开发人员中心的"证书,标识符和配置文件"部分中,我找不到任何方法强制Xcode或xcodebuild生成新的配置文件.我如何强制这样做以确保我们的用户没有停机时间?配置文件最终到期后会发生什么?
Podspec 是:
Pod::Spec.new do |s|
s.name = 'MyPod'
s.version = '0.1.0'
s.summary = 'my summary.'
s.platform = :ios, '13.0'
s.description = <<-DESC
My description.
DESC
s.homepage = 'https://github.com/MyAccount/MyPod'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Me' => 'my@email.com' }
s.source = { :git => 'https://github.com/MyAccount/MyPod.git', :tag => s.version.to_s }
s.swift_version = '5.0'
s.source_files = 'MyPod/Classes/**/*'
s.static_framework = true
s.dependency 'Firebase'
s.dependency 'Firebase/Core'
s.dependency 'Firebase/Auth'
s.dependency 'Firebase/Database'
s.dependency 'GoogleSignIn'
s.dependency 'GoogleAPIClientForREST/Core'
s.dependency 'GoogleAPIClientForREST/Sheets'
s.dependency 'GTMAppAuth' …Run Code Online (Sandbox Code Playgroud) 我们的目标是创建一个隐藏我们内部代码的框架,并为我们的客户提供 SDK。我们已经考虑创建满足我们要求的 XCFramework。互联网上也建议使用 Umbrella 框架,但主要建议避免这种方法。我们的框架依赖于我们通过 Pod 使用的一些第三方库。
问题:XCFramework 不编译 pods 框架。我们收到类似“未找到 Xyz(Pod) 模块”的错误消息。即使我们从客户端添加 pod,它也不起作用。
创建 XCFramework 的代码如下
1)为iOS平台创建一个存档
xcodebuild archive -workspace ABC.xcworkspace \
-scheme ABC \
-sdk iphoneos \
-archivePath "./archives/ios_devices.xcarchive" \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
SKIP_INSTALL=NO
Run Code Online (Sandbox Code Playgroud)
2) 为 iOS-Simulator 平台创建存档
xcodebuild archive -workspace ABC.xcworkspace \
-scheme ABC \
-sdk iphonesimulator \
-archivePath "./archives/ios_simulators.xcarchive" \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
SKIP_INSTALL=NO
Run Code Online (Sandbox Code Playgroud)
3) 从档案创建一个 XCFramework
xcodebuild -create-xcframework \
-framework ./archives/ios_devices.xcarchive/Products/Library/Frameworks/ABC.framework \
-framework ./archives/ios_simulators.xcarchive/Products/Library/Frameworks/ABC.framework \
-output build/ABC.xcframework
Run Code Online (Sandbox Code Playgroud)
我们成功获得了 ABC XCFramework,但 XCFramework 中不包含依赖项。有什么解决办法吗?或者有什么方法可以将框架搜索路径设置为客户端?或任何替代方法?
xcodebuild ×10
ios ×7
xcode ×7
cocoapods ×1
frameworks ×1
linux ×1
macos ×1
objective-c ×1
podspec ×1
shell ×1
xcframework ×1
xcode4 ×1
xcode5 ×1
xcode5.1 ×1