标签: mac-app-store

选择iOS和Mac应用程序的软件包标识符

假设我有一个名为A的应用程序.

捆绑标识符在所有Mac和iOS应用程序中必须是唯一的.这意味着如果我在iOS App Store上有应用程序A和Bundle ID com.mycompany.a,我就无法在Mac App Store上使用相同的Bundle ID创建应用程序com.mycompany.a.

好吧,说,区分Bundle ID的最佳方法是什么?

我能想到的一些例子:

  • com.mycompany.a_ios, com.mycompany.a_mac
  • com.mycompany.ios.a, com.mycompany.mac.a

有没有其他想到的?你用过哪个?

macos app-store cfbundleidentifier ios mac-app-store

18
推荐指数
2
解决办法
6464
查看次数

在其捆绑包中提交带有帮助应用程序的OSX应用程序

我真的很生气这个问题!我有一个应用程序,其中包含一个简单的帮助应用程序,它管理主应用程序的登录项.

当我尝试提交应用时,我会收到与配置文件和权利相关的错误.我确信这个问题与Helper应用程序有关,因为在我添加之前,提交工作没有问题.

目前,帮助应用程序已经过代码签名,并被沙盒化为主应用程序.

错误是:

  • 配置文件无效.捆绑包中包含的配置文件无效

  • 无效的代码签名权利.应用包标签中的权利与配置文件中包含的权利不匹配.该包中包含一个未包含在"myapp.app/Contents/Library/LoginItems/helper.app"中的配置文件"com.apple.application-identifier"中的密钥

  • 无效的代码签名权利.应用包标签中的权利与配置文件中包含的权利不匹配.该软件包包含一个密钥,该密钥未包含在"myapp.app/Contents/MacOS/myapp"中的配置文件"com.apple.application-identifier"中

cocoa submission provisioning mac-app-store

17
推荐指数
2
解决办法
4614
查看次数

Beta测试Mac App Store应用程序

我有一个应用程序,我将把它放在Mac App Store中.我想为偏好同步添加iCloud支持,因此,我想分发以他们可以访问iCloud的方式签名的beta.

但是,我无法在Mac文档库中找到有关在App Store外部分发应用程序,使用分发密钥签名以及能够访问iCloud的任何内容.

到目前为止,我分发此类应用程序的尝试无法在测试人员的计算机上启动,控制台中的消息抱怨该应用程序具有iCloud权利.

是我可能的,或者我应该放弃iCloud支持?如果可能的话,我需要做些什么来制作可分发的,支持iCloud的版本?

编辑:要清楚,您可以将此问题中的"iCloud支持"替换为仅适用于App Store应用程序的任何其他功能.我提到它确定解决方案不是"只是将它分配给无符号".iCloud是我特定案例的目标; 我在询问一般过程.

macos app-store mac-app-store icloud

16
推荐指数
2
解决办法
3611
查看次数

用于兑换Mac App Store促销代码的网址

我希望能够使用促销代码发送一个链接,以便在应用程序商店中免费下载我的应用程序.这可以使用此URL在iOS应用商店中完成https://phobos.apple.com/WebObjects/MZFinance.woa/wa/freeProductCodeWizard?code=<YOUR-PROMO-CODE-HERE>

但这不适用于Mac应用商店促销代码.

有谁知道Mac应用商店是否存在类似的网址?

macos app-store ios mac-app-store

16
推荐指数
2
解决办法
6559
查看次数

如何防止Xcode每次都重建项目

我有一个Mac OS X应用程序,由主目标和依赖框架组成.自从在我的Mac OS X应用程序上启用代码签名后,我注意到Xcode每次运行时都会重建主目标,即使我没有触及一行代码.

这是一个问题,因为依赖框架需要知道主目标文件的CRC.每次Xcode重建主目标时,CRC都会改变.

在代码签名之前,我将构建主目标一次,生成CRC,将CRC输入到我的框架代码中,并再次构建主目标.Xcode会注意到只有框架发生了变化,所以它不会重建主目标.

有什么建议?谢谢!

西蒙

macos xcode code-signing objective-c mac-app-store

16
推荐指数
1
解决办法
4518
查看次数

Mac App Store消耗品收据在服务器端验证时具有空的in_app哈希值

我验证了服务器端Mac App Store的应用内购买(所谓的消耗品)的接收情况.Apple服务器的响应通常如下所示:

    { 
      "status"=>0, 
      "environment"=>"Production", 
      "receipt" => 
        { 
          "receipt_type" => "Production", 
          "adam_id"=>410628904, 
          "bundle_id" => "com.company.product", 
          "application_version"=>"1.0.0", 
          "download_id"=>002141541230420, 
          "request_date"=>"2013-10-22 07:53:11 Etc/GMT", 
          "request_date_ms"=>"1382428391914", 
          "request_date_pst"=>"2013-10-22 00:53:11 America/Los_Angeles", 
          "original_purchase_date"=>"2011-08-22 06:05:47 Etc/GMT", 
          "original_purchase_date_ms"=>"1313993147000", 
          "original_purchase_date_pst"=>"2011-08-21 23:05:47 America/Los_Angeles", 
          "original_application_version"=>"1.0.0", 
          "in_app"=> [
            {
              "quantity"=>"1", 
              "product_id"=>"com.company.product.mac_consumable", 
              "transaction_id"=>"9123912391231", 
              "original_transaction_id"=>"51881235936908", 
              "purchase_date"=>"2013-10-22 07:52:06 Etc/GMT", 
              "purchase_date_ms"=>"1382428326000", 
              "purchase_date_pst"=>"2013-10-22 00:52:06 America/Los_Angeles", 
              "original_purchase_date"=>"2013-10-22 07:52:06 Etc/GMT", 
              "original_purchase_date_ms"=>"1382428326000", 
              "original_purchase_date_pst"=>"2013-10-22 00:52:06 America/Los_Angeles", 
              "bundle_id"=>"com.company.product"
              }
         ]
      }
    }
Run Code Online (Sandbox Code Playgroud)

但有时我们会在没有in_app哈希集的情况下获取信息:

    { 
      "status"=>0, 
      "environment"=>"Production", 
      "receipt" => 
        { 
          "receipt_type" => "Production", 
          "adam_id"=>312621904, 
          "bundle_id" => "com.company.product", 
          "application_version"=>"1.0.0", 
          "download_id"=>002141541230420, 
          "request_date"=>"2013-10-22 07:53:11 Etc/GMT", 
          "request_date_ms"=>"1382428391914", 
          "request_date_pst"=>"2013-10-22 …
Run Code Online (Sandbox Code Playgroud)

objective-c app-store in-app-purchase ios mac-app-store

13
推荐指数
1
解决办法
1615
查看次数

如何保证Mac App Store拒绝?

有几次有人在Apple App Store中非法分发了我的GPL许可的Mac应用程序,Apple对移除通知的响应非常缓慢.

我想知道我是否可以采取任何措施使应用程序尽可能与AppStore不兼容,而不会影响应用程序及其在AppStore外部的源代码的使用.

  • 我是否可以在AppStore中取消我的应用程序代码/指纹,但是没有在我的开发者ID下禁止它?
  • 我是否可以在应用的源代码中秘密使用符号或字符串,以确保应用被拒绝?
  • 哪些禁止的API /沙箱破坏行为最难从应用中发现和删除?
  • 我是否可以在我的应用程序的源代码中隐藏某些内容,这些内容会提醒Apple的评论者该应用程序未按Apple的条款授权分发?

我意识到,由于应用程序是开源的,我无法保证AppStore拒绝,但至少我想让违反许可证的AppStore提交比平常更难.

cocoa gpl mac-app-store

13
推荐指数
0
解决办法
935
查看次数

Mac App Store代码是否始终标记资源封套版本1?

在最新的电子邮件详细说明10.10 beta 5和10.9.5的看门人更改后,我立即用TN2206的推荐方法验证了我的应用程序.令我惊讶的是,由于我没有使用资源规则并在Mavericks上构建它,它失败了:

$ spctl -a -t exec -v /Applications/MyApp.app/
/Applications/MyApp.app/: rejected
source=obsolete resource envelope
Run Code Online (Sandbox Code Playgroud)

然后,我继续检查Xcode存档中提交的二进制文件,该文件被迅速拒绝,但没有"过时的资源信封"警告.我想那是因为它是由提交证书签名的.

$ spctl -a -t exec -v Products/Applications/MyApp.app/
Products/Applications/MyApp.app/: rejected
Run Code Online (Sandbox Code Playgroud)

后来,我检查了资源信封:

$ codesign -d -v  /Applications/MyApp.app/
Executable=/Applications/MyApp.app/Contents/MacOS/MyApp
Identifier=my.app.id
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=14108 flags=0x200(kill) hashes=697+5 location=embedded
Signature size=4169
Info.plist entries=34
TeamIdentifier=not set
Sealed Resources version=1 rules=5 files=82
Internal requirements count=1 size=220
Run Code Online (Sandbox Code Playgroud)

然后提交的应用程序:

$ codesign -d -v  Products/Applications/MyApp.app/
Executable=/Users/jorgepeixotovasquez/Library/Developer/Xcode/Archives/2014-07-09/myapp 09-07-14 00.34.xcarchive/Products/Applications/MyApp.app/Contents/MacOS/myApp
Identifier=my.app.id
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=14123 flags=0x0(none) hashes=697+5 location=embedded …
Run Code Online (Sandbox Code Playgroud)

macos code-signing mac-app-store osx-mavericks osx-yosemite

13
推荐指数
2
解决办法
9961
查看次数

从Mac AppStore安装Xcode时,DMG在哪里?

随着从Mac AppStore安装Xcode的新要求,我想找到安装包(.dmg)并将其存档到某个地方.

用例1:有100多个工作站,不想(需要)下载100次以上.

用例2:我使用Xcode 4.1.1构建产品,归档,运送和延迟使用寿命.高级客户需要紧急错误修复,我想暂时安装一些使用THAT Xcode的工作站.

TIA.

顺便说一句,Lion也是如此,或者Apple可能发布的任何未来猫科动物.

xcode mac-app-store

12
推荐指数
2
解决办法
1万
查看次数

使用COMMAND LINE帮助程序的沙盒OSX应用程序提供"无法获取根路径"

我正在构建一个与命令工具'unrar'捆绑在一起的Mac应用程序来解开一些文件.该应用程序是沙盒.

在xcode中,我将unrar命令工具复制到应用程序的Resourse文件夹(带有名为'exec'的子路径):

复制文件: 目标:资源 - 子路径:执行

在复制阶段之后,我执行运行脚本来设置权利和代码签名,如下所示:

运行脚本: Shell:/ bin/sh

LOCATION="${BUILT_PRODUCTS_DIR}"/"${CONTENTS_FOLDER_PATH}"
IDENTITY="3rd Party Mac Developer Application: CompanyName."
codesign -f -s "$IDENTITY" --entitlements"/<path>/unrar.entitlements" "$LOCATION"/Resources/exec/unrar
Run Code Online (Sandbox Code Playgroud)

在应用程序本身中,我使用NSTask来执行unrar命令:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"unrar" ofType:@"" inDirectory:@"exec"];

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:filePath];
[task setArguments:[NSArray arrayWithObjects:@"e", rarfilepath,extractpath, nil]];
[_task launch];
Run Code Online (Sandbox Code Playgroud)

unrar.entitlements包含:

<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
Run Code Online (Sandbox Code Playgroud)

运行应用程序时,一切正常,文件被提取.

但是......然后当我检查系统日志时,我看到以下消息:

secinitd [332]:unrar [94747]:无法获取主可执行文件包的根路径:/Applications/App.app/Contents/Resources/exec/unrar

当我不运行上面的运行脚本时,该消息确实消失,但是然后没有为'unrar'命令工具设置权利并且Sandboxing失败.

我现在已经听了三天听到这个消息意味着什么,以及如何解决它,但我没有想法.

搜索谷歌或stackoverflow也没有帮助.

请有人帮我解决这个问题.

谢谢你,安德烈.

(抱歉所有文字,但我不允许发布图片.)

macos code-signing sandbox mac-app-store

11
推荐指数
1
解决办法
698
查看次数