获取特定目标的版本号

时间:2017-10-09 23:12:02

标签: ios fastlane

我有一个包含四个目标的iOS项目,但我似乎无法获得特定目标的版本号。

通过以下测试:

  lane :beta do
    puts get_version_number(scheme: 'myApp', target: 'myApp')
  end

我得到了这个输出:

[10:04:05]: --------------------------------
[10:04:05]: --- Step: get_version_number ---
[10:04:05]: --------------------------------
[10:04:05]: Using deprecated option: '--scheme' (true)
[10:04:05]: $ cd /Users/diego/myApp/ios && agvtool what-marketing-version -terse
[10:04:05]: ▸ "myApp.xcodeproj/../myApp-tvOS/Info.plist"=1.0
[10:04:05]: ▸ "myApp.xcodeproj/../myApp-tvOSTests/Info.plist"=1.0
[10:04:05]: ▸ "myApp.xcodeproj/../myApp/Info.plist"=0.9
[10:04:05]: ▸ "myApp.xcodeproj/../myApp Tests/Info.plist"=1.0
[10:04:05]: 1.0

返回的版本号为1.0,因为我为此目标指定了schemetarget,因此我预期为0.9 - "myApp.xcodeproj/../myApp/Info.plist"=0.9

修改

我已安装此plugin,它可以对构建版本和版本号进行更精细的控制。

1 个答案:

答案 0 :(得分:-2)

以下是获取版本号的方法:

目标C:

NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

Swift< 3:

let appVersionString: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String

斯威夫特3:

let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String

如果您需要别的东西,请告诉我。