Configuring Your Xcode Project for Distribution 

You can edit your project settings anytime, but some settings are necessary during development. Others are recommended when you distribute your app for beta testing and required when you submit your app to the App Store or Mac App Store.

你可以在任何时候编辑你的项目设置。但是有一些设置在开发阶段就是需要的。

During development, your app must be provisioned and code signed to use certain app services and run on an iOS device (iPad, iPhone, or iPod touch). If you assign a bundle ID and team to your project, Xcode can create the necessary certificates, identifiers, and profiles for you in Member Center. You can enter this information now using the project editor or as needed when you add app services and launch your app.

在开发阶段,你的app必须通过认证并且签名才可以使用一些app 设备并且在这些ios设备上运行,例如(ipad,iphone,或者ipod touch)。如果你分配一个bundle id和team到你的工程中,xcode就可以为你在member center中创建必要的certificates,identifiers和profiles。

Before you distribute your app for testing or to the store, provide all the required information about your app. For example, set app icons to pass iTunes Connect validation tests.

Before you upload your app to the store, verify your build settings and set the copyright key for Mac apps.

在上传你的app到store前,验证你的build设置并且为mac apps设置copyright。

Setting Properties When Creating Your Xcode Project

For iOS apps, a dialog similar to this appears when you create an Xcode project from a template:

The product name is the name of your app as it will appear to customers in the store and should be similar to the app name you enter later in iTunes Connect. Most importantly, a customer should instantly associate the app name and icon in the App Store with the product name and app icon that installs on their devices. The product name is also the name that will appear in Springboard when the app is installed. The product name can’t be longer than 255 bytes and can be no fewer than 2 characters. (Read Best Practices in iTunes Connect Developer Guide for guidelines on choosing an app name.)

product name即使你的app name。会出现在store中应当同之后你在itunes connect中输入的app name类似。更重要的是,客户应当立即将在app store中的app name和icon和在设备上安装的product name和icon联系起来。product name不能超过255字节长度而且不能少于两个字符长度。

The organization name is an attribute of the Xcode project and is used in boilerplate text throughout your project folder. For example, the organization name is used in the source and header file copyright strings. The organization name in your Xcode project isn’t the same as the company name that you enter later in iTunes Connect.

organization name是xcode工程的一个属性并且用于贯穿项目folder的样本文件text。例如,organization name用于source和header文件中的copyright字符串。organization name和你之后在itunes connect中输入的company name不同。

The product name and company identifier you enter are concatenated to create the default bundle ID using reverse domain name service (reverse DNS) notation. The bundle ID needs to be unique to your app, so it’s important to set the company identifier to a unique string as well.

bundle id需要是唯一的。product name和company identifier串联起来就是默认的bundle id。所有company identifer是唯一的也很重要。例如:

orgnization identifier是com.xxx,product name是hellow world,那么默认的bundle id就是com.xxx.hellow world. 一般的orgnization identifer就是你公司的域名颠倒过来写。

For iOS apps, you can choose the types of devices you support from the Devices pop-up menu. For Mac apps, you can choose the Mac App Store categories from a pop-up menu.

The other values used by the Xcode template are sufficient for building and running your app locally, but later you’ll need to finalize properties, such as the bundle ID. Also, the assistant doesn’t set all required properties for the store. You complete the basic store configuration before you submit. Ideally, you’ll complete this configuration before you distribute your app for testing too.

After your app is released, you can’t change some of this metadata, so it’s important to choose your settings carefully. To learn which app states cause some properties to be locked in iTunes Connect, refer to iTunes Connect App Properties in iTunes Connect Developer Guide .

当你的app发布以后,你就不能更改其中的一些metadata了,所以慎重选择你的设置非常重要。

Before You Begin Configuring Your Project

Configuring Identity and Team Settings

For Xcode to create the team provisioning profile, the app’s bundle ID needs to be unique and the project assigned to a team. Later, you provide other information that identifies this version of your app. The identity settings appear in the Identity section of the target’s General pane. For iOS apps, the Identity section appears as shown here:

xcode创建team provisioning profile,app的bundle id需要是唯一的并且project要分配给一个team。而后,你提供其他的信息来标示你app的版本。

About Bundle IDs

A bundle ID precisely identifies a single app. A bundle ID is used during the development process to provision devices and by the operating system when the app is distributed to customers. For example, Game Center and In-App Purchase use a bundle ID to identify your app when using these app services. The preferences system uses this string to identify the app for which a given preference applies. Similarly, Launch Services uses the bundle ID to locate an app capable of opening a particular file, using the first app it finds with the given identifier. The bundle ID is also used to validate an app’s signature.

The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric characters (A-Z,a-z,0-9), hyphen (-), and period (.). The string should be in reverse-DNS format. For example, if your company’s domain is Acme.com and you create an app named Hello, you could assign the string com.Acme.Hello as your app’s bundle ID.

一个bundle ID精确的标示一个app。当开发中执行到provison设备或者当发布给客户时候都需要bundle id。例如,当使用game center和in-app purchase服务是使用bundle id来标示你的app。系统偏好使用这个bundle id来标示app。类似的,launch services使用bundle id来定位app打开特殊的文件。bundle id也用来验证app的签名。

bundle id字符串必须只能办好阿拉伯数字和字符(A-Z,a-z,0-9), hyphen (-), and period (.)。字符串应当是点到的dns格式。例如你的公司的域名是Acme.com并且你创建了一个app叫做hello。那么你就可以拿com.Acme来作为你的app的bundle id了。

During the development process, you use an app’s bundle ID in many different places to identify the app.

在开发过程中,你可以在许多不同的地方来使用app的bundle id来标示app。

Specifically, the bundle ID is located and used as follows:

In the Xcode project, the bundle ID is stored in the information property list file (Info.plist). This file is later copied into your app’s bundle when you build the project.

In Member Center, you create an App ID that matches the app’s bundle ID. If the App ID is an explicit App ID, it exactly matches the bundle ID. However, unlike domain names, bundle IDs are case sensitive. If the App ID is lowercase, your bundle ID needs to be lowercase, too.

In iCloud, the container IDs you specify in your Xcode project are based on the bundle IDs of one or more apps.

In iTunes Connect, you enter the bundle ID to identify your app. After your first version is available on the store, you can’t change your bundle ID or delete the associated explicit App ID.

在xcode工程中,bundle id存储在property list文件(Info.plist)中。这个文件之后当你build项目时会copy到你app的bundle中去。

在member center,你创建一个匹配你app bundle id的app id。如果app id时一个显示的app id,他会完全匹配bundle id。尽管如此但是,不想domain命名,bundle ids是大小写敏感的。如果app id是小写的,你的bundle id也需要是小写的。

在itunes connect中,你输入bundle id来标示你的app。当第一个版本在store中存在时,你就不能再更改你的bundle id或者删除和其相关联的显示的app id。

App Distribution Guide (二)的更多相关文章

  1. APP Distribution Guide 苹果官网

    https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduct ...

  2. App Distribution Guide (一)

    This guide contains everything you need to know to distribute an app through the App Store or Mac Ap ...

  3. App Distribution Guide--(三)---Configuring Your Xcode Project for Distribution

    Configuring Your Xcode Project for Distribution You can edit your project settings anytime, but some ...

  4. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

  5. 基于Html5 Plus + Vue + Mui 移动App 开发(二)

    基于Html5 Plus + Vue + Mui 移动App 开发(二) 界面效果: 本页面采用Html5 Plus + Vue + Mui 开发移动界面,本页面实现: 1.下拉刷新.上拉获取更多功能 ...

  6. 带你从零学ReactNative开发跨平台App开发(二)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  7. 关于APP上架制作二维码相关

    1.安卓版本APP上架并生成二维码问题:安卓版本上架国内市场,这个情况比较复杂一些,比如百度,网址是以上传APP生成的一个编号来进行的,每次升级更新后都发生了变化,也就相当于每次升级后网址发生改变(比 ...

  8. 安卓app和苹果app共用一个二维码

    应项目要求,现在安卓app和苹果app共用一个二维码,对外提供下载: <html> <head> <meta http-equiv="Content-Type& ...

  9. 制作IOS企业版App网页扫描二维码下载安装

    有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...

随机推荐

  1. OpenFlow-Enaling innvation in Campus Networks

    OpenFlow-Enaling innvation in Campus Networks 出现问题 背景 Networks have become part of the critical infr ...

  2. WMware给centos6.8虚拟机添加硬盘

    背景 用WMware运行系统经常遇见系统磁盘不够用的情况,通常解决这个问题有两种方式: 1) 给现有磁盘扩容: 2) 给虚拟机添加一块虚拟硬盘: 磁盘扩容我还没试验成功,这里我先把给虚拟机添加一块硬盘 ...

  3. [洛谷P1501][国家集训队]Tree II

    题目大意:给一棵树,有四种操作: $+\;u\;v\;c:$将路径$u->v$区间加$c$ $-\;u_1\;v_1\;u_2\;v_2:$将边$u_1-v_1$切断,改成边$u_2-v_2$, ...

  4. Linux命令(IT)

    ls  查看当前目录下文件 cd 指定目录 sftp zygf@xxx.xxx.xxx.xxx  进行登录zygf用户 sftp命令行登录过程: ① sftp   xxx.xxx.xxx.xxx   ...

  5. Codeforces 922.F Divisibility

    F. Divisibility time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  6. [TJOI2007] 线段 (动态规划)

    题目链接 Solution 传统的线性 \(dp\) . \(f[i][0]\),\(f[i][1]\) 分别表示最后一次在 \(i\) ,然后在 左边或者右边的最小步数. 然后就每次根据上一次左边和 ...

  7. java 复习整理(五 类加载机制与对象初始化)

    类加载机制与对象初始化   一 . 类加载机制 类加载机制是指.class文件加载到jvm并形成Class对象的机制.之后应用可对Class对象进行实例化并调用.类加载机制可在运行时动态加载外部的类, ...

  8. MySQL数据库从windows迁移到linux

    前几天搭建了lamp环境,想把之前写的小东西迁到linux上运行,涉及到把mysql数据库的文件迁移到linux上,直接用fileZilla传过去应该不行,我试了下,反正没成功.下面是我采用的方法: ...

  9. hdu 4679 树的直径

    /* 题目大意:给n个点n-1条边的树,求删除哪条边时两个树中最大的直径与边权的乘积最小. 树的直径(Diameter)是指树上的最长简单路. 直径的求法:两遍BFS (or DFS) 若删除的边不是 ...

  10. md5 加解密

    using JGDJWeb.Model; using System; using System.Collections.Generic; using System.IO; using System.L ...