iPhone App Minus App Store?

Dan*_*ker 198 iphone ios

如果我在我的Mac上创建一个应用程序,有没有什么办法可以让它在iPhone上运行而无需通过应用程序商店?

只要我仍然可以运行使用官方SDK创建的应用程序,iPhone是否必须越狱并不重要.由于我不会进入的原因,我不能让这个程序通过应用程序商店.

Jas*_*red 187

官方开发者计划

对于标准iPhone,您需要支付每年99美元才能成为开发者计划的成员.然后,您可以使用adhoc系统将应用程序安装到最多100台设备上.开发人员程序具有详细信息,但涉及将每个设备的UUID添加到应用程序包中.使用App Store提供的Ad Hoc Helper可以轻松检索UUID .有关此方法的更多详细信息,请参阅Craig Hockenberry 对iPhone 2.0Beta测试文章

越狱iPhone

对于越狱的iPhone,您可以使用我在iPhone OS 3.0上使用AccelerometerGraph示例应用程序亲自测试的以下方法.

创建自签名证书

首先,您需要创建自签名证书并修补iPhone SDK以允许使用此证书:

  1. 启动Keychain Access.app.如果未选择任何项目,请从"钥匙串"菜单中选择"证书助理",然后选择"创建证书".

    名称:iPhone开发人员
    证书类型:代码签名
    让我覆盖默认值:是

  2. 单击继续

    有效期:3650天

  3. 单击继续

  4. 删除电子邮件地址字段.

  5. 单击继续直到完成.

    您应该看到"此根证书不受信任".这是预料之中的.

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

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

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

通过WiFi手动部署

以下步骤需要opensshuikittools首先安装.替换jasoniphone.local为目标设备的主机名.安装SSH后,请务必在mobileroot用户之间设置自己的密码.

要在手机上手动编译和安装应用程序作为系统应用程序(绕过Apple的安装系统):

  1. 项目,设置活动SDK,设备和设置活动构建配置,发布.

  2. 正常编译项目(使用Build,而不是Build&Go).

  3. build/Release-iphoneos目录中,您将拥有一个应用程序包.使用您首选的方法将其传输到设备上的/ Applications.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. 让SpringBoard知道已经安装了新的应用程序:

    ssh mobile@jasoniphone.local uicache

    只有在添加或删除应用程序时才需要这样做.更新的应用程序只需重新启动即可.

为了在开发过程中使自己的生活更轻松,您可以设置SSH密钥身份验证,并将这些额外步骤添加为项目中的自定义构建步骤.

请注意,如果您希望以后删除该应用程序,则无法通过标准SpringBoard接口执行此操作,并且您需要使用SSH并更新SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
Run Code Online (Sandbox Code Playgroud)

  • 我不会构建 - 一旦我尝试构建,Xcode会立即给出代码签名错误... (2认同)
  • 配置文件怎么样?有没有办法在没有订阅开发者计划的情况下获得一个? (2认同)

Rob*_*und 18

是的,一旦您加入了iPhone开发者计划并支付了Apple 99美元,您就可以在多达100台iOS设备上配置您的应用程序.

  • 所以人们不能用它来完全绕过App商店. (25认同)
  • 为什么有100个安装限制? (2认同)
  • 100限制计为您在iOS Provisioning Portal上当年注册的设备数量,而不是您当前的数量.因此,如果您添加5个设备然后删除所有5个设备,则可以添加95个(而非100个)更多设备. (2认同)

ohh*_*hho 14

  • 构建您的应用
  • 上传到破解网站
  • (如果你的应用程序足够好)破解版将在几分钟后发布并准备好供所有人下载;-)


Ric*_*III 8

这篇文章的帮助下,我制作了一个脚本,它将通过应用程序Installous安装,以便快速部署:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist
Run Code Online (Sandbox Code Playgroud)

在上面引用的帖子中缺少的是iTunesMetadata.如果没有这个,Installous将无法正确安装应用程序.以下是iTunesMetadata的示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

显然,将MyApp的所有实例替换为您的应用程序名称,将MyCompany替换为您公司的名称.

基本上,这将安装在安装了Installous的任何越狱设备上.设置完成后,这可以实现非常快速的部署,因为它可以从任何地方安装,只需将其上传到您公司的网站,然后将文件直接下载到设备,然后将其复制/移动到~/Documents/Installous/Downloads.


qqb*_*enq 7

使用即将推出的Xcode 7,现在可以在没有Apple开发人员许可的情况下在您的设备上安装应用程序,因此现在可以跳过应用程序商店而不必越狱您的设备.

现在每个人都可以在Apple设备上获取他们的应用程序

Xcode 7和Swift现在让每个人都可以更轻松地构建应用程序并直接在Apple设备上运行它们.只需使用您的Apple ID登录,即可将您的想法转变为可在iPad,iPhone或Apple Watch上触摸的应用程序.下载Xcode 7 beta并立即自行试用.不需要计划会员资格.

引用自:https://developer.apple.com/xcode/

更新:

XCode 7现已发布:

免费的设备开发 现在每个人都可以免费在设备上运行和测试自己的应用程序.您可以在Mac,iPhone,iPad,iPod touch或Apple Watch上运行和调试自己的作品,无需任何费用,也无需加入任何程序.您只需在Xcode中输入免费的Apple ID即可.您甚至可以使用已用于App Store或iTunes的相同Apple ID.一旦您完善了应用程序,Apple开发人员计划可以帮助您在App Store上获取它.

有关在设备上安装和运行的详细信息,请参阅在设备上启动应用程序.