我有一个现有的应用程序,基本上是一个购物清单应用程序,我正在尝试向其中添加一些甜美的SwiftUI。
我的问题是实时预览更新无法正常工作-不断显示“自动预览更新已暂停”警告。我点击了恢复按钮,它构建了应用程序,显示了当前视图,并立即再次显示警告。如果不使用“恢复”按钮,我将永远看不到画布中反映的代码更改。
这是在Xcode 11.1和11.2 beta 2中发生的。在SO上,我几乎找不到其他提及,而在Apple的Dev论坛上有一个线程没有答案。
所有给定答案的问题在于,如果要使预览正常工作,则需要在调试模式下检查或取消选中脚本。
这是使用环境变量的便捷替代方法。
这真的很简单
将脚本的所有内容嵌入if
语句中,以检查我们是否正在使用预览。如果我们处于预览状态,则不要运行脚本的内容,否则,请运行它。而且您不必只为发行版本牺牲脚本。
这是模板:
if [ $ENABLE_PREVIEWS == "NO" ]
then
# your code to execute here
else
echo "Skipping the script because of preview mode"
fi
在下面的完整示例中,我使用了一个完整的版本号
# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run.
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Insure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
if [ $ENABLE_PREVIEWS == "NO" ]
then
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
else
echo "Skipping Bump of version"
echo $ENABLE_PREVIEWS
fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句