LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
把无版权游戏应用软件提交到iOS App Store详细教程

注:直到这些步骤进行,PhoneGap构建iOS将返回错误。

目录【隐藏]

1.准备你的应用程序

2.得到签名证书

2.1.注册一个开发者账户

2.2.在iOS Provisioning Portal建立你的信息

2.2.1.证书

2.2.2.App ID

2.2.3.设备

2.2.4.Provisioning Profiles

3.PhoneGap构建

3.1.Config.xml

3.1.1.iOS闪屏

3.2.签名密钥

3.3.做一个自组织构建

3.4.思念中的关键

4.提交你的应用

4.1.设置您的应用程序在iTunes Connect

4.1.1.合同、税收和银行

4.1.2.管理你的应用程序

4.1.3.Get Ready for Submission

4.2.Upload to the App Store

4.2.1.获取应用程序加载器

4.2.2.上传您的应用程序

准备你的应用程序

在这个技术新闻,我们将教会大家需要做些什么才能把应用程序提交到苹果的iOS App Store 。

苹果担心其商店中的应用程序按描述的方式工作,不会造成任何安全风险。他们也关心应用程序提供一些独特的功能,并按照他们的Human Interface Guidelines。The results have been good: Apps in the iOS App Store are usually pretty good, and the store is now one of the largest software resellers on the planet.

使用方法将采取appstudio APP,使用PhoneGap构建产生。IPA文件,然后提交到苹果。

你可以使用本程序的任何appstudio项目。它也将工作如果您的项目使用PhoneGap API。它不会如果你使用第三方的PhoneGap插件不支持PhoneGap构建工作:对于那些人,你将需要使用thephonegap CLI方法

开始测试您的应用程序尽可能的同时,它仍然是一个Web应用程序。它将改变容易得多,在这一阶段的修复和改进。

同时,在这个共同的原因应用程序,看看被那些拒绝的app都被qq305710439帮他们代上架成功了:https://itunes.apple.com/cn/app/%E6%9E%81%E9%80%9Fpc%E8%9B%8B%E8%9B%8B/id1279715689?mt=8&ign-mpt=uo%3D2

然后我们需要得到签名证书

为安全起见,苹果有一个强大的签约过程。这包括标识开发人员的证书,这些证书需要包含在构建过程中。苹果将这些证书作为开发者程序的一部分发布。

苹果在其网站有很好的指导政策,程序和如何获得证书。这可能是提交应用程序中最复杂、最令人困惑的部分,所以仔细注意是很好的。

大家不要气馁:数十万开发者已经通过它成功。

你将需要一个MAC来做到这一点,Xcode的安装。你可以下载Xcode从iOS开发者中心。

1。注册一个开发者账户

报名参加报名参加一个iOS开发者提交应用程序到应用程序商店。It costs $99.00 USD per year.

2。在iOS Provisioning Portal建立你的信息

使用您的Apple ID标志和进入证书,你会看到标签下的iOS。你需要有管理员权限的帐户。

这些都是重要的appstudio开发商:

证书

开发证书标识您和您的开发计算机。点击加号()按钮来添加新的证书。

选择ios开发证书。

说明将显示告诉你如何创建一个CSR文件。放手去做吧。下一个屏幕上传CSR文件-这样做,点击生成。这将需要几分钟的时间来生成文件。

您可以刷新浏览器以查看请求的状态。

一旦生成文件,苹果网站会要求你下载证书。双击它安装在你的钥匙链。

App ID

下一步,选择应用程序的ID在标识符部分。在加上单击()来添加一个新的应用程序ID。

APP ID的描述,进入你的应用程序的短名称。你会想用这一贯。

现在在应用程序服务不做任何检查。

APP ID后缀,选择Explicit App ID。

包ID应该是您的域名(反向),其次是您的应用程序名称。

https://iosapplstore.lofter.com

如果一切都是正确的,提交它。

设备

接下来,设置您将使用的设备列表。

这份名单将内置的配置文件。你的测试版本将只运行在设备上市。一个开发者账号你最多可以列出100台设备。. 他们可以是iPod、iPad或iPhone。

“它会要求你分配一个新的苹果设备”这是您将用于测试的设备。你需要在设备上输入一个描述(“开源小蛤子=“iPhone 8)“设备ID”“id”(UDID)“iTunes““插“总结为“屏幕,“数”系列(UDID标识符)“复制粘贴””设备“屏幕“数据测试

它会要求你指定一个新的苹果设备。这是您将用于测试装置。

你需要在设备上输入一个描述(开源小蛤子的“iPhone 8”)和设备ID获取设备ID(UDID)从iTunes的设备插入。

在屏幕上点击“序列号”,它将改变“标识符(UDID)”。

右键单击复制并粘贴到设备的屏幕。" style="background: transparent;">它会要求你指定一个新的苹果设备。这是您将用于测试装置。

你需要在设备上输入一个描述(开源小蛤子的“iPhone 8”)和设备ID获取设备ID(UDID)从iTunes的设备插入。

在屏幕上点击“序列号”,它将改变“标识符(UDID)”。右键单击复制并粘贴到设备的屏幕。

Provisioning Profiles

配置文件是一个文件,它告诉iTunes您的应用程序可以安装在哪些设备上

分配配置文件用于应用程序商店。使用开发配置文件测试。

要创建一个,进入配置配置文件并点击+按钮(“”)。选择iOS App Developmentfor testing. 您的应用程序ID应该在下一个屏幕上显示了点击继续。下一步,选择你的证书,然后将包括设备(有一个方便的选择所有的按钮)。最后,给档案名称类似sampleapp.development。然后创建的配置文件,你可以下载它。

PhoneGap构建

PhoneGap构建是一个Web服务,以您的项目并返回一个文件可以被上传至App Store。

使用它,你需要与他们创建自己的账户。They have both a free and a paid plan. 对一个项目建设,PhoneGap是免费的。

一旦你的账户,输入名称和密码进入偏好。

Config.xml

一个项目的性质为configxml。This is used to create the config.xml file which is passed to PhoneGap Build. 它包含着许多PhoneGap构建需要创建你的应用程序的信息。默认configxml文件工作,虽然你可能希望做一些定制。值得咨询PhoneGap's config.xml documentation看到所有的选项。

一个项目的性质为configxml。This is used to create the config.xml file which is passed to PhoneGap Build. 它包含着许多PhoneGap构建需要创建你的应用程序的信息。默认configxml文件工作,虽然你可能希望做一些定制。值得咨询PhoneGap's config.xml documentation看到所有的选项。

Here is a sample config.xml (subject to change):

<?xml version="1.0" encoding="UTF-8"?>

<widget

xmlns = "https://www.w3.org/ns/widgets"

xmlns:gap = "https://phonegap.com/ns/1.0"

id = "com.nsbasic.{id}"

versionCode = "1"

version = "{version}">

<name>{title}</name>

<deion>{deion}</deion>

<preference name="phonegap-version" value="{phoneGapVersion}" />

<!-- Icons -->

<icon src='{icon}' />

<platform name = 'android'>

<icon src='icons/android/ldpi.png' platform='android' qualifier='ldpi' />

<icon src='icons/android/mdpi.png' platform='android' qualifier='mdpi' />

<icon src='icons/android/hdpi.png' platform='android' qualifier='hdpi' />

<icon src='icons/android/xhdpi.png' platform='android' qualifier='xhdpi' />

<icon src='icons/android/xxhdpi.png' platform='android' qualifier='xxhdpi' />

</platform>

<platform name = 'ios'>

<icon src='icons/ios/icon-40.png' platform='ios' width='40' height='40' />

<icon src='icons/ios/icon-40@2x.png' platform='ios' width='80' height='80' />

<icon src='icons/ios/icon-50.png' platform='ios' width='50' height='50' />

<icon src='icons/ios/icon-50@2x.png' platform='ios' width='100' height='100' />

<icon src='icons/ios/icon-60.png' platform='ios' width='60' height='60' />

<icon src='icons/ios/icon-60@2x.png' platform='ios' width='120' height='120' />

<icon src='icons/ios/icon-60@3x.png' platform='ios' width='180' height='180' />

<icon src='icons/ios/icon-72@.png' platform='ios' width='72' height='72' />

<icon src='icons/ios/icon-72@2x.png' platform='ios' width='144' height='144' />

<icon src='icons/ios/icon-72@3x.png' platform='ios' width='216' height='216' />

<icon src='icons/ios/icon-76.png' platform='ios' width='76' height='76' />

<icon src='icons/ios/icon-76@2x.png' platform='ios' width='152' height='152' />

<icon src='icons/ios/icon-small.png' platform='ios' width='29' height='29' />

<icon src='icons/ios/icon-small@2x.png' platform='ios' width='58' height='58' />

<icon src='icons/ios/icon.png' platform='ios' width='57' height='57' />

<icon src='icons/ios/icon@2x.png' platform='ios' width='114' height='114' />

</platform>

<!-- Splash Screens -->

<preference name='SplashScreenDelay' value='2000' />

<preference name='AutoHideSplashScreen' value='true' />

<gap:splash src='{splashscreen}'/>

<gap:plugin name='cordova-plugin-splashscreen' source='npm' />

<platform name='android'>

<splash src='splash/android/res-long-land-hdpi/splash.png' qualifier='long-land-hdpi' />

<splash src='splash/android/res-long-land-ldpi/splash.png' qualifier='long-land-ldpi' />

<splash src='splash/android/res-long-land-mdpi/splash.png' qualifier='long-land-mdpi' />

<splash src='splash/android/res-long-land-xhdpi/splash.png' qualifier='long-land-xhdpi' />

<splash src='splash/android/res-long-land-xxhdpi/splash.png' qualifier='long-land-xxhdpi' />

<splash src='splash/android/res-long-land-xxxhdpi/splash.png' qualifier='long-land-xxxhdpi' />

<splash src='splash/android/res-long-port-hdpi/splash.png' qualifier='long-port-hdpi' />

<splash src='splash/android/res-long-port-ldpi/splash.png' qualifier='long-port-ldpi' />

<splash src='splash/android/res-long-port-mdpi/splash.png' qualifier='long-port-mdpi' />

<splash src='splash/android/res-long-port-xhdpi/splash.png' qualifier='long-port-xhdpi' />

<splash src='splash/android/res-long-port-xxhdpi/splash.png' qualifier='long-port-xxhdpi' />

<splash src='splash/android/res-long-port-xxxhdpi/splash.png' qualifier='long-port-xxxhdpi' />

<splash src='splash/android/res-notlong-land-hdpi/splash.png' qualifier='notlong-land-hdpi' />

<splash src='splash/android/res-notlong-land-ldpi/splash.png' qualifier='notlong-land-ldpi' />

<splash src='splash/android/res-notlong-land-mdpi/splash.png' qualifier='notlong-land-mdpi' />

<splash src='splash/android/res-notlong-land-xhdpi/splash.png' qualifier='notlong-land-xhdpi' />

<splash src='splash/android/res-notlong-land-xxhdpi/splash.png' qualifier='notlong-land-xxhdpi' />

<splash src='splash/android/res-notlong-land-xxxhdpi/splash.png' qualifier='notlong-land-xxxhdpi' />

<splash src='splash/android/res-notlong-port-hdpi/splash.png' qualifier='notlong-port-hdpi' />

<splash src='splash/android/res-notlong-port-ldpi/splash.png' qualifier='notlong-port-ldpi' />

<splash src='splash/android/res-notlong-port-mdpi/splash.png' qualifier='notlong-port-mdpi' />

<splash src='splash/android/res-notlong-port-xhdpi/splash.png' qualifier='notlong-port-xhdpi' />

<splash src='splash/android/res-notlong-port-xxhdpi/splash.png' qualifier='notlong-port-xxhdpi' />

<splash src='splash/android/res-notlong-port-xxxhdpi/splash.png' qualifier='notlong-port-xxxhdpi' />

</platform>

<platform name = 'ios'>

<splash src='splash/ios/Default.png' width='320' height='480' />

<splash src='splash/ios/Default@2x.png' width='640' height='960' />

<splash src='splash/ios/Default-568h@2x.png' width='640' height='1136' />

<splash src='splash/ios/Default-667h@2x.png' width='750' height='1334' />

<splash src='splash/ios/Default-Portrait.png' width='768' height='1024' />

<splash src='splash/ios/Default-Landscape.png' width='1024' height='768' />

<splash src='splash/ios/Default-Portrait@2x.png' width='1536' height='2048' />

<splash src='splash/ios/Default-Landscape@2x.png' width='2048' height='1536' />

<splash src='splash/ios/Default-Portrait-736h@3x.png' width='1242' height='2208' />

<splash src='splash/ios/Default-Landscape-736h@3x.png' width='2208' height='1242' />

</platform>

<preference name="permissions" value="none"/>

<!-- sample preference specifications -->

<!-- <preference name="autorotate" value="false" readonly="true"/> -->

<!-- <preference name="orientation" value="default" /> -->

<!-- <preference name="fullscreen" value="true" /> -->

<!-- Platforms: Customize as needed. -->

<gap:platforms>

<gap:platform name="android" />

<gap:platform name="ios" />

<gap:platform name="winphone" />

</gap:platforms>

<plugin name="cordova-plugin-camera" source="npm" />

<plugin name="cordova-plugin-device" source="npm" />

<plugin name="cordova-plugin-contacts" source="npm" />

<plugin name="phonegap-plugin-barcodescanner" source="npm" />

<!-- Requires AppStudio 6. -->

<plugin name="cordova-plugin-statusbar" source="npm" />

<preference name="StatusBarOverlaysWebView" value="{phoneGapStatusBarOverlay}" />

<preference name="StatusBarBackgroundColor" value="{phoneGapStatusBarColor}" />

<preference name="StatusBarStyle" value="{phoneGapStatusBarStyle}" />

<plugin name="cordova-plugin-whitelist" source="npm" />

<allow-navigation href="*" />

<access origin="*" />

</widget>

Fields which are surrounded by brackets, like {version}, are automatically filled in by AppStudio from the other information in the project.

==== iOS Icons ====

A full set of icons will include the following square images, in png or jpg format. For example,

29.png is a 29x29 png format image. The default icon file must be called icon.png and the default splash

screen file must be called splash.png.

<pre>

29.png

48.png

57.png

58.png

64.png

72.png

76.png

114.png

120.png

144.png

152.png

320.png

1024.png

Here is which ones need to be included in your build. 这就为config.xml:注意图标的组织是一个图标的文件夹。

<icon src="icons/ios/57.png" gap:platform="ios" width="57" height="57" />

<icon src="icons/ios/72.png" gap:platform="ios" width="72" height="72" />

<icon src="icons/ios/114.png" gap:platform="ios" width="114" height="114" />

<icon src="icons/ios/144.png" gap:platform="ios" width="144" height="144" />

这些文件在一个文件夹中,这样的结构:

图标 iOS 57,PNG 72,PNG PNG 144.png 114。

添加文件夹名称,图标,体现在项目属性。

如果你不提供一个图标,默认appstudio图标将显示。

iOS闪屏

看到SplashScreens有关设置你的应用程序的初始屏幕信息。

添加文件夹名,体现在项目属性。

根据苹果的应用指南,平板电脑(iPad)的应用程序不应该在一个手持隐藏状态栏(iPhone)的应用程序应该隐藏状态栏。

以上尺寸是假设你已经选择遵循这一建议。如果你选择了一条不同的道路,那么你应该增加或减少根据状态栏的大小图像的高度。

iPhone应用程序应该包括一个纵向肖像的发射图像;一个iPad应用程序应该包括一个纵向方向的发射图像和一个面向景观的发射图像。

签名密钥

正确构建的应用程序商店,PhoneGap构建需要证书和配置文件。设置登录使用PhoneGap构建你的ID,然后进入编辑设置。选择签名键选项卡。

为头衔, enter the name of your app.

为证书,选择你的文件。P12。得到。P12文件,进入你的Mac上的钥匙串访问并做以下:

在它的出口。P12文件,它会要求你提供一个密码。

记住:PhoneGap将需要密码解锁证书。

为配置文件,

选择你mobileprovision文件。

设置屏幕将在新创建的键旁边显示一个锁定图标。

点击锁,它会问你的证书密码。这个解锁会过期,所以你需要再解锁时间。

做一个自组织构建

自组织的建立只能运行在指定的设备。它是为测试而设计的,而不是用于发布的正式版app。

在AppStudio,选择“与PhoneGap构建本地应用程序”. 这会上传你的应用PhoneGap的服务器可以打包。登录到你的应用程序并选择PhoneGap构建。它应该在iOS生成的状态有一个错误的盒子。

问题是签名密钥还没有被选中。从出现的选择器中执行。

你可能会看到一个“锁”图标以及。如果是这样的话,点击它。它将要求您的证书密码和解锁一个小时。

选择“重建”,等待一两分钟。IPA

文件现在应该产生的:你可以下载它。要在你的设备上运行的ipa文件,拖到iTunes和同步。它应该安装和出现在主屏幕。如果应用程序已经安装在设备上,你将不得不删除它从之前的设备同步应用程序。

思念中的关键

由gonzomoco

如果你得到这个消息:

失踪的Info.plist关键这个程序尝试访问的隐私敏感数据没有使用说明。应用程序的Info.plist必须包含一个字符串值,解释如何使用这些数据的应用程序的用户nscontactsusagedeion关键。

在appstudio项目需要修改PhoneGap configxml config.xml:

<插件名称=“PhoneGap的插件barcodescanner源”=“新公共管理”/>

提交你的应用

设置您的应用程序在iTunes Connect

iTunes Connect在App Store的管理你的应用程序。还有一些需要完成它之前,一个应用程序可以提交步骤。

合同、税收和银行

有一些合同需要同意并可以提交。如果你想出售你的应用程序,你也需要提供银行信息,所以付款可以直接存入。税务文件也可能需要归档。

有些文书工作不能用电子手段来完成。如果你正在销售你的应用程序,预计要花上一个月的时间来完成所有这些工作。

除此之外,程序是直接的:遵循网站的过程。

管理你的应用程序

使用管理你的应用程序添加、查看和管理您的应用程序商店。

在添加一个应用程序,收集信息,你会需要它。一些你需要进入的领域设立只能添加一个新的应用程序时:他们以后不能更改。其他字段可以更改后,还会触发你的应用综述。有帮助的提示图标旁边的每一个领域帮助你输入。

有关设置字段的详细信息,读”添加新的应用程序“。

Bundle ID后缀应该包含您的公司名称和应用程序名称:

com.nsbasic.Project1

这需要在configxml项目属性ID字段匹配。如果项目的保存文件的名字是程序,它会看起来像这样:

id = "com.nsbasic.{id}"

Get Ready for Submission

从“版本详细信息”页面,单击“准备上载二进制”按钮。

按照屏幕上的指令。完成后,你将能够上传二进制应用程序。如果你想重新上传,你需要重复这些步骤。

Upload to the App Store

获取应用程序加载器

在你可以上传,你需要的应用程序。你只需要第一时间做这个。

登录https://iosapplstore.lofter.com/“管理应用程序”

使用“下载应用程序”在本页底部的链接下载,然后安装另外,fromhttps://itunesconnect.apple.com/apploader/applicatier_3.0.dmg下载。

上传您的应用程序

启动应用程序登录您的Apple ID。

<点击数据传输=点击发送你的应用程序。应用程序加载程序将检查与iTunes连接,看看是否有任何应用程序是“等待=”“=”“上传”,“和““显示”“A ”“列表”“选择”“数据”“数据DST ”

点击将您的应用程序。应用程序将检查与iTunes连接,以查看是否有任何应用程序是“等待上传”,并显示一个列表。选择正确的人。“样式”背景:透明;“>点击将您的应用程序。应用程序将检查与iTunes连接,以查看是否有任何应用程序是“等待上传”,并显示一个列表。选择正确的人。

在您的系统请求它时选择IPA文件。

然后应用程序对文件进行一系列的测试。如果通过,该文件将被上传到iTunes Connect。在iTunes的状态连接将变为“等待审核”。一个星期后,期待一封来自苹果或者说应用程序批准或与纠正问题的清单。确切的时间各有不同,你可以在这里查看当前等待时间:https://appreviewtimes.com

本文由作者独家发布,转载请注明来源

推荐文章
评论(4)
分享到
转载我的主页