iOS很常

iOS定制应用开发及Apple Business Manager

2020-12-11  本文已影响0人  _小沫

应用开发

定制应用

为某个组织设计和开发的,你应用的自定义版本

举个栗子,以下场景均属于定制应用

当你自己的应用做大做强,某些客户、组织可能希望你为他们做一个定制应用;比如中国移动让腾讯为他们定制一个带移动logo的微信App,腾讯的员工就使用定制的微信,大部分功能是和微信一样的只是logo、某些界面不一样;

要开发这样的定制应用,将原有的项目复制一份然后再将不同的地方改改,这样是极低级、极不合适的;
因为大部分代码都是一样的,为了方便开发、维护、扩展,最合适的方案是为每个定制应用创建不同的target

平常我们打包应用,其实就是打包了target对应的代码、配置;即相当于一个target就是一个App;所有target都能共用workspace里的代码,每个target的info.plist,源码引用,Build Settings...所有参数又都可以单独修改;这就很方便实现”求同存异“的定制需求;
关于project、target的关系,这里引用霜神的比喻:

Xcode Workspace就如同工厂,Xcode Project如同车间,每个车间可以独立于工厂来生产产品(project可独立于workspace存在),但是各个车间组合起来就需要工厂来组织(如果用了cocopods,就需要用workspace)。Xcode Target是一条条的流水线,一条流水线上面只生产一种产品。Build Settings是生产产品的秘方,如果是生产汽水,Build Settings就是其中各个原料的配方。Xcode Scheme是生产方案,包含了流水线生产,秘方,还包含生产完成之后的质检(test)。

创建Target

两种方式

因为每个target的info,Build Settings,Build Phases都差不多,使用第二种方式是最简单方便的;

target配置

由于每个target的info,Build Settings,Build Phases都是独立的,所有可以为每个不同的target配置不同的设置;

//
//  AppColors.swift
//  AppA
//
extension UIColor {
    static var mainColor: UIColor {
        return UIColor.blue
    }
    
    static var buttonColor: UIColor {
        return UIColor.lightGray
    }
    
    // ... other colors
}
//
//  AppColors.swift
//  AppB
//
extension UIColor {
    static var mainColor: UIColor {
        return UIColor.red
    }
    
    static var buttonColor: UIColor {
        return UIColor.yellow
    }
    
    // ... other colors
}

通过以上设置后,同一句代码就能实现不同的target显示不同的颜色和图片:

imageView.backgroundColor = .mainColor
imageView.image = UIImage(named: "logo")

区分target

当某个定制应用需要自己特有的功能,而其他应用是没有的时,同一份代码编码时就需要区分不同的target了;
区分target的一个方式是在每个target的Build Settings中设置特有的preprocessor MacrosActive Compilation Conditions(Swift);代码中就能通过预编译宏判断;

oc swift

代码:

#if APPA
    print("只有AppA才有的功能")
#endif

应用分发

应用开发、测试完,怎么分发给定制的客户呢?
目前iOS应用分发渠道不外乎:App Store、TestFlight、企业级应用、超级签名、苹果商务(Apple Business Manager 简称ABM);它们特点鲜明:

对于这种大体功能一致,只是部分界面不一样的应用肯定是提交不到App Store的,
对于买不起企业证书的公司来说,Apple Business是最适合这种定制应用分发的;

Apple Business Manager

官方文档:https://support.apple.com/zh-cn/guide/apple-business-manager/welcome/web

从19年10月起,在中国大陆也开始支持通过ABM分发应用,特别适合发布企业内部应用、定制应用

申请ABM账号

官网:https://business.apple.com/#enrollment

申请者身份必须是组织,不接受独立个人身份申请。
申请者需要具有:邓白氏编码、AppleID、和公司相关的网站域名、和网站域名相同后缀的邮箱;
账号申请和使用均免费

创建管理式 AppleID

苹果商务应用上架

苹果商务应用批量购买

关于ABM,
iOS应用发布方式盘点+苹果商务详解这篇文章有详细教程;

商务应用批量购买后可以下载一个excel文件,该文件包括了申请的所有(最多25000个)兑换码,兑换码链接类似如下(前面都是固定的,就是code不一样):
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/freeProductCodeWizard?code=4F3CFEN69R897R
我们将这个链接发给客户,客户使用Safari打开会自动跳转至iTunes Store兑换应用并安装:

当客户很多时,不可能这样一个一个发送链接,其实可以自己搭建一个类似蒲公英的分发平台:平台根据不同的兑换码的链接生成二维码交由客户扫码兑换、安装;

关于兑换码:一个兑换码只能使用一次(不和设备、账号绑定),所以当客户卸载应用后,再使用同一个兑换码也是兑换不了的;但只要是兑换过应用,是可以通过App Store的已购项目进行重新下载更新

参考:
https://www.jianshu.com/p/83b6e781eb51
https://www.jianshu.com/p/c8361a83a338

上一篇 下一篇

猜你喜欢

热点阅读