cod*_*man 14 xcode xcodebuild ios
我的XCode项目以多种配置的方式设置,允许我为我的应用程序的不同变体使用相同的代码库,但每个都有独特的元素,如应用程序名称,版本,包标识符,图标,启动屏幕等我已经关注了这个网站,以便进行大部分设置:http: //appfoundry.be/blog/2014/07/04/Xcode-Env-Configuration/
我还有一个config.plist,其中包含与每个XCode配置相关联的各种唯一设置,这些设置只能在构建时成功复制.以下是运行脚本构建阶段的片段,以便执行此操作:
RESOURCE_PATH=${SRCROOT}/${PRODUCT_NAME}/config/${CONFIGURATION}
BUILD_APP_DIR=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
echo "Copying all files under ${RESOURCE_PATH} to ${BUILD_APP_DIR}"
cp -v "${RESOURCE_PATH}/"* "${BUILD_APP_DIR}/"
Run Code Online (Sandbox Code Playgroud)
我的下一个目标是能够在构建时复制特定配置的资产目录,以避免将所有不同配置的图像捆绑到构建中,从而导致它变得臃肿.我使用Run Script尝试了与上面相同的解决方案,更改了复制行以包含递归选项(因为资产目录本质上是一个目录):
cp -rv "${RESOURCE_PATH}/"* "${BUILD_APP_DIR}/"
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我的应用程序无法构建,并说它无法找到应用程序图标并启动图像.有任何想法吗?
Mik*_*ers 27
这是你可以做的工作:
EXCLUDED_SOURCE_FILE_NAMES用户定义设置.
通过这样做,Xcode将只编译适当的资产目录,而忽略其他目录.我已经在我们的一个项目上测试了它,它按预期工作.
祝好运!
备注:如果您正在使用CocoaPods,您可能会遇到麻烦,因为CocoaPods会添加自己的构建步骤来编译您的资产,并将您的依赖项添加到.car文件中.有关此问题的讨论,请参阅https://github.com/CocoaPods/CocoaPods/issues/1546.TL; DR:确保此步骤不在构建阶段执行,或者编辑它们执行的CocoaPods脚本以不进行资产构建.
更新时间:2009年1月19日:使用最新的稳定Xcode(10.1)和Cocoapods(v1.5.3),它们可以通过上述解决方案开箱即用.无需更改Cocoapods脚本或构建步骤,只需按照说明进行设置即可EXCLUDED_SOURCE_FILE_NAMES.
| 归档时间: |
|
| 查看次数: |
4384 次 |
| 最近记录: |