iOS创建大量类似的渠道包

iOS创建大量类似的渠道包

何为渠道包

同一个项目源码,但是名字,启动图,bundleid等不一样。同样请求里面也是根据不同bundleid不同的,但是这个在服务器作处理。总体说来,渠道包仅仅是资源不一样,样式相同,源码一致的app。

如何管理

第一种,创建target,给每一个渠道包一个target

一致用到二十来个target的时候,发现这种工作量太大,并不真正合适大量渠道包。如果在target比较少的时候,用这个十分棒。教程附上:玄书

正如他博客中写道的:


优点:

  1. 直观
    一目了然, 可以看到所有已创建的Target醒目的列在Build列表中。每一个Target都有对应的Tagret配置界面可以看到每一个项目配置图标以及Info.plist对应信息。
  2. 灵活性高
    可以根据项目需要Link需要的类, 根据Target来指定链接不同的类和资源文件, 而不用一口气全部都Link进来。

缺点:

配置相当麻烦,如果希望减少包体积,许多资源文件要重复选择target。新建一些源文件可能随手没勾选options,后面又要找到源码勾选target。

多人协作开发的时候,project.pbxproj会有极大的冲突需要修改。


第二种,使用config来管理每个渠道包

经过了第一种方法的洗礼,在重构的时候我调研了config配置的形式,解决几乎所有我的所有问题,现在已经用入重构和新项目中。

config文件的简单使用教程:(pod依赖管理环境下的使用)


1.新建一个config文件,假设我在config文件中加入如下代码

#include "../../Pods/Target Support Files/Pods-shop/Pods-shop.debug.xcconfig"

DISPLAY_NAME = hello
IDENTIFIER = .hello
APP_ID = hello

LaunchImage = hello_LaunchImage
AppIcon = hello_AppIcon

//:configuration = Debug
//PROVISIONING_PROFILE = 22f0006a-d829-41a2-934f-b789b3b0e7bc

//:configuration = Release
PROVISIONING_PROFILE = 9598b567-999c-465e-b377-757bb5e63db4

从上面的字面意思可以理解:

  1. 先引入了pod的config,因为pod的config在依赖中会被用到
  2. 修改显示的名字为hello
  3. 修改bundleid为后面加.hello
  4. app_id 为hello
  5. launchimage和appicon
  6. 证书

2.引入到项目

image

3.使用

首先我们build setting里面可以看到 User-Defined的里面出现了我们定义的这些东西。

修改bundleid:在buildsetting里面PRODUCT_BUNDLE_IDENTIFIER栏目改成xxx.xxx.com${IDENTIFIER} = xxx.xxx.com.hello,其它类似

修改launchimage:bundle setting里面搜索launchimage,替换为${LaunchImage}

修改证书:自动被修改

直接运行即可


4.最后脚本打包

xcodebuild -workspace cheniu_shop.xcworkspace -sdk iphoneos -scheme scheme_your_name -xcconfig "相对目录下的某个.config" -configuration "Release Adhoc" SYMROOT='$(PWD)/build'
xcrun -sdk iphoneos PackageApplication -v "build/Release-iphoneos/scheme_your_name.app" -o "$PWD/build/release-iphoneos/your_name.ipa"

第一个build一个.app出来,第二个打包成.ipa


5.如果需要修改里面style,比如文字颜色,背景图片,可以根据appid或者自己定义的渠道号去加载一个style源文件,读取里面自己定义的参数。


总结:

渠道包在很多公司都会用到,经常被放在一些分发平台上,提供给别人测试或者进行少量分发使用。这里我介绍了有关使用config创建大量渠道包的方式,有问题可以联系我。有更好的方法也希望能提出来学习学习。

github

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,155评论 25 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,947评论 6 342
  • 本篇文章主要针对iOS应用开发中, 针对需要创建许多相似的应用App提出一种新颖的解决方案。 关于如何创建大量相似...
    Startry阅读 3,610评论 3 12
  • 首先,你得画个圆。 周围满是白色,着实单调了!让我们添点什么吧。! 外部的世界我们添上了线条。该对中间的球做点什么...
    SinNOSG阅读 1,100评论 4 11