相关疑难解决方法(0)

具有多个目标的iOS扩展

在iOS 8中,当我们创建一个新的扩展时,我们必须决定它附加到哪个目标.扩展名将具有与目标相同的捆绑包ID前缀.

  1. 之后有什么方法可以改变目标吗?
  2. 如果我的项目包含2个(或更多)目标(例如一个用于调试/模拟器,一个用于生产/设备),那么使用扩展的最佳方法是什么?我是否需要创建另一个扩展并复制代码(为两个目标保留相同的代码非常麻烦)?

duplicates target ios ios8 ios-app-extension

36
推荐指数
6
解决办法
1万
查看次数

用于编辑PROJECT-Info.plist文件的CFBundleVersion字段的Bash脚本

为了建立一个持续集成系统,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'选项和".*")是错误的.

任何的想法 ?

提前致谢,抱歉我的英语水平不好.

bash edit info.plist

9
推荐指数
3
解决办法
4656
查看次数

标签 统计

bash ×1

duplicates ×1

edit ×1

info.plist ×1

ios ×1

ios-app-extension ×1

ios8 ×1

target ×1