如何设置cocoapod的包标识符

时间:2015-12-07 13:53:56

标签: cocoapods bundle-identifier podspec

对于我创建的pod,cocoapod设置org.cocoapods作为我的pod的bundle标识符的前缀:

enter image description here

我希望能够设置我自己的前缀,但我没有找到任何选项在podspec中这样做。

任何人都知道这个选项是否存在?

的问候。 塞巴斯蒂安。

5 个答案:

答案 0 :(得分:1)

您可以为开发窗格提供自己的plist文件,如下所示:

s.pod_target_xcconfig = {
  'INFOPLIST_FILE' => '${PODS_TARGET_SRCROOT}/Resources/YourPod-Info.plist'
}

然后,您只需要在该plist内更改Bundle identifier

答案 1 :(得分:1)

您需要同时提供两者

s.info_plist = { 'CFBundleIdentifier'=>'com.myorg.mylib' }

s.pod_target_xcconfig = { 'PRODUCT_BUNDLE_IDENTIFIER':'com.myorg.mylib' }

答案 2 :(得分:0)

到目前为止,此选项不存在:http://www.cisco.com/c/en/us/support/docs/security-vpn/kerberos/118841-configure-kerberos-00.html

的问候。 塞巴斯蒂安。

答案 3 :(得分:0)

可能的解决方法是使用post_install处理程序。这是一个示例脚本:

post_install do |installer|

  installer.project.targets.each do |target|
    target.build_configurations.each do |config|
      if config.name == 'BREnterprise'
        config.build_settings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'] = 'iPhone Distribution: The Carter Group LLC'
        config.build_settings['PROVISIONING_PROFILE'] = '${BR_ENTERPRISE_PROVISIONING_PROFILE}'
      end
    end
  end

  # change bundle id of each pod to 'com.bottlerocketapps.*'
  bundle_id = 'com.bottlerocketapps'

  directory = installer.config.project_pods_root + 'Target Support Files/'
  Dir.foreach(directory) do |path|

    full_path = directory + path
    if File.directory?(full_path)

      info_plist_path = full_path + 'Info.plist'
      if File.exist?(info_plist_path)

        text = File.read(info_plist_path)
        new_contents = text.gsub('org.cocoapods', bundle_id)
        File.open(info_plist_path, "w") {|file| file.puts new_contents }
      end
    end
  end
end

答案 4 :(得分:0)

有一种简便的方法可以从this answer

Info.plist DSL将包含在1.8.0版本中。

设置捆绑包标识符:

# in .podspec
s.info_plist = {
  'CFBundleIdentifier' => 'com.myorg.mylib'
}

当前的Cocoapods版本是1.8.0 beta2。我刚试过这个版本,它可以工作。但是,如果使用“ pod trunk push”,则会显示一些错误消息“ The Pod Specification未通过验证”。也许我们需要等到1.8.0版本发布。