我怎样才能从Xcode的iPhone应用程序部署到一个真正的iPhone设备?

如何在没有99美元的苹果证书的情况下将iPhone应用程序从Xcode部署到真正的iPhone设备?

这听起来像应用程序没有签名。 从Cydia下载ldid,然后像这样使用它: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

还要确保二进制文件被标记为可执行文件: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph

我已经使用了两个howtos的组合: Jason's和alex's 。 第二,我们有能够调试的优势。 我会主要只是复制下面(和简化亚历克斯):

2012年1月更新:这仍然适用于SDK 4.2.1和iOS 5.0.1 – 我刚刚在一台新的计算机和设备上进行了测试!


1.创建自签名证书

修补您的iPhone SDK以允许使用此证书:

  1. 启动钥匙串Access.app。 在未选择任何项目的情况下,从钥匙串菜单中选择证书助理,然后创建证书。

    • 名称: iPhone开发者
    • 证书类型: 代码签名
    • 让我重写默认值: 是的
  2. 点击继续

    • 有效期: 3650天
  3. 点击继续

  4. 电子邮件地址字段填空。

  5. 点击继续直到完成

    你应该看到“这个根证书是不可信的” 。 这是预料之中的。

  6. 设置iPhone SDK以允许使用自签名证书:

     sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist 

    如果您打开Xcode,请重新启动以使此更改生效。

如果你在iOS 5上,就是这样! 现在就试试! 它可能不允许调试,但应用程序将在那里!

我对此感到非常惊讶,因为你应该知道 ,我不知道所有这些黑客是什么意思! 正如我所指出的,我所做的只是改善了我在别处找到的一些东西。

所以是的, 整个方法不再是同样的方式,我懒得去找一个新的…除了这个,它使用了一个叫Theos的工具,但我不能经历整个过程。

最后,如果您不管出于何种原因需要卸载它 ,请检查本文的结尾。 就我而言,我不得不因为我无法弄清楚为什么所有的这个方法都停止工作了,而且由于我们已经得到了很长时间的许可证,所以我不再在意了。 (怪异的DUNS号码需要这么长时间…)


2.启用Xcode在Jailbroken设备上构建

  1. 在越狱的iPhone上,通过添加源http://cydia.hackulo.us来;安装应用AppSync

  2. 删除代码签名和授权的SDK要求(我爱sed !):

     sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist 
  3. 注意 iPhoneOS5.0.sdk部分。 例如,如果您使用的是iOS 4.2 SDK,请相应地替换它:

     sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist 
  4. 通过修补Xcode来结束要求删除。 这意味着二进制编辑:

     cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf "\xc3\x26\x00\x00" >> working /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support 

    如果你已经打开了Xcode,那么为这个改变(和最后一个)重新启动才能生效。

  5. 打开“项目>编辑项目设置” (从菜单)。 点击“Build”标签。 在列表中找到“代码签名身份”及其子“任何iPhoneOS设备” ,并将其设置为“不要代码签名”条目:

    替代文字

    之后,随意撤消第3步。至少在我的情况下,它很好。

  6. 设置Xcode以使用我们自定义的自签名证书 (第一个方法)对代码进行编码。 如果您不想调试,可能会跳过此步骤:

     mkdir /Developer/iphoneentitlements401 cd /Developer/iphoneentitlements401 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py 

    插入iPhone并打开Xcode。 打开窗口>组织者。 从左侧的列表中选择设备,然后单击“用于开发”。 系统会提示您输入配置网站登录名,单击取消。 它在那里使合法的配置更容易,但不会使非法配置更加困难。

    现在你必须为你制作的每个新项目做最后一部分 。 转到菜单Project> New Build Phase> New Run Script Build Phase。 在窗口中,复制/粘贴这个:

     export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ]; then /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" fi 


卸载

第一部分:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist 

第二部分:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support 

如果你做了第3步而不是第2步,只需简单地修改它即可:

 sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist 

剩下的,只是恢复你在XCode上做了什么,如果你想要删除/Developer/iphoneentitlements401/gen_entitlements.py

 sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py 

Xcode 7之后的免费配置

为了在真实设备上测试您的应用程序,而不是支付Apple开发者费用(或者越狱您的设备),您可以使用Xcode 7和iOS 9支持的新的免费配置。

下面是从文档中或多或少采取的步骤(这是相当不错的,所以给它一个阅读):

1.在Xcode中添加您的Apple ID

转到XCode>首选项>帐户选项卡>添加按钮(+)>添加Apple ID。 查看文档以获取更多帮助。

在这里输入图像描述

2.单击项目导航器中的常规选项卡

在这里输入图像描述

3.从团队弹出菜单中选择您的Apple ID。

在这里输入图像描述

4.连接您的设备,并在方案菜单中选择它。

在这里输入图像描述

5.单击修复问题按钮

在这里输入图像描述

如果您收到有关软件包名称无效的错误,请将其更改为唯一的。

6.运行你的应用程序

在Xcode中,单击构建并运行按钮。

在这里输入图像描述

7.在设备设置中信任应用程序开发人员

运行你的应用程序后,你会得到一个安全错误,因为你想运行的应用程序不是从App Store。

在这里输入图像描述

在你的设备上 ,进入设置>常规>配置文件> 你的苹果ID名 >信任你的苹果ID名 >信任。

8.再次在设备上运行您的应用程序。

而已。 你现在可以运行你自己的(或其他任何你有源代码的应用程序),而不必花费99美元。 谢谢,苹果,最后让这个。

你将不得不越狱您的设备。

你不能,如果你正在谈论使用官方SDK构建的应用程序,并直接从xcode部署。

有一种方法来部署iPhone应用程序,而不付钱给苹果你必须越狱你的设备,并按照http://www.alexwhittemore.com/?p=398

我在任何地方都看不到任何东西,表示您可以在没有(付费)证书的情况下临时部署到真实的iPhone。

我昨天正在通过苹果开发人员,并在提供证书中找到类似“签名团队成员”的内容。 我认为有一种方法可以将小组成员添加到付费个人资料中。 您可以要求App Id Owner(付费一个)将您添加为团队成员。 我不确定。 仍在搜索。

不,它很容易做到这一点。 在Xcode中,将主动配置设置为释放。 将设备从模拟器更改为设备 – 无论使用哪种SDK。 如果要直接导出到iPhone,请将其连接到电脑。 按建立和去。 如果你的iPhone没有连接到你的电脑,会出现一条消息,说你的iPhone没有连接。

如果这适用于您:(iPhone未连接)

转到您的项目文件夹,然后到里面的生成文件夹。 转到Release-iphoneos文件夹,把里面的应用程序拖放到iTunes图标上。 当你同步你的iTouch设备时,它会把它复制到你的设备上。 它也将在iTunes中显示为iPhone的应用程序。

希望这可以帮助!

PS:如果说证书无效,只需点击Xcode中的项目,即左侧文件堆栈中的小项目图标,然后按Apple + I,或者从菜单栏中执行Get Info。 点击顶部的Build。 在代码签名下,更改代码签名身份 – 任何iPhone操作系统设备都不会签名。

这完全取决于您使用的Xcode版本,因为不同的版本使用不同的方法在没有配置文件的情况下部署到您的iPhone。

Xcode 3.2.1是一个很好的版本,很容易理解,但我们需要知道你使用的是什么版本。

Cawas发布的解决方案也与XCode4完美结合。 但是,IDE的UI有一些变化,所以您需要进行一些研究才能找到运行脚本:)

在Project Navigator视图中,点击项目的根目录,然后在中间窗口中选择Target,然后点击Build Phases选项卡,在底部你会看到Add Build Phase按钮,点击选择Add Run Script,然后粘贴“codesign “Cawas发表的脚本。

没有解决方法。 只有在您的设备上注册了特设部署应用程序才可以。 这可以防止你建立你自己的应用商店..