【问题标题】:How to write a Run Script in Xcode如何在 Xcode 中编写运行脚本
【发布时间】:2012-07-12 20:58:04
【问题描述】:

在我的项目中,我有适用于 iPhone 模拟器和 iPhone 设备的不同框架,例如用于模拟器的 Rest kit "libRestKit_simulator.a" 和适用于模拟器的 "libRestKit.a"设备,

我的要求是在 Xcode 中编写“运行脚本”以包含基于模拟器或设备的框架。

【问题讨论】:

    标签: xcode ios5 run-script


    【解决方案1】:

    不确定这是否是最好的解决方案,但它似乎对我有用。

    如果您在目标依赖项下添加构建脚本,则添加以下代码。这假设您有 2 个库

    1. 图书馆.a
    2. library_simulator.a

    项目将设置为使用 library.a,如果您使用的是模拟器,脚本将删除 library.a 并将其替换为 library_simulator.a。您需要将模拟器添加到您的构建方案中,以确保在构建时构建它,并且两个库都需要相同的接口。

    if [[ "${SDKROOT}" == *Simulator* ]]
    then
    
        if [[ -f "${BUILT_PRODUCTS_DIR}/library.a"]]
        then
            rm -rf "${BUILT_PRODUCTS_DIR}/library.a"
        fi
    
        mv "${BUILT_PRODUCTS_DIR}/library_simulator.a" "${BUILT_PRODUCTS_DIR}/library.a"
    fi
    

    不知道这对你有多大用处,我只是简单地测试了一下。希望对您有所帮助。

    【讨论】:

    • Rob,我尝试将您的代码更改为像这样用于“RestKit”,如果 [[ "${SDKROOT}" == Simulator ]] 那么如果 [[ -f "${BUILT_PRODUCTS_DIR}/libRestKit.a"]] 然后 rm -rf "${BUILT_PRODUCTS_DIR}/libRestKit.a" fi mv "${BUILT_PRODUCTS_DIR}/libRestKit_simulator.a" "${BUILT_PRODUCTS_DIR}/libRestKit.a" fi 但是当我在 Xcode 中构建时,我收到错误 /Users/username/Library/Developer/Xcode/DerivedData/Project-ayvqvnhvwlwekdemwkisegnnowjv/Build/Intermediates/Project.build/Debug-iphonesimulator/project.build/Script-9F52495115B3D745000D929C.sh :第 6 行:`then' 命令 /bin/sh 失败,退出代码为 2
    • 它是否告诉您是哪一行导致了错误?还要检查库的路径是否正确,因为您的项目设置可能与我的设置不同。
    • Rob,我是脚本新手,我尝试逐行执行代码,就像我第一次给出“if [[ "${SDKROOT}" == Simulator ]]" 仍然显示错误,例如“语法错误:文件命令意外结束命令 /bin/sh 失败,退出代码 2”我将“模拟器更改为”到 iPhone 模拟器也仍然出现错误,你能帮帮我吗跨度>
    • 我猜它在命令行中不起作用,因为变量是特定于 xCode 的。如果您在 Xcode 中打开日志,应该会有更具体的错误。
    • /Users/Username/Library/Developer/Xcode/DerivedData/Project-ayvqvnhvwlwekdemwkisegnnowjv/Build/Intermediates/proj.build/Debug-iphonesimulator/SkyboxMobileSimulator.build/Script-9F50C6DA15B3D7E1001860B4.sh:第5行:语法错误:文件意外结束命令 /bin/sh 失败,退出代码 2 这是我得到的确切错误
    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 2018-04-15
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多