ios签名源码_app分发_app封装源码安装测试

  概述
  
  ios签名源码是企业、教育机构或其他机构向其雇员或学生在苹果ios系统提供的功能化、可下载的应用程序。管理下的应用分配框架允许设备管理解决方案的开发者出售这些管理下的应用。该框架验证某人启动了应用程序安装,提供了状态和下载进度,并可以在下载后启动该应用程序。
  
  管理下的应用分配框架与声明管理一起工作,以提供分配给设备的管理下应用的列表。您的应用程序可以排序或过滤管理的应用程序列表,并请求从管理的应用程序发布框架中显示一个视图。
  
  源码及演示:p.appwin.top
  
  吸引和展示ios签名源码
  
  吸引
  
  这个代码片段定义了一个模型,它从一个 .ManagedAppLibrary
  

import ManagedAppDistribution
import Observation


// Define a model that obtains a list of managed apps.
@Observable final class ViewModel {
    var content: [Content] = []
    enum Content {
        case managedApp(ManagedApp), developerContent(title: String, action: () -> Void)
    }


    func getApps() async {
        do {
            for try await result in ManagedAppLibrary.currentDistributor.availableApps {
                content = try result.get().map(Content.managedApp)
            }
        } catch {
            // Handle errors here.
        }
    }
}

  展示
  
  在从模型中获取应用程序列表之后,在自定义视图中以紧凑的内容样式显示它们。
  
  iPhone手机底部的图片,显示一个带有标题、字幕和安装按钮的应用程序。
  
  这个代码片段演示了如何显示应用程序列表。

import ManagedAppDistribution
import SwiftUI


struct AppList: View {
    private var viewModel = ViewModel()
    var body: some View {
        List(viewModel.content) { content in
            switch content {
            case let .managedApp(managedApp): 
                ManagedAppView(app: managedApp)
            case let .developerContent(title, action): 
                ManagedContentView(primaryTeios签名t: title, offerState: .custom("Request"), offerAction: action) {
                    Image(name: "custom")
                }
            }
        }
        .managedContentStyle(.compact)
        .task { await viewModel.getApps() }
    }
}

  测试并提交应用程序
  
  要求并安装一个托管包,测试版,并将你的品牌应用提交给应用程序商店审批。
  
  关于管理包
  
  托管包是一个容器,包括销售力应用程序的组件,它是在市场中安装应用程序的一种机制。
  
  请求托管包
  
  在测试你的应用程序之前,请为你的安卓和iOS应用程序申请一个管理包。
  
  安装管理包
  
  为你的应用程序安装管理包。
  
  要求你的应用程序的测试版
  
  苹果提供测试程序,使你的组织能够在发布iOS应用程序之前彻底测试它们。
  
  用用户界面测试自动化模型测试你的应用程序
  
  测试对于让你的移动发布应用程序按计划运行来说是至关重要的。开发人员已经使用UTAM来加速用户界面测试,我们希望您有可用的工具来彻底测试您的应用程序。
  
  提交申请审批
  
  在测试完你的应用程序的测试版之后,下一步是将应用程序提交应用程序存储库审批。
  
  维护和更新应用程序
  
  了解维护的类型以及如何更新你的应用程序。
  
  维修类型
  
  维护有两种类型:开发人员启动的更新和组织启动的更新。
  
  注意事项 :移动出版商经常检查,以确保条款和条件是最新的商店。如果条款和条件需要接受,则移动发布者发送通知。为了避免您的应用程序在运行中出现延迟,请保持您的条款和协议是最新的。
  
  开发者启动更新
  
  有时候销售员会更新你的应用程序。以下是最常见的原因。
  
  开发人员发布了一个新版本的开发人员移动应用程序或一个新版本的移动发布者应用程序的经验云。
  
  如果苹果更改了他们的应用提交表格,销售力会更新我的销售力表格以反映变化,然后推出一个版本。
  
  有时候开发人员会把你的应用重新提交给苹果。如果销售员以任何理由更新你的应用程序,我们会提前给你发邮件,并提供大量的信息和说明。
  
  你的更新
  
  你可以更新你的应用:
  
  安装一个移动出版商提供的管理包。
  
  改变品牌。例如,如果你改变了公司的标志,或者你有了一个新的应用程序图标设计。
  
  更改分配类别及分配帐户
  
  要编辑一个已经在应用程序商店中运行的应用程序的视觉外观,你必须创建一个版本的它。
  
  管理包维护
  
  有时候更新你的应用程序需要安装一个新的托管包。
  
  以下是您可能需要升级包的两个主要原因:
  
  开发人员对托管包中包含的组件进行改进,如推通知。
  
  您更新连接的应用程序名称或连接的应用程序图标的品牌应用程序,这是管理包的一部分。查看 连接应用概述 学习更多关于连接应用的知识。
  
  无论是哪种情况,销售力量会自动创建一个新的托管包,并发送一封电子邮件通知您升级。在收到电子邮件后,在每个需要运行应用程序的授权组织中安装新的软件包--例如沙箱和生产。
  
  封装用于分发的iOS软件

  
  构建一个ZIP存档、磁盘映像或安装程序包来分发您的iOS软件。ios签名代码处理许多通用的iOS软件发布场景,比如将你的应用上传到iOS应用程序商店。使用ios签名代码或第三方开发人员工具构建的一些产品需要其他分发步骤。这些产品包括:
  
  不是应用程序的产品
  
  包含多个组件的产品,例如带有相关守护进程的应用程序

  
  你用第三方开发人员工具构建的产品
  
  如果您无法使用ios签名代码单独构建和发布您的产品,那么请选择容器格式并将您的产品封装以供分发。如果你直接分发你的产品(换句话说,通过其他渠道,而不是iOS应用程序商店),你可以签署你的分发代码,创建一个分发容器文件,然后公证容器文件。您可以考虑将此过程自动化,以便为您的应用程序的每个版本重复它。详情请参阅 为iOSos创建分配签名代码 .
  
  注意事项
  
  如果您使用第三方开发人员工具来构建您的应用程序,请查阅其文档,了解该工具的具体建议。
  
  决定容器格式
  
  开始时,决定容器的格式.iOS产品支持两个分销渠道:
  
  你可以在iOS应用商店分发应用程序。
  
  您可以使用开发人员身份签名直接分发应用程序和其他产品,在iOS应用程序商店之外。
  
  要在iOS应用程序商店中发布一个应用程序,您可以将该应用程序作为安装程序包提交。对于直接分发,您可以选择各种容器格式,最常见的是:
  
  ZIP档案馆(.zip )
  
  你不能在一个ZIP存档文件上签名,所以你的代码签名没有覆盖的任何文件或文件夹都可能被攻击者篡改。接收您的ZIP档案的人打开它的搜索器,以解除档案的内容,他们选择移动到他们的首选位置。
  
  磁盘影像(.dmg )
  
  您可以在磁盘映像上签名,这将保护您在签名后所有文件和文件夹不受修改。接收你的磁盘映像的人打开它的搜索器访问它的内容,他们可以选择运行你的应用程序从磁盘映像或移动到他们的首选位置。如果您的产品是单个文件或包,那么这种体验是最简单的。
  
  安装装置包(.pkg )
  
  您需要签署一个安装程序包,它保护您所包含的所有文件和文件夹在您签署后不受修改。接收您的安装程序包的人打开它的搜索器启动安装程序应用程序,该程序指导他们通过安装您的产品所需的步骤。如果您的产品包含多个组件,必须将其复制到特定位置,或者在安装期间需要运行自定义代码,那么安装程序包是最好的选择。
  
  你可以把这些容器藏起来。例如,您可能希望在磁盘映像的安装程序包中发送一个应用程序。对于巢容器,工作从最低级别的容器到最高级别的容器,遵循每个步骤中每个容器的指令。
  
  签署您的代码,并签名每个嵌套容器支持签名。例如,如果您将应用程序放在磁盘映像上的安装程序包中,请在应用程序上签名,创建安装程序包,在该软件包上签名,创建磁盘映像,然后在磁盘映像上签名。有关签署分发代码的更多信息,请参阅 为iOS创建分配签名代码。
  
  建立一个存档
  
  如果您选择在ZIP文件中发布您的产品,请创建该档案的命令行工具:
  
  创建一个目录,存储你想发布的所有内容。
  
  运行ditto 工具如下:

  % ditto -c -k --keepParent <PathToDirectory> <PathToZip>

  在这个例子中, 是您在第1步中创建的目录的路径,以及 是在哪里 应该创建压缩存档。你不能在ZIP档案上签名,但你可以在它们的内容上签名。<PathToDirectory><PathToZip>ditto
  
  构建一个安装程序包
  
  如果您选择在安装程序包中分发您的产品,从确定安装程序签名标识开始。选择你的分销渠道的正确身份:
  
  如果你在iOS应用程序商店分发一个应用,使用iOS安装程序分发签名身份。它的名字是 ,在哪里 识别你的团队。
  
  如果您是独立分发产品,请使用开发人员ID安装者签名标识。它的名字是 ,在哪里 识别你的团队。
  
  有关如何建立这些安装者签名身份的信息,请参阅 开发商帐户帮助 .
  
  运行以下命令,以确认您的安装者签名身份是否存在并正确:

 % security find-identity -v
  
  6210ECCC616B6A72F238DE6FDDFDA1A06DEFF9FB "3rd Party iOS Developer Installer: …"
  
  C32E0E68CE92936D5532E21BAAD8CFF4A6D9BAA1 "Developer ID Installer: …"
  
  2 valid identities found

  仅对有效身份进行辩论过滤。如果你需要的安装者签名身份没有列出,请参阅 开发商帐户帮助 .
  
  你们不要用-p codesigning 选择过滤代码签名身份。安装者签名身份与代码签名身份不同,所以-p codesigning 选项过滤安装者签名身份。
  
  如果你的产品只有一个应用,请使用productbuild 工具为它创建一个简单的安装程序包。以下是最简单的productbuild ,足以把你的应用提交给电脑应用商店:

 % productbuild --sign <Identity> --component <PathToApp> /Applications <PathToPackage>

  对此命令进行下列替换:
  
  <Identity>
  
  你的安装人签名身份。
  
  <PathToApp>
  
  你的应用程序的路径。
  
  <PathToPackage>
  
  在这条路上productbuild 创建安装程序包。
  
  如果你有一个更复杂的产品,你需要一个更复杂的安装程序包。有关如何使用安装程序包的更多细节,请参阅手册页面productbuild ,productsign ,pkgbuild ,以及pkgutil .关于如何阅读手动页面的说明,请参阅 阅读UNIios签名手册页面 .
  
  构建磁盘映像文件
  
  如果你选择将你的产品分发到磁盘图像文件(.dmg ),遵循以下步骤:
  
  创建一个目录,作为磁盘映像卷的根目录的源。
  
  用想要分发的项目填充该目录。如果您正在创建一个脚本来自动化这个过程,请使用ditto 与其说cp 因为ditto 准备好了。
  
  使用hdiutil 创建磁盘图像文件的命令如下:

  % hdiutil create -srcFolder <ProductDirectory> -o <DiskImageFile>

  在这个命令中, 是在第1步中创建的目录 是一条路 创建磁盘映像文件.<ProductDirectory><DiskImageFile>hdiutil
  
  决定此磁盘映像的代码签名标识符。如果您正在签署绑定代码,则使用您的代码的绑定ID作为前缀和唯一的字符串构建代码签名标识符。否则,按以下步骤构造前缀,在每个代码项上签名。 为iOSos创建分配签名代码 .使用唯一的代码签名标识符,它与其他产品上的标识符不同,包括代码调用标识符。
  
  使用codesign 签署磁盘图像的命令如下:

 % codesign -s <CodeSigningIdentity> --timestamp -i <Identifier> <DiskImageFile>

  在这个命令中, 你的开发者身份证应用程序的代码签名身份(例如, ), 您在第4步中选择的代码签名标识符,以及 是通往第3步中创建的磁盘映像的路径。使用代码签名身份,而不是安装者签名身份。<CodeSigningIdentity>Developer ID Application: <TeamID><Identifier><DiskImageFile>
  
  有关密码签名身份的更多信息,请参阅 为iOSos创建分配签名代码 .
  
  您可以使用第三方工具来配置磁盘映像用于分发。例如,该工具可能会安排图标,设置背景图像,并在应用程序文件夹中添加一个符号链接。如果使用第三方工具,请确保生成的磁盘映像:
  
  与您的开发者身份证应用程序代码签名身份
  
  是一个Udif格式只读ZIP压缩磁盘图像(类型UDZO )
  
  把你的应用提交到iOS应用商店
  
  如果你正在为iOS应用程序商店创建一个应用程序,请使用altool 命令行工具或传送程序。详情请参阅 应用商店连接帮助和参考和上传工具 .
  
  测试您的应用程序
  
  对于您直接分发的产品,请测试在您创建的安装程序包、磁盘映像或ZIP文件中使用该产品时是否正确。如果可能的话,在与开发软件不同的iOS上进行测试,这样开发数据就不会影响测试结果。考虑这些情况:
  
  升级发行版,在iOS上,用户已经使用了您产品的旧版本(考虑新版本替换旧版本的情况,新版本的位置与旧版本不同)
  
  在一个已经在不同位置包含相同版本产品的iOS上的复制分发
  
  使用你的应用程序的人与安装应用程序的人在iOS上注册到一个不同的帐户
  
  对于您以ZIP文件或磁盘图像文件的形式分发的产品,请考虑以下其他方案:
  
  这个人打开你的应用程序而不把它移到另一个地方。在这种情况下,当这个人第一次打开你的应用程序时,看门人将其路径随机化。 以及其他的空气污染指数。这个措施阻止了你的应用程序使用相对路径访问它的包外的资源(因此没有被它的代码签名封住),因为攻击者可以控制这些资源来改变你的应用程序的行为。这个人把你的应用程序移到另一个地方,然后启动它。在这种情况下,看门人不会转移应用程序的路径。

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值