iPhone App Minus App Store?

时间:2008-09-01 04:55:59

标签: ios iphone

如果我在Mac上创建一个应用程序,有什么办法可以让它在不通过应用程序商店的情况下在iPhone上运行吗?

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

10 个答案:

答案 0 :(得分:187)

官方开发者计划

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

越狱iPhone

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

创建自签名证书

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

  1. 启动Keychain Access.app。如果未选择任何项目,请从Keychain菜单中选择Certificate Assistant,然后选择Create a Certificate。

    名称: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,请重新启动它以使此更改生效。

  7. 通过WiFi手动部署

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

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

    1. Project,Set Active SDK,Device and Set Active Build Configuration,Release。

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

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

        

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

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

        

      ssh mobile@jasoniphone.local uicache

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

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

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

      ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
      ssh mobile@jasoniphone.local uicache
      

答案 1 :(得分:18)

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

答案 2 :(得分:14)

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

答案 3 :(得分:8)

this post的帮助下,我制作了一个脚本,将通过应用程序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

上面引用的帖子中缺少的是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>

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

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

答案 4 :(得分: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现已发布:

  

免费设备开发   现在每个人都可以运行并测试自己的应用   在设备上 - 免费。您可以在a上运行和调试自己的创作   Mac,iPhone,iPad,iPod touch或Apple Watch不收取任何费用,也没有   加入的计划。您只需输入免费的Apple ID即可   Xcode中。您甚至可以使用已用于App的相同Apple ID   商店或iTunes。一旦你完成了Apple Developer的应用程序   程序可以帮助您在App Store上获取它。

     

有关详细信息,请参阅Launching Your App on Devices   在设备上安装和运行。

答案 5 :(得分:4)

值得注意的是,如果你走上越狱路线,那么iPhone操作系统更新可能会(很可能?)使你无法运行这些应用程序。我会去官方路线并支付99美元获得授权。除了不必担心您的应用程序被破坏之外,您还有机会(如果您选择)在商店中发布您的应用程序。

答案 6 :(得分:2)

以@Jason Weathered描述的方式将应用程序复制到iPhone后,请确保应用程序的“chmod + x”,否则将无法运行。

答案 7 :(得分:1)

*更改/注释使其适用于 Xcode 3.2.1 iPhone SDK 3.1.2

通过WiFi手动部署

2)修改Info.plist后,请务必重启Xcode

3)找不到“uicache”命令,使用killall -HUP SpringBoard对我来说很好。

除此之外,我可以确认这是正常的。

使用PwnageTool 3.1.4的Mac用户非常适合Jailbreaking(DL通过torrent)。

答案 8 :(得分:1)

如果您修补/Developer/Platforms/iPhoneOS.platform/Info.plist然后尝试使用Apple的真实开发配置文件调试设备上运行的应用程序,它可能无法正常工作。症状是来自com.apple.debugserver的奇怪错误消息,并且您可以使用任何捆绑标识符,而不会在Xcode中构建时出错。解决方案是恢复Info.plist

答案 9 :(得分:0)

您可以使用 AppBox ,一个使用您的保管箱帐户向您分发临时和企业应用的mac应用程序,如果您想从任何其他浏览器安装表单。

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

选项

存档和上传IPA

  • 只需选择项目/工作区存档 - &gt; 制作ipa - &gt; 上传ipa - &gt; 发送邮件 - &gt;和关闭mac

仅上传IPA

  • 只需选择IPA文件上传ipa - &gt; 发送邮件 - &gt;和关闭mac

功能

  • 保持相同的链接
    • 此功能将为使用相同捆绑包标识符上传的所有未来ipa保留相同的简短网址。
    • 如果启用此选项,您还可以使用相同的网址下载以前的版本。
  • 自动发送电子邮件应用分发链接
  • 发布后
  • 自动关机Mac
  • 最大上传大小 =&gt;等同于您的Dropbox帐户存储空间
  • 上传的应用有效期 =&gt;直到您从Dropbox中删除
  • 每个应用的安装次数 =&gt;无限
  • 中心*

    *将在以后的版本中提供

AppBox vs Diawi

截图

上传IPA

存档并上传IPA

上传IPA

在此尝试https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases