在Xcode pbxproj文件中获取(空)引用

Kap*_*tal 8 xcode pbxproj

在更新/碰撞Xcode 9.1中的版本和内部版本号后,我看到以下内容 git diff

diff --git a/star.xcodeproj/project.pbxproj b/star.xcodeproj/project.pbxproj
index c4601526..8fa3c762 100644
--- a/star.xcodeproj/project.pbxproj
+++ b/star.xcodeproj/project.pbxproj
@@ -767,7 +767,7 @@

- F4487BE11FB28C400079BAAD /* BuildFile in Sources */ = {isa = PBXBuildFile; };
+ F4487BE11FB28C400079BAAD /* (null) in Sources */ = {isa = PBXBuildFile; };

@@ -5625,7 +5625,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- F4487BE11FB28C400079BAAD /* BuildFile in Sources */,
+ F4487BE11FB28C400079BAAD /* (null) in Sources */,);

    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
-       <string>2.11.4</string>
+       <string>2.11.5</string>
      <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleURLTypes</key>
@@ -39,7 +39,7 @@
            </dict>
    </array>
    <key>CFBundleVersion</key>
-       <string>02110400</string>
+       <string>02110500</string>
    <key>FacebookAppID</key>
    <string>70858204300</string>
    <key>FacebookBetaAppID</key>
Run Code Online (Sandbox Code Playgroud)

我所做的只是提高项目的版本。但是在执行git status和git diff时,我在.pbxproj文件中看到一些空引用。还有其他人看到过吗?作为旁注,我们在项目中也使用了Cocoapods。

Ula*_*mir 9

删除您的中所有出现的(null) in Sourcesproject.pbxproj

sed -i '' '/(null) in Sources /d' YourProject.xcodeproj/project.pbxproj
Run Code Online (Sandbox Code Playgroud)

  • 我对资源和框架做了同样的事情: ``` sed -i '' '/(null) in Sources /d' YourProject.xcodeproj/project.pbxproj sed -i '' '/(null) in Resources /d' YourProject .xcodeproj/project.pbxproj sed -i '' '/(null) in Frameworks /d' YourProject.xcodeproj/project.pbxproj ``` 重建后一切都很好。在构建阶段这样做可能是值得的,它减少了您需要在 PR 中审查的代码量。好答案! (2认同)

muh*_*urk 7

我创建了简单的 shell 脚本来删除项目文件中的所有空引用。

保存为文件,赋予执行权限并调用它。

#!/bin/sh
sed -i '' '/(null) in Sources /d' ProjectName.xcodeproj/project.pbxproj
sed -i '' '/(null) in Resources /d' ProjectName.xcodeproj/project.pbxproj
sed -i '' '/(null) in Frameworks /d' ProjectName.xcodeproj/project.pbxproj
Run Code Online (Sandbox Code Playgroud)


Nik*_*kov 4

我删除了项目文件中的所有(空)引用以及其中提到的所有 ID。然后尝试构建运行和存档应用程序 - 一切正常。看起来 Xcode 并没有因为某种原因自行删除它们。

在您的情况下,请尝试使用 (null) 删除 F4487BE11FB28C400079BAAD,以及包含此 F4487BE11FB28C400079BAAD 的所有行。并对其他(空)引用执行此操作。