IOS开发OC&iOS

iOS 动态framework资源替换(可用于自动打包)

2015-12-28  本文已影响1186人  6a948902fef0

用于iOS8以上的appStore、越狱包的动态资源替换自动打包。可以免去重复性的源文件编译打包过程。

dynamic 动态库项目
dynamic.framework 动态库
demo demo项目

dynamic的Build Settings:
1.Dynamic Library Install Name Base: @rpath
2.Dynamic Library Install Name:
$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)
会显示为:@rpath/dynamic.framework/dynamic
作用为编译生成的动态库文件中,会保存对应的install name信息。
3.Link With Standard LibrariesYes;该项可以让dynamic无需引入基础官方库,但是需要在dynamic项目中引入其他动态库
4.Mach-O Type: Dynamic Library
** demo的Build Settings:**
1.Run Path search paths:@executable_path/Frameworks
编译完成后,会将path参数的信息保存到demo的目标文件的RPATH中, 程序运行的时候,会在RPATH指定的路径下,查找动态库的install name,并加载对应binary。
2.将dynamic.framework加入到demo->General->Embedded Binaries,编译后会将dynamic.framework作为资源添加到@executable_path/Frameworks中。

1.dynamic.framework :Payload/demo.app/Frameworks/
2.GYSDK配置文件SDKData:Payload/demo.app/
3.删除原渠道的bundle包:Payload/demo.app/
4.添加当前渠道的bundle包::Payload/demo.app/
5.替换开始图片及游戏图标
6.修改Info.plist中的相关内容为当前渠道信息:

Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称。应⽤程序名称限制在10-12个字符,如果超出,将被显示缩写名称。
Executaule dile -- CFBundleExecutable 程序安装包的名称
Bundle identidier --- CFBundleIdentidier 应用唯一标识字符串
Bundle name --- CFBundleName 产品名称
Bundle versions string, short --- CFBundleShortVersionString ⾯向用户市场的版本字符串
Bundle version --- CFBundleVersion 应⽤程序版本号,每次部署应用程序的一个新版本时, 将会增加这个编号,在app store上用的。
#shell plist操作
#添加
/usr/libexec/PlistBuddy -c 'Add :Software:Gallery:Version string "1.0"' ~/Desktop/com.sample.plist
#输出
/usr/libexec/PlistBuddy -c "Print" ~/Desktop/com.sample.plist
#修改
/usr/libexec/PlistBuddy -c 'Set :Software:Gallery:Version "1.1"' ~/Desktop/com.sample.plist
#删除
/usr/libexec/PlistBuddy -c 'Delete :Software:Gallery:Version' ~/Desktop/com.sample.plist
#合并
/usr/libexec/PlistBuddy -c "Merge ~/Desktop/Global.plist :Software:Gallery" ~/Desktop/com.sample.plist

由配置文件记录每个渠道的资源文件
打包工具读取app包中SDKData的旧渠道标识
用旧渠道标识读取配置文件获取该渠道的所有资源
删除app包中旧渠道资源
创建新渠道的app图标和启动图片
将新渠道的资源文件复制到app包中
修改app包中的Info.plist为新渠道信息

@rpath,@loader_path,@executable_path说明

上一篇下一篇

猜你喜欢

热点阅读