我如何从 Xcode 将一个 iPhone 应用程序部署到一个真正的 iPhone 设备上?

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

271059 次浏览

你必须破解你的设备。

如果您讨论的是使用官方 SDK 构建的应用程序并直接从 xcode 部署,那么就不能这样做。

从 Cydia 下载 ldid,然后像这样使用它:

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

不,这很简单。在 Xcode,将活动配置设置为发布。将设备从模拟器更改为设备-随便什么 SDK。如果您想直接导出到您的 iPhone,请将其连接到您的计算机。按 Build and Go。如果您的 iPhone 没有连接到您的电脑,将弹出一条消息说您的 iPhone 没有连接。

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

转到您的项目文件夹,然后转到内部的生成文件夹。进入 Release-iphoneos 文件夹,将应用程序放入其中,拖放到 iTunes 图标上。当你同步你的 iTouch 设备时,它会把它复制到你的设备上。它也将以 iPhone 应用程序的形式出现在 iTunes 中。

希望这个能帮上忙!

附言: 如果说证书无效,只需点击文件堆栈左侧的 Xcode 项目图标,然后按下 Apple + I,或者从菜单栏获取信息。点击顶部的 Build。在“代码签名”下,更改代码签名身份——任何 iPhone OS 设备都不要签名。

没有解决办法。如果应用程序已在设备中注册,则只能临时部署它们。这会阻止您构建自己的应用程序商店。.

这实际上完全取决于不同版本所使用的 Xcode 的版本,它们使用不同的方法部署到您的 iPhone 上,而不使用配置配置文件。

Xcode 3.2.1是一个很好的版本,并且很容易分类,但是我们需要知道您使用的是什么版本。

我在任何地方都没有看到任何迹象表明,您可以在没有(付费)证书的情况下将其临时部署到真正的 iPhone 上。

有一种方法可以部署 iPhone 应用程序,而无需向苹果支付费用 你必须破解你的设备,并且按照 http://www.alexwhittemore.com/?p=398中的说明操作

我混合使用了两种方法: 杰森的Alex 的。有了第二个,我们就有了能够进行调试的优势。我大部分时间只是复制以下两个方法(并简化 Alex 的方法) :

更新2012年1月: 这仍然可以在 SDK 4.2.1和 iOS 5.0上运行-我刚刚在一台新的计算机和设备上测试了它!


1. 创建自签名证书

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

  1. 启动 Keychain Access.app。在没有选择任何项目的情况下,从 Keychain 菜单中选择“证书助理”,然后创建一个证书。

    • 姓名: < strong > iPhone 开发者
    • 证书类型: < strong > 代码签名
    • 让我覆盖默认值: < strong > Yes
  2. 单击“继续”

    • 有效期: 3650天
  3. 单击“继续”

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

  5. 继续,直到完成

    您应该看到 “这个根证书不可信”。这是预期的。

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

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

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

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

我对此感到非常惊讶,因为,作为 你应该知道,我不知道所有这些黑客都是关于什么的!正如我指出的那样,我所做的只是稍微改进了一下我在其他地方发现的东西。

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

最后,如果你需要 卸载它的任何原因,检查这篇文章的结尾。在我的情况下,我不得不这样做,因为我不知道为什么所有的蓝色这整个方法停止工作,我不能再关心了,因为我们已经得到了长期等待的许可证。(该死的 DUNS 数字花了这么长时间...)

.

.


.

.

.

2. 允许 Xcode 在破解设备上构建

  1. 在破解的 iPhone 上,通过添加源代码 * * http://repo.hackyouriphone.org * * 安装应用程序 应用同步

  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. Pay attention to the iPhoneOS5.0.sdk part. If you're, for instance, using iOS 4.2 SDK, just replace it accordingly:

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
    
  4. Conclude the requirement removal through patching Xcode. This means binary editing:

    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. 打开 “项目 > 编辑项目设置”(从菜单)。单击 “建造”选项卡。 在列表中查找 “代码签名身份”及其子 “任何 iPhoneOS 设备”,并将它们都设置为条目 < em > “请勿使用密码标志”:

    alt text

    在此之后,您可以随意撤销第3步。至少在我的情况下,它进行得很顺利。

  6. 将 Xcode 设置为使用我们自定义的 自签证书自签证书(第一个 how-to)进行代码签名。如果您不想进行调试,可以跳过这一步:

    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。打开窗口 > 组织者。从左侧的列表中选择设备,然后单击“用于开发”系统会提示您登录供应网站,单击“取消”。它是为了使合法的供应更容易,但不会使非法的非供应更加困难。

    现在是 每做一个新项目,都必须完成最后一部分。转到菜单项目 > 新建阶段 > 新建运行脚本构建阶段。在窗口中,复制/粘贴以下内容:

    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
    

.

.


.

.

Uninstalling

For the 1st part:

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

昨晚我在浏览 Apple Developer 时,在供应证书中我发现了类似“签署团队成员”的东西。我认为有一种方法可以将团队成员添加到付费档案中。 您可以直接要求 AppId 所有者(付费用户)将您添加为团队成员。我不确定。还在查。

Cawas 发布的解决方案也可以很好地与 XCode4一起工作。但是,IDE 的 UI 有一些变化,所以您需要进行一些研究来找到 Run Script:)

在 Project Navigator 视图中单击项目的根项目,然后在中间窗口中选择 Target,然后单击 Build Phases 选项卡,在底部你会看到 Add Build Stage 按钮,单击并选择 Add Run Script,然后粘贴 Cawas 发布的“ codesign”Script。

Xcode 7之后的免费供应

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

下面是从 文件或多或少采取的步骤(这是相当不错的,所以请阅读) :

1. 在 Xcode 添加你的苹果 ID

转到 XCode > Preferences > Account tab > Add 按钮(+) > Add Apple ID。请参阅 那些文件以获得更多帮助。

enter image description here

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

enter image description here

3. 从“团队”弹出菜单中选择您的苹果 ID。

enter image description here

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

enter image description here

5. 单击“修复问题”按钮

enter image description here

如果您得到一个关于捆绑包名无效的错误,请将其更改为惟一的。

6. 运行你的应用程序

在 Xcode,单击 Build and run 按钮。

enter image description here

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

运行应用程序后,您将得到一个安全错误,因为您要运行的应用程序不是来自应用程序商店。

enter image description here

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

在你的设备上再次运行你的应用程序。

就是这样。你现在可以运行你自己的(或者任何其他你有源代码的应用程序)而不需要花费 $99美元。苹果公司,谢谢你终于允许了。