Tob*_*aut 5 uiviewcontroller ios swift launch-screen
脚本
我想展示使用Swift制作的iOS 9应用程序的版本.
我做了什么
我知道如何获得版本(let version: String = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String)
我的主屏幕上也有自定义标签.
我的问题
我现在的问题是,不允许在启动/启动屏幕上使用自己的UIViewController.
许多应用程序在该屏幕上显示其版本.这就是为什么我认为必须有一种方法来做到这一点.
Rep*_*ose 36
您可以在项目的"构建阶段"中创建脚本.但请确保先做几件事.
转到LaunchScreen.storyboard ViewController并创建您的版本标签.确保在Identity Inspector窗格 - >文档 - >标签中将标签命名为"APP_VERSION".
然后转到项目的构建阶段并通过单击左上角的"+"按钮创建脚本,然后从下拉菜单中选择"New Run Script Phase",然后在"Copy Bundle Resources"阶段之前拖动它.
这里是shell的最终工作脚本:/ bin/sh在XCode 9(Swift 4)中:
# ON/OFF Script Toggle (script ON with #, script OFF without #)
#exit 0
# Increment build number
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}"
# Output version & build numbers into a label on LaunchScreen.storyboard
versionNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
sed -i bak -e "/userLabel=\"APP_VERSION\"/s/text=\"[^\"]*\"/text=\"Version: $versionNumber Build: $buildNumber\"/" $PROJECT_DIR/$PROJECT_NAME/Base.lproj/LaunchScreen.storyboard
Run Code Online (Sandbox Code Playgroud)
作为奖励,我已经包含了一个内置编号增量器和ON/OFF脚本切换,以便在您构建项目时禁用增量器.如果您有任何问题或者这对您有效,请告诉我.
它不允许UIViewController在LaunchScreen中使用任何其他应用程序所做的是UILabel在LaunchScreen xib/Storyboard中放置一个并将其版本号写为文本.
可能有一些工作,它仍然不是Apple的首选或允许,不要浪费你的时间搜索如果你试图设置自定义类,你会得到以下错误:
error: Illegal Configuration: Launch screens may not set custom classnames
Run Code Online (Sandbox Code Playgroud)
注意:通常应用程序所做的是UIViewConttoller在具有相同设计的默认启动屏幕之后直接创建另一个LaunchScreen ,并且不显示动画,例如接收一些数据.
小智 5
更新了@Repose脚本
# ON/OFF Script Toggle (script ON with #, script OFF without #)
#exit 0
# Increment Build Number Bool (Increment ON with true, increment OFF with false)
shouldIncrement=true
# App vesion / Build version constants
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
# Increment build number
if [ "$shouldIncrement" = true ]; then
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi
# Output version & build numbers into a label on LaunchScreen.storyboard
sed -i bak -e "/userLabel=\"APP_VERSION\"/s/text=\"[^\"]*\"/text=\"Version: $versionNumber Build: $buildNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/Base.lproj/LaunchScreen.storyboard"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5587 次 |
| 最近记录: |