[iOS]iPad和iPhone版本xib文件相互转换

贺宜修
2023-12-01

iPhone版本APP开发完成后需要再开发iPad版本的APP,需要把iPhone版本的xib文件添加到iPad项目中去,但是Xcode中iPhone和iPad使用的xib格式不能完全互换,此时需要转换xib的文件内容。


分析iPad和iPhone的xib文件,可知两者之间的区别,直接使用source方式打开xib文件,检索替换并保存即可。

以下是iPad和iPhone的xib文件之间的区别,请注意区分xib的文件版本。


旧版本(Xcode4.2)


iPad



type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”

<string key="targetRuntimeIdentifier”>IBIPadFramework</string>


iPhone



type="com.apple.InterfaceBuilder3.CocoaTouch.XIB”

<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>


新版本

iPad



targetRuntime=“iOS.CocoaTouch.iPad"

type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”


iPhone



targetRuntime=“iOS.CocoaTouch"

type="com.apple.InterfaceBuilder3.CocoaTouch.XIB”


如果文件量太多的话,那可以使用以下shell脚本批量替换

iPhone -> iPad



find . -type f -name '*.xib' | xargs perl -pi -e \
's|\"com\.apple\.InterfaceBuilder3\.CocoaTouch\.XIB\"|\"com\.apple\.InterfaceBuilder3\.CocoaTouch\.iPad\.XIB\"|g'
find . -type f -name '*.xib' | xargs perl -pi -e \
's|IBCocoaTouchFramework|IBIPadFramework|g'
find . -type f -name '*.xib' | xargs perl -pi -e \
's|\"iOS\.CocoaTouch\"|\"iOS\.CocoaTouch\.iPad\"|g'

iPad -> iPhone



find . -type f -name '*.xib' | xargs perl -pi -e \
's|\"com\.apple\.InterfaceBuilder3\.CocoaTouch\.iPad\.XIB\"|\"com\.apple\.InterfaceBuilder3\.CocoaTouch\.XIB\"|g'
find . -type f -name '*.xib' | xargs perl -pi -e \
's|IBIPadFramework|IBCocoaTouchFramework|g'
find . -type f -name '*.xib' | xargs perl -pi -e \
's|\"iOS\.CocoaTouch\.iPad\"|\"iOS\.CocoaTouch\"|g'

命令说明:



find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
 类似资料: