jhe*_*ran 12 xcode version ios
我在提交应用更新时收到Apple发来的以下电子邮件:
我们发现您最近为"项目"投放的一个或多个问题.您的投放成功,但您可能希望在下次投放时更正以下问题:
CFBundleVersion不匹配 - 扩展"Project.app/PlugIns/ProjectTodayExtension.appex"的CFBundleVersion值"1"与其包含的iOS应用程序"Project.app"的CFBundleVersion值"985"不匹配.
CFBundleShortVersionString不匹配 - 扩展名"Project.app/PlugIns/ProjectTodayExtension.appex"的CFBundleShortVersionString值"1.0"与其包含的iOS应用程序"Project.app"的CFBundleShortVersionString值"2.1.6"不匹配.
纠正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect.
有没有办法在所有目标中使用相同的CFBundleVersion和CFBundleShortVersionString来防止这种情况?
stk*_*stk 16
我的解决方案是:
对于CFBundleShortVersionString:
CFBundleVersion:您可以对CFBundleVersion执行相同的操作,但不知何故,我希望根据我的GIT repo提交计算来计算此值.我这样做了:
Run Code Online (Sandbox Code Playgroud)\#!/bin/sh INFOPLIST="${SRCROOT}/MyApp/MyApp-Info.plist" INFOPLIST_WKAPP="${SRCROOT}/MyApp-WKApp/Info.plist" INFOPLIST_WKEXT="${SRCROOT}/MyApp-WKExt/Info.plist" PLISTCMD="Set :CFBundleVersion $(git rev-list --all|wc -l)" echo -n "$INFOPLIST" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD" echo -n "$INFOPLIST_WKAPP" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD" echo -n "$INFOPLIST_WKEXT" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD"
Run Code Online (Sandbox Code Playgroud)\#!/bin/sh INFOPLIST="${SRCROOT}/MyApp/MyApp-Info.plist" INFOPLIST_WKAPP="${SRCROOT}/MyApp-WKApp/Info.plist" INFOPLIST_WKEXT="${SRCROOT}/MyApp-WKExt/Info.plist" PLISTCMD="Set :CFBundleVersion SCRIPTED" echo -n "$INFOPLIST" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD" echo -n "$INFOPLIST_WKAPP" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD" echo -n "$INFOPLIST_WKEXT" | xargs -0 /usr/libexec/PlistBuddy -c "$PLISTCMD"
Ore*_*ren 13
方案操作不在源代码控制中,因此最好将构建阶段添加到应用程序的目标中.可以使用一个简单的脚本来解决所有目标中的版本同步,该脚本可以针对您想要同步的每个目标进行修改:
将脚本重命名为"Sync Versions"并将其拖到" Compile Sources " 上方(注意:Xcode有一个错误,可能会阻止拖放工作.如果是这样,你需要手动编辑.pbxproj文件,以便构建阶段进入正确的位置
将以下脚本粘贴到shell中:
INFOPLIST_MYAPP="${SRCROOT}/MyApp/MyApp-Info.plist"
myAppVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_MYAPP")
myAppBuild=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_MYAPP")
INFOPLIST_SHAREEXT="${SRCROOT}/ShareExtension/Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $myAppVersion" "$INFOPLIST_SHAREEXT"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $myAppBuild" "$INFOPLIST_SHAREEXT"
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4747 次 |
| 最近记录: |