为了建立一个持续集成系统,Hudson,我写了一个bash脚本来自动构建Xcode项目.此外,在调试配置,有人问我,要插入项目的SVN版本号在PROJECT-Info.plist文件的CFBundleRevision领域为$ {} BUNDLE_VERSION .R $ {} SVN_REVISION.
您可以在下面找到PROJECT-Info.plist文件的源代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
[...]
<key>CFBundleVersion</key>
<string>1.0</string>
[...]
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我在下面尝试了这个bash脚本:
sed 'N;s_^.*<key>CFBundleVersion</key>.*<string>[0-9][0-9]*\.[0-9][0-9]*</string>$_<key>CFBundleVersion</key>\
<string>'"$BUNDLE_VERSION"'\.r'"$SVN_REVISION"'</string>_' $PROJECT-Info.plist
Run Code Online (Sandbox Code Playgroud)
此脚本应使用$ {BUNDLE_VERSION} .r $ {SVN_REVISION}替换"1.0"字符串(当前仅在标准输出中).但是,替换工作没有'N'选项,包括sed进程中的下一行和一次一行.但<string>[...]</string>PROJECT-Info.plist文件中有很多带" "字符串的行...
我认为这是我处理两行之间未知字符的方式(对于任何字符,'N'选项和".*")是错误的.
任何的想法 ?
提前致谢,抱歉我的英语水平不好.
我目前很难在浏览器或 YouTube 应用程序中打开 YouTube 链接。我知道Android 11 中新的包可见性并以这种方式实现。
MyClass.java$myMethod
String ytLink = "https://www.youtube.com/watch?v=Hp_Eg8NMfT0"
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(ytLink));
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml
<manifest>
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
</manifest>
Run Code Online (Sandbox Code Playgroud)
然而,intent.resolveActivity返回null...我尝试过的每个其他链接都返回一个ComponentName,以便Intent可以启动...您有任何线索吗?
提前致谢 ;)
我正在尝试为我的集合中的每个文档计算数组的每个值的平均聚合操作.
Document structure
{
myVar: myValue,
[...]
myCoordinates: [
myLng,
myLat
]
}
Run Code Online (Sandbox Code Playgroud)
因此,我试图通过查询集合来计算整个文档集合的myCoordinates数组的myLng和myLat值的平均值,如下所示:
myColl.aggregate([{
$group: {
_id: 0,
lngAvg: { $avg: "$myCoordinates.0" },
latAvg: { $avg: "$myCoordinates.1" }
}
}])
Run Code Online (Sandbox Code Playgroud)
但不幸的是,它不起作用,并为lngAvg和latAvg字段返回值0 .
你有什么想法吗?这至少可行吗?